|
|
セッション |
サーバー上でNOMAD実行を行うためのセッションについて説明します。
セッション同時に複数の処理を実行する場合、セッションは1台のサーバーマシン上に複数存在することになります。

※B/NOMADがマルチスレッドで動作している場合、1スレッドが1セッションに対応します。詳しくは「マルチスレッド対応」を参照してください。
クライアント側のWebブラウザからNOMADアプリケーションが起動されるときに、サーバー側のDSMCGIを呼び出します。
Webブラウザから呼ばれたNOMADアプリケーション・MQIG(IBM社の「MQSeries Internet Gateway」)を使用したアプリケーション・バッチ(実行可能ファイル/ShellScript)を、「DSMCGI」を通して利用することにより、各アプリケーションをDSMにより管理できるようになります。
クライアント側からの呼び出しによりサーバーのDSMCGIが呼び出され、セッション管理情報(共有メモリー)が参照されます。これらの機構を「DSMマルチクライアント」と呼びます。DSMマルチクライアントのDSMCGIにより、サーバー上のアプリケーション(B/NOMADやバッチ)が実行されます。
セッションは基本的に、DSMCGIを通して起動されたアプリケーションと1対1で対応しています。
各アプリケーション(B/NOMADを含む)の呼び出しに対し、同じサーバーで動作する他のアプリケーションとぶつからないためのユニークな管理用ID(セッションID)が割り振られます。
DSMでは、このセッションIDごとに各アプリケーションを管理しています。
各B/NOMADへ割り振られたセッションは、「dsm.ini」のTimeOutMinで指定された時間が来るまで「セッション保持」状態になります(「セッション保持」でアプリケーションを実行した場合)。「セッション保持」の状態のときは、別のクライアントからのアクセスがこの保持中のセッションを使用することはありません。
「セッション保持」状態のまま、一定時間が経過してもアクセスがない場合(クライアント側のWebブラウザからDSMCGIが呼ばれないとき)は、保持したセッションを解放し、「セッション待機」状態に移行します。このときに、他のアクセスは、この待機状態になったセッションを使用することができるようになります。
「セッション非保持」で実行されたアプリケーションの場合は、NOMADアプリケーションが空いているセッションを通じて実行されたあと、セッションがすぐに解放されます。
「セッション保持」でNOMADアプリケーションを作成するときは、アプリケーション終了時に必ずセッションを解放するようにしてください。
「セッション保持」状態のままTimeOutMinの時間が経過するまで待つアプリケーションは、本来作るべきではありません。
セッションの状態

「セッション保持」で実行すると、共有メモリー上の「セッション管理情報」で
B/NOMAD情報(ユーザー情報/アプリケーション固有の情報/データベースのカーソル(位置)情報など)を
保有します。
同じWebアプリケーションを使用する場合に、
2回目以降のアクセス(ボタンが押されてDSMCGIが呼ばれる場合など)が発生したとき、
前回の保持していたB/NOMAD情報(実行環境)を引き継いで使用します。
「セッション保持」でアプリケーションを実行した場合、「セッション待機」になるまでは
サーバー上の1つのセッションを占有することになります。
「保持」状態が長く続くことは、好ましい状態ではありません。「セッション保持」で実行する場合、
セッションの確立が不要になった時点で、すぐにセッションを解放するようにしてください。
セッションの保持/非保持の設定は、Webアプリケーションを構成する各HTMLファイルごとに行うことができます。
WebアプリケーションのHTMLファイル内の<FORM>/<INPUT TYPE="HIDDEN"...>タグにおいて、
NOMADAPPENDOPTを指定します。
(詳細は「HTML情報」を参照してください。)
NOMADAPPENDOPTの値が「TRUE」の場合は、セッション保持でWebアプリケーションを実行します。
<INPUT TYPE="HIDDEN" NAME="NOMADAPPENDOPT" VALUE="TRUE">
NOMADAPPENDOPTの値が「FALSE」の場合は、セッション非保持でWebアプリケーションを実行します。
<INPUT TYPE="HIDDEN" NAME="NOMADAPPENDOPT" VALUE="FALSE">
Webアプリケーションを構成するHTMLファイルが複数存在する場合は、 各HTMLファイルの<FORM>タグ内のNOMADAPPENDOPTを設定するようにしてください。