Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

SOAP セッション管理

SOAP Web サービスは本質的にステートレスのため、セッションを管理しません。ただし、Web クライアントと Web クライアントが使用する Web サービスとの間のセッション管理が有用な場合がよくあります。Caché SOAP サポートは、これを実行するための方法を提供します。以下の項目について説明します。

Caché Web クライアントの調整” の章の “カスタムの HTTP 要求の指定” のセクションも参照してください。

また、付録 “生成された WSDL の詳細” の “Caché セッションの WSDL の相違点” を参照してください。

SOAP セッションの概要

Web クライアントと Caché Web サービスとの間のセッションを管理できます。このサポートは以下のツールで構成されています。

  • CSP セッション管理。これについては、ドキュメント "Caché Server Pages (CSP) の使用法" に説明があります。

  • 簡単な専用ヘッダである Caché SOAP セッション・ヘッダ

全体的な流れは、以下のとおりです。

  1. Web クライアントは、初期メッセージを Web サービスに送信します。このメッセージには、Caché SOAP セッション・ヘッダは含まれません。

  2. Web サービスは、メッセージを受信し、新しい CSP セッションを開始します。

  3. Web サービスは、その返信を送信するときに、メッセージに Caché SOAP セッション・ヘッダを追加します。

  4. 応答を受信した Web クライアントでは、その SOAP セッション・ヘッダを検出し、セッションの cookie を抽出する必要があります。Web クライアントでは、以降のメッセージを送信するときに、その cookie を使用してメッセージに SOAP セッション・ヘッダを作成する必要があります。

    メモ :

    • クライアントが Caché Web クライアントである場合、セッション cookie は自動的にその Web クライアントの SessionCookie プロパティに保存されます。また、そのクライアントのインスタンスで SOAP セッション・ヘッダが自動的に作成され、そのクライアントから送信するすべてのメッセージにそのヘッダが追加されます。

    • セッションで発生するすべての SOAP メッセージに同じクライアント・インスタンスを使用する場合は、この手順が .NET Web クライアントでも自動的に実行されます。その他のクライアント・プラットフォームでは追加のコードが必要な場合があります。

  5. Web サービスは、次の応答を受信し、CSP セッションを続行して、Web サービスによる応答時に SOAP セッション・ヘッダを再度追加します。

ログ・アウトのメソッドを追加する必要はありません。CSP セッションは、少したってから (Web アプリケーションのタイムアウト期間が経過した後) タイムアウトします。"Caché Server Pages (CSP) の使用法" のドキュメントを参照してください。

セッションの有効化

SOAP セッションに対する Caché サポートを使用するには、Caché Web サービスを使用している必要があります。

  • Web クライアントが Caché を使用して作成されている場合、SOAP セッションのサポートを有効にするために必要な手順は 1 つだけです。Web サービス・クラスで、SOAPSESSION パラメータを 1 に設定します。

  • Web クライアントの作成にサードパーティのツールを使用している場合は、初期応答で Caché SOAP セッション・ヘッダ要素を検出する必要があり、またセッションの有効期間中のすべての要求にこのヘッダ要素が Web クライアントによって追加されるようにする必要があります。このヘッダ要素の形式は、以下のとおりです。

    <csp:CSPCHD xmlns:csp="http://www.intersystems.com/SOAPheaders"><id>value of CSPCHD token</id></csp:CSPCHD> 

セッション情報の使用

セッション情報を使用するプロセスは、他の CSP ページの場合と同じです。つまり、Web サービスは、%CSP.SessionOpens in a new tab のインスタンスである、%session という名前の変数を使用できます。このオブジェクトのプロパティには、システム情報およびユーザが追加するように選択した情報が含まれます。以下は、一般的に使用されるプロパティの一部です。

  • SessionID — このセッションの一意の識別子。

  • EndSession — 通常、これは 0 です。セッションを終了するには、このプロパティを 1 に設定します。

  • Data — カスタム・データの格納に使用される Caché 多次元配列。

  • NewSession — このセッションが新しいセッションの場合は 1 です。

  • AppTimeout — セッションのタイムアウト値を秒単位で指定します。

%session オブジェクトには、その他の多くのプロパティを初め、セッションに関連するタスクに使用できるいくつかのメソッドがあります。詳細は、%CSP.SessionOpens in a new tab のクラス・ドキュメントおよび "Caché Server Pages (CSP) の使用法" のドキュメントを参照してください。

FeedbackOpens in a new tab