初期処理/終了処理/前処理/後処理/エラー処理/トランザクション後メッセージ編集処理の利用指針を以下に示します。
注意
C言語アプリケーションを使用できるのは、同期アプリケーション連携実行基盤だけです。
初期処理
初期処理実装用のインタフェースです。このインタフェースを実装した場合、ワークユニットの起動時に、1プロセスあたり1回、初期処理が呼び出されます。サーバアプリケーションで使用するプロセスのリソースの獲得や初期化を初期処理として記述します。たとえば、サーバアプリケーションでデータベースへの制御を行う場合、初期処理でデータベースへのコネクション確立を行うように設計することができます。
なお、初期処理は、サーバアプリケーションをC言語またはCOBOLで作成した場合にだけ記述できます。
前処理
アプリケーション連携実行基盤の実行環境による各種制御と、サーバアプリケーションによる処理の間に行われる処理です。アプリケーションの業務処理と直接関係なく、かつ業務処理の前に常時実行する必要がある処理が存在する場合は、前処理として記述します。たとえば、作業用ファイルの獲得やオープンなど業務処理単位に行う必要のある初期処理を行うように設計することができます。
後処理
サーバアプリケーションによる処理と、アプリケーション連携実行基盤の実行環境による各種制御の間に行われる処理です。アプリケーションの業務処理と直接関係なく、かつ業務処理の後に常時実行する必要がある処理が存在する場合は、後処理として記述します。たとえば、作業用ファイルのクローズや解放など業務処理単位に行う必要のある終了処理を行うように設計することができます。
エラー処理
同期アプリケーション連携実行基盤のエラー処理の利用指針を以下に示します。
業務ロジックで異常が発生した場合にエラー処理の均一化が行えます。
エラー処理を正常終了させた場合、エラー処理が呼ばれる直前の処理によりクライアントへ返却されるデータが異なります。
前処理・業務処理で異常終了が指定された場合、リクエスト時と同じデータがクライアントへ返却されます。
後処理で異常終了が指定された場合、業務処理で書き換えられたデータがクライアントへ返却されます。
トランザクション後メッセージ編集処理
業務データベースを使用する場合で、トランザクション処理の後、リトライされない場合に行われる処理です。データベースのコミットで失敗した場合にクライアントへ返却するエラーメッセージを編集するために使用します。正常終了した場合は業務データおよびエラーメッセージは上書きされません。
本処理は同期アプリケーション連携実行基盤のみで使用可能です。
終了処理
終了処理実装用のインタフェースです。このインタフェースを実装した場合、ワークユニットの通常停止時に1プロセスあたり1回、終了処理が呼び出されます。サーバアプリケーションで使用するプロセスのリソースの解放を終了処理として記述します。たとえば、サーバアプリケーションでデータベースへの制御を行う場合、終了処理でデータベースへのコネクション切断を行うように設計することができます。
なお、終了処理は、サーバアプリケーションをC言語またはCOBOLで作成した場合にだけ記述できます。
注意
初期処理、および終了処理は、サーバアプリケーションと同一プロセス上でプロセス単位に実行されます。ワークユニット単位に起動処理、および停止処理を実行したい場合や、プロセス異常終了時に処理を実行したい場合には、ワークユニットの出口機能を利用することができます。
ワークユニットの出口機能については、使用するアプリケーション連携実行基盤に応じて、以下を参照してください。
同期アプリケーション連携実行基盤におけるCORBAワークユニットの出口機能
“Interstage Application Server OLTPサーバ運用ガイド”の“ワークユニットの作成”-“CORBAワークユニットの作成”-“アプリケーションの開発”-“ワークユニットの出口機能の使用方法”
初期処理および終了処理を含むユーザ作成ライブラリは、業務共通制御ライブラリ、またはプレロードライブラリとして配備されている必要があります。
サーバアプリケーションのロード方法をダイナミックロードとする場合には、初期処理および終了処理のライブラリは、サーバアプリケーションのライブラリと分けて配備する必要があります。
サーバアプリケーションライブラリをダイナミックロードで動作させる場合、プレロードライブラリパスとダイナミックロードライブラリパスに同一パスは指定しないでください。
同一パスを指定した場合、サーバアプリケーションライブラリはプレロードとして動作します。
ライブラリのロード方法についての詳細は、“7.4 ライブラリのロード”を参照してください。