SOAP セッションの開始
セッションを開始するには、クライアント要求に sqlSession ヘッダーが含まれている必要があります。また initiate 属性の値に true を指定する必要があります。セッションが正常に確立されると、サーバーで生成された Cookie で sessionId を指定するセッション ヘッダーが、サーバーからの応答に含まれます。
セッションの開始側のセキュリティ資格情報がそのセッションに関連付けられているので、セッション内のすべての後続の要求は同じ資格情報で実行される必要があります。
SOAP セッションにサービスを提供する HTTP エンドポイントで DATABASE 句が指定された場合、この設定はセッションを開始している要求にのみ有効になります。その後の要求は、セッションの現在のデータベースで実行されます。
メモ : |
---|
SOAP セッションは接続に依存しないので、最後の SQL Server 2005 の接続も切断できます。SOAP セッションは、サーバーの最大接続数にはカウントされません。 |
例
次の例は、SOAP セッションを開始する方法を示しています。SOAP セッションが開始されると、次のメッセージが使用されます。
- セッションを要求するために Web サービス クライアントによって送信される SOAP 要求
- 要求を確認するためにサーバーによって返される SOAP 応答
次に、クライアントによって送信される SOAP 要求の例を示します。
<SOAP-ENV:Header
xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
<!-- create a new session, with explicit timeout -->
<sqloptions:sqlSession initiate="true" timeout="12"/>
</SOAP-ENV:Header>
オプション名では大文字と小文字が区別されます。したがって、上記の sqlSession
が正確にエンコードされるように、文字列には大文字の S を含める必要があります。
サーバーはセッションを開始するために、次の要求を返します。
<SOAP-ENV:Header
xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
<!-- response to creating a new session, or enlisting in an existing session -->
<sqloptions:sqlSession sessionId="AAAAADreaLE=" timeout="12"/>
</SOAP-ENV:Header>
この例では、要求されたタイムアウト値が、HTTP エンドポイントのサーバーで設定されたセッションの最大タイムアウト値以下である場合に限り、サーバーはクライアントから要求されたタイムアウト間隔を受け入れ、応答で同じ値 ("12"
) をエコーして返します。クライアントからの要求で指定されたタイムアウト間隔がサーバーの最大タイムアウトを超える場合、クライアントへの応答でサーバーの最大タイムアウト値が示されます。
参照
関連項目
SOAP セッションの使用
ネイティブ XML Web サービス要求を送信する場合のサンプル アプリケーション
クライアント アプリケーションへの SOAP ヘッダーの追加