4.8.6 同期点処理の最適化

OpenTP1では,トランザクションを効率良く決着するために,同期点処理を最適化しています。OpenTP1の最適化の種類と,TP1インバウンドアダプタのトランザクション連携機能での使用可否の対応を次の表に示します。

なお,それぞれの最適化処理の詳細については,マニュアル「分散トランザクション処理機能 OpenTP1 プログラム作成の手引」のトランザクションの最適化に関する説明を参照してください。

表4-12 トランザクション連携機能を使用した際に適用できるOpenTP1の最適化の種類

OpenTP1の最適化の種類概要トランザクション連携機能での使用可否
1相コミット最適化アプリケーションサーバが更新するリソースが一つの場合,アプリケーションサーバの同期点処理だけで済ませます。
これによって,2回分の同期点処理の通信が不要になります。
リードオンリー最適化アプリケーションサーバがリソースを更新しない場合,またはリソースにアクセスしていない場合,OpenTP1で同期点処理の2相目(コミット/ロールバック)を実行しません。
これによって,2回分の同期点処理の通信が不要になります。
OpenTP1との機能差
OpenTP1では,リソースにアクセスしていない場合にはノーアクセス最適化が適用されますが,TP1インバウンド連携機能では,リードオンリー最適化が適用されます。
ノーアクセス最適化トランザクション属性がNotSupported,またはトランザクション管理種別がBMTのMessage-driven Bean(サービス)をトランザクショナルRPCで呼び出した場合,OpenTP1で同期点処理を実行しません。
これによって,4回分の同期点処理の通信が不要になります。
OpenTP1との機能差
OpenTP1では,リソースにアクセスしていない場合にノーアクセス最適化が適用されます。
コミット最適化アプリケーションサーバで実行する同期点処理の2相目(コミット/ロールバック)をOpenTP1で実行します。×
ロールバック最適化アプリケーションサーバでロールバック処理を実行した場合,ほかのトランザクションブランチと同期を取らないでロールバックします。
プリペア最適化アプリケーションサーバで実行する同期点処理の1相目(プリペア)を,OpenTP1で実行します。
非同期プリペア最適化アプリケーションサーバのMessage-driven Bean(サービス)の実行が終了した時点でプリペアを実行します。
(凡例)
○:使用できます。
×:使用できません。
△:使用できますが機能差があります。