以下にユーザサービス処理部の作成と注意点について説明します。
■ユーザサービス処理部
サーバアプリケーションの処理を、オペレーティングシステムに添付されているエディタなどを使用して記述します。
トランザクションアプリケーションを使用してグローバルトランザクション運用を行う場合、トランザクション命令、およびリソースマネージャを使用するために必要な処理(データベースの結合、切り離し文)を記述する必要はありません。
アプリケーションが異常などを検出しロールバックさせたい場合には、アプリケーションの復帰値に10000を設定してください。
アプリケーションの復帰値によるクライアントの処理を以下に示します。
システムとしては、コミットおよびロールバック処理を行いません。コミット、およびロールバックはクライアントのアプリケーションが発行します。
クライアントアプリケーションがトランザクションを開始しなければ、サーバ側でシステムが、トランザクションを開始、終了する制御を行います。この場合、サーバアプリケーションまたはシステムで設定する復帰値で、以下に示す動作を行います。復帰値は、Interstageにより規定されています。
復帰値 | トランザクションの状態 | 意味 | アプリケーションの指定可否 |
---|---|---|---|
0 | コミット | 正常 | 可 |
1~9999 | コミット | サーバアプリケーション任意 | 可 |
10000 | ロールバック | サーバアプリケーションで異常検出 | 可 |
10001(注) | ロールバック | システム異常 | 不可 |
10002(注) | ロールバック | システムで異常検出 | 不可 |
10003(注) | ロールバック | 通信処理異常 | 不可 |
10004(注) | ロールバック | サーバアプリケーションで異常またはトランザクションタイムアウト | 不可 |
| ロールバック | AIM連携のセション継続機能において異常検出 | 不可 |
10006(注) | ロールバック | アクセス制御において異常検出 | 不可 |
10007(注) | ロールバック | プロセスバインド機能において異常検出 | 不可 |
10008(注) | ロールバック | 最大キューイング数に達した | 不可 |
注)クライアントに復帰値10001~10008が通知された場合は、同時にその異常の詳細がエラーログに記録されます。
C:\Interstage\td\trc\lorb\errlog0
/var/opt/FSUNtd/trc/lorb/errlog0
/var/opt/FJSVtd/trc/lorb/errlog0
注意
出口プログラムを使用する場合、出口プログラムをDLLからエクスポートするために、関数のプロトタイプ宣言に、_declspec(dllexport)キーワードを付加してください。または、モジュール定義ファイル(.DEF)を使用して、出口プログラムをエクスポートしてください。