3.3.1 トランザクション・ポリシー
CORBAオブジェクトがグローバル・トランザクションに参加できるかどうかは、コンパイル時に実装に割り当てられたトランザクション・ポリシーによって制御されます。以下のポリシーを割り当てることができます。
ノート:
トランザクション・ポリシーは、OMG IDLのコンパイル時に構成するICFファイルで設定されます。ICFファイルの詳細は、「実装構成ファイル(ICF)」を参照してください。-
never実装はトランザクション対応ではありません。このインタフェース用に作成されるオブジェクトは、トランザクションに関与できません。このポリシーを設定した実装がトランザクションに関与した場合、例外(
INVALID_TRANSACTION)が生成されます。インタフェースのUBBCONFIGファイルで指定したAUTOTRANポリシーは無視されます。 -
ignore実装はトランザクション対応ではありません。このポリシーでは、この実装からトランザクション内のリクエストを送信できます。インタフェースの
UBBCONFIGファイルで指定したAUTOTRANポリシーは無視されます。 -
optional(デフォルトのtransaction_policy)実装はトランザクション対応可能です。リクエストがトランザクションに関係する場合、オブジェクトはトランザクションに関与できます。トランザクションに関係するオブジェクトを含むサーバーは、XA準拠のリソース・マネージャに関連付けられているグループ内で設定する必要があります。
AUTOTRANパラメータがインタフェースのUBBCONFIGファイルで指定されている場合、AUTOTRANは有効になります。 -
always実装はトランザクション対応です。オブジェクトは、常にトランザクションで呼び出される必要があります。リクエストがトランザクションの外部で行われた場合、システムはメソッドを呼び出す前にトランザクションを自動的に開始します。メソッドの終了時にトランザクションがコミットされます。(これは、オプションのトランザクション・ポリシーを持つオブジェクトに対して
AUTOTRANを指定した場合の動作と同じですが、この動作を達成するのに管理構成は不要であり、管理構成でオーバーライドできない点が異なります。)トランザクション・オブジェクトを含むサーバーは、XA準拠のリソース・マネージャに関連付けられているグループ内に構成する必要があります。
ノート:
optionalポリシーは、管理構成によって影響を受ける唯一のトランザクション・ポリシーです。システム管理者がUBBCONFIGファイルまたは管理ツールを使用して、AUTOTRAN属性をインタフェースに対して設定すると、既にトランザクションに関与している場合を除いて、オブジェクトの呼出し時にトランザクションが自動的に開始されます。つまり、alwaysポリシーを指定した場合と同じ動作になります。
親トピック: トランザクション