4.9.6 同期点処理の最適化
OpenTP1では,トランザクションを効率良く決着するために,同期点処理を最適化しています。OpenTP1の最適化の種類と,TP1インバウンドアダプタのトランザクション連携機能での使用可否の対応を次の表に示します。
なお,それぞれの最適化処理の詳細については,マニュアル「OpenTP1 プログラム作成の手引」のトランザクションの最適化に関する説明を参照してください。
OpenTP1の最適化の種類 |
概要 |
トランザクション連携機能での使用可否 |
---|---|---|
1相コミット最適化 |
アプリケーションサーバが更新するリソースが一つの場合,アプリケーションサーバの同期点処理だけで済ませます。 これによって,2回分の同期点処理の通信が不要になります。 |
○ |
リードオンリー最適化 |
アプリケーションサーバがリソースを更新しない場合,またはリソースにアクセスしていない場合,OpenTP1で同期点処理の2相目(コミット/ロールバック)を実行しません。 これによって,2回分の同期点処理の通信が不要になります。
|
△ |
ノーアクセス最適化 |
トランザクション属性がNotSupported,またはトランザクション管理種別がBMTのMessage-driven Bean(サービス)をトランザクショナルRPCで呼び出した場合,OpenTP1で同期点処理を実行しません。 これによって,4回分の同期点処理の通信が不要になります。
|
|
コミット最適化 |
アプリケーションサーバで実行する同期点処理の2相目(コミット/ロールバック)をOpenTP1で実行します。 |
× |
ロールバック最適化 |
アプリケーションサーバでロールバック処理を実行した場合,ほかのトランザクションブランチと同期を取らないでロールバックします。 |
|
プリペア最適化 |
アプリケーションサーバで実行する同期点処理の1相目(プリペア)を,OpenTP1で実行します。 |
|
非同期プリペア最適化 |
アプリケーションサーバのMessage-driven Bean(サービス)の実行が終了した時点でプリペアを実行します。 |
- (凡例)
-
○:使用できます。
×:使用できません。
△:使用できますが機能差があります。