セション情報管理を使用したトランザクションアプリケーションを構築する場合、次のことに注意してください。
(1) クライアント識別子についての注意事項
クライアント識別子の識別単位
セション情報管理を使用するトランザクションアプリケーションは、各オペレーションの呼び出しごとに、呼び出し元のクライアントを一意に識別できるクライアント識別子が取得できます。
このクライアント識別子は、クライアントオブジェクトを実装したプロセス単位の識別子です。1プロセスで、複数のクライアント側のオブジェクトを実装している場合は、複数のオブジェクトからのオペレーション呼び出しに対して、同一のクライアント識別子が通知されます。
したがって、セション情報管理機能を使用する、単一のセション型業務のクライアントオブジェクトは、1つのプロセス内に実装するように作成してください。
クライアント識別子の中継
サーバ側で、クライアントからの要求が、複数のトランザクションアプリケーションを中継されて処理される場合、クライアントからの要求を直接受け付けるトランザクションアプリケーションで、クライアント識別子をコンポーネントトランザクションサービスから受け取り、以降のトランザクションアプリケーションにユーザデータとして伝搬するように作成してください。
クライアント識別子の有効期間
クライアントとサーバ間で通信エラー(クライアント側にCOMM_FAILURE例外で通知される)が発生した場合、当該クライアント識別子は無効となります。
また、クライアントとサーバ間の無通信時間が一定時間以上となると、クライアント識別子は無効となります。無通信時間監視時間は、デフォルトで600秒です。この値は、CORBAサービス環境定義ファイルの以下の定義項目を設定することでカストマイズ可能です。
Period_idle_con_timeout |
この定義項目は、デフォルトが120です。この定義項目と、period_tick(デフォルト値は、5です)を乗算した値が、無通信監視時間となります。なお、0を指定すると無通信監視は行われません。
(2) セション情報域の有効範囲
セション情報域は、SMOによりメモリ上で管理される領域です。したがって、セション情報域は、獲得後、以下の範囲で有効です。
明示的なセション情報域の削除まで
Interstageの停止まで
未使用時間監視によるセション情報域の削除まで
(3) 事象通知リスナの有効範囲
コンポーネントトランザクションサービスを再起動する場合、事象通知リスナは、コンポーネントトランザクションサービスの再起動後に、SMOに再度登録する必要があります。