業務共通制御とは、同期アプリケーション連携実行基盤の提供する振分け制御、トランザクション制御、リトライ制御といった実行制御をカスタマイズするための制御ロジックです。業務共通制御を開発することにより、制御ロジックと業務ロジックを分離して、業務ロジックの独立性を高めることが可能となります。
注意
業務共通制御を使用できるのは、同期アプリケーション連携実行基盤だけです。
業務共通制御の呼び出し契機とカスタマイズ可能な制御を以下に示します。これらの制御を実装することにより、同期アプリケーション連携実行基盤の提供する振分け制御、トランザクション制御、リトライ制御といった実行制御をカスタマイズすることが可能となります。
振分け制御、業務前制御、業務後制御、および結果編集制御を総称して業務共通制御と呼びます。業務共通制御は、C言語で作成することができます。
振分け制御
クライアントからの要求ごとに呼び出す処理です。
制御用のデータを受け取り、どの業務処理を呼び出すかを決定するための処理です。
アプリケーション連携実行基盤が提供するAPIを使用して、呼び出す業務処理(ターゲット名)を変更することができます。
1つのアプリケーション連携実行基盤に対して1つだけ定義することができます。
業務前制御
サーバアプリケーションの呼出しの直前に呼び出す処理です。
業務処理に必要なリソースの獲得・初期化や、業務処理の実行状態の管理などの処理を行います。
1つのアプリケーション連携実行基盤に対して1つだけ定義することができます。
業務後制御
サーバアプリケーションの呼び出しの直後に呼び出す処理です。
業務処理で使用したリソースの解放や、業務処理の実行結果の管理などの処理を行います。
処理結果情報を変更することで、アプリケーション連携実行基盤に対してトランザクションの完了指示を行うことができます。
1つのアプリケーション連携実行基盤に対して1つだけ定義することができます。
結果編集制御
アプリケーション連携実行基盤で管理しているトランザクションの完了後に呼び出す処理です。
処理結果情報やトランザクションの完了状態を判定し、電文を返却するか、例外として通知するか、またはリトライするかの制御を行います。
アプリケーション連携実行基盤のデータベースアクセス管理機能を使用しない場合も呼び出されます。
1つのアプリケーション連携実行基盤に対して1つだけ定義することができます。
以下に、各制御の呼出しシーケンスを示します。
注意
データベースのトランザクションは、トランザクション完了時に業務後制御の処理結果情報に応じて、コミット、またはロールバックされます。そのため、振分け制御から業務後制御の範囲でデータベースアクセスを完了するようにしてください。結果編集制御において、データベースアクセスを行った場合は、リトライまたはリクエスト返却時にトランザクションがロールバックされます。
コミットが成功した場合は、結果編集制御においてリトライを指定しないでください。リトライを指定しても、データベースのトランザクションはロールバックされません。
コミット異常が発生し、かつ結果編集制御が定義されている場合は、結果編集制御の処理結果によりシステムエラーが上書きされるため、システムエラーがクライアントへ返却されません。また、結果編集制御により制御エラーが設定された場合は、そのままクライアントへ制御エラーがスローされるため、トランザクション後メッセージ編集処理は呼び出されません。
1回のリクエストで複数の異なるサーバアプリケーションが呼ばれるような制御を行なわないでください。複数の異なるサーバアプリケーションが呼ばれるような処理を行なった場合、動作は不定になります。
リトライが指定された場合、制御データおよびサーバアプリケーション名は、リクエスト受信直後のデータに初期化されます。