4 3 5 セッション管理の仕組み

LANSA WAM

4.3.5 セッション管理の仕組み

WEBROUTINE要求を処理するための、構成可能なWebジョブの事前設定プールがあります。現在の要求を処理中のWebジョブは、必要な状態をロードし、内部状態をリセットした後、次の要求のために自身を使用可能な状態にします。この次の要求は別のWebセッションから来ることもあります。Webジョブが負荷を共有するのは、個々の要求レベルであって、セッション・レベルではありません。したがって、実行中のWebジョブの数よりもはるかに多くのアクティブなブラウザー・セッションを実行できます。

WAMの実行環境のステートレス(状態非依存)の性質には、重要な意味があります。WAMコンポーネントの状態は、WEBROUTINEの実行中しか存在しません。フィールドやリストを*PERSISTとして宣言しない限り、それらの値は、WEBROUTINEの終了後に破棄されるので、次の要求で使用することはできません。ですから、WEBROUTINEの実行中にインスタンス化された他のRDMLXコンポーネントも、WEBROUTINEの終了時に破棄されます。ところが、*PERSISTのフィールドやリストは、要求の終了以降も存在し続け、引き続き使用可能な状態になります。つまり、セッションの終了まで、複数のWEBROUTINE要求にまたがるようにして存在します。

セッション管理のまとめ

WAMの実行環境の重要な特色を以下にまとめます。

  • WAMコンポーネントは、RDMLXコンポーネントの一種です。他の表示されないRDMLXコンポーネントをインスタンス化して、呼び出すこともできます。
  • WAMの中の各WEBROUTINEは、ブラウザーから呼び出せます。サービス名のメカニズムを使用して公開することも可能です。
  • WAMは、Webセッションという概念をサポートしています。Webセッションを識別するためのセッション・キーは、ブラウザーに格納されます。
  • ブラウザー(または他の種類のクライアント・デバイス)からWEBROUTINE要求が出されると、WAMコンポーネントが作成され、要求されたWEBROUTINEが実行され、次にWAMコンポーネントが破棄されます。このプロセスによって、サーバーのリソース使用量を削減し、拡張性を最大限に高めることができます。
  • WAMの実行では、要求ごとに状態が保持されるので、あらかじめ定義されている構成可能な複数のWebジョブが多数のWebセッションに対応でき、複数のアプリケーション・サーバー・マシンの間で要求を共有することも可能になります。
  • (フィールド、リスト、その他のコンポーネントの状態の)全データは、WEBROUTINEの終了時に破棄され、後続の要求では使用できません。
  • OPTIONS(*PERSIST)によってセッション状態として宣言されているフィールドやリストは、破棄されずに、サーバー上のデータベースに格納されます。つまり、1つのWEBROUTINEでそのデータを変更したら、後続のWEBROUTINE要求でもその変更後のデータを使用できます。
  • 指定のタイムアウト時間内にセッションから要求が出されないと、そのセッションは有効期限が切れたと見なされます。その後にその同じセッションから要求が出されると、SessionInvalidイベントが起動されます。このイベントのイベント・ハンドラーを使用すれば、セッションを処理できます。