使用する
もしステートフルアプリケーションは、セッションが終了する前、およびアプリケーションがセッションタイムアウトによって終了する前に、特定のアクションを実行する必要があります。この場合、このアプリケーションは、イベントIF_HTTP_SERVE〜EVENTKIND_CONTEXT_TERMINATIONのイベントハンドラーを実装する必要があります。
セッションは、次のようなさまざまな理由で終了する可能性があります。
-
セッションの有効期限が切れました
-
応答ドキュメントの送信時にエラーが発生しました。
-
セッションがすでに存在する場合、要求ドキュメントを受信したときにエラーが発生しました。
これらのシナリオのいずれにおいても、イベントIF_HTTP_SERVE〜EVENTKIND_CONTEXT_TERMINATIONを登録したアプリケーションに通知されます(ICFランタイムが制御できる場合)。
ここで、アプリケーションは時間のかかるアクションを実行してはなりません。これは、ABAPタイムアウトが発生した場合、アプリケーションに通知されることなくセッションが終了するためです。また、アプリケーションは、イベントによって呼び出された後、IF_HTTP_SERVERの要求オブジェクトと応答オブジェクトにアクセスしてはなりません。これにより、トレースファイルにエラーエントリが作成される可能性があります。