次の方法で共有


SOAP セッションの開始

この機能は、将来のバージョンの Microsoft SQL Server では削除される予定です。新しい開発作業では、この機能の使用を避け、現在この機能を使用しているアプリケーションは修正するようにしてください。

セッションを開始するには、クライアント要求に sqlSession ヘッダーが含まれている必要があります。また initiate 属性の値に true を指定する必要があります。セッションが正常に確立された場合は、sessionID プロパティに対してサーバーで生成された値を指定するセッション ヘッダーが、サーバーからの応答に含まれています。

セッションの開始側のセキュリティ資格情報がそのセッションに関連付けられているので、セッション内のすべての後続の要求は同じ資格情報で実行される必要があります。

SOAP セッションにサービスを提供する HTTP エンドポイントで DATABASE 句が指定された場合、この設定はセッションを開始している要求にのみ有効になります。その後の要求は、セッションの現在のデータベースで実行されます。

注意

SOAP セッションは接続に依存しないので、最後の SQL Server の接続も切断できます。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") をエコーして返します。クライアントからの要求で指定されたタイムアウト間隔がサーバーの最大タイムアウトを超える場合、クライアントへの応答でサーバーの最大タイムアウト値が示されます。