5. Transactionサービス

Transactionサービスのチューニングについて説明します。

以降の説明で、「設定方法」には、設定対象となる統合運用管理ツール上の項目名や、MOの属性名を記述しています。設定方法の詳細については、 マニュアル [ コンフィグレーション(設定一覧) > Transactionサービス > Transactionサービスに関する設定 ] を参照してください。

5.1. トランザクションタイムアウト時間について

ここではトランザクションタイムアウト時間とObject Brokerのリクエスト呼び出しのタイムアウト時間の関係について、トランザクション実行中にサーバアプリケーションを呼び出さない場合とトランザクション実行中にサーバアプリケーションを呼び出す場合で分けて説明します。

なお、データベース等のリソースのタイムアウト設定はトランザクションタイムアウト時間を元にTransactionサービスで適宜変更しているので調整の必要はありません。

「トランザクションタイムアウト時間」

トランザクションを開始してから一定時間が経過してもコミットやロールバックなどの完了処理が発行されない場合に、自動的にトランザクションをロールバックするまでの時間です。Transactionサービスの機能であり、統合運用管理ツールなどで設定することができます。


「Object Brokerのリクエスト呼び出しのタイムアウト時間」

クライアントアプリケーションからサーバアプリケーションに対して処理要求を行う際に、Object Brokerが基盤となって橋渡しを行います。クライアントアプリケーションでは、この処理要求が一定時間経過しても戻ってこない場合に要求が失敗したとみなしてエラーとする機能を提供しています。この一定時間のことを「Object Brokerのリクエスト呼び出しのタイムアウト時間」と呼び、統合運用管理ツールなどで設定することができます。詳細は次のマニュアルを参照してください。[ リファレンス > 設定 > CORBA通信基盤(Object Broker) ]

5.1.1. 設定方法

サーバアプリケーションでトランザクションを開始し、統合運用管理ツールで設定する場合:

[WebOTX[<ホスト名>]]-[<ドメイン名>]-[server]-[transactionservice]-[TM設定]-[トランザクションタイムアウト時間]

サーバアプリケーションでトランザクションを開始し、運用管理コマンドで設定する場合:

otxadmin> set server.transaction-service.tx-timeout=600(秒)

クライアントアプリケーションでトランザクションを開始する場合:

Javaクライアントでは以下の形式でシステムプロパティを指定します。
-DTxTimeout=<トランザクションタイムアウト時間(秒)>

5.2. トランザクション高速化設定

JDBCコネクションとEJBインスタンスの関連付け機能の無効化

EJBを利用する場合、トランザクションの開始(begin())の前に取得したJDBCコネクションをそのトランザクションに参加させることができます。 これは、EJBインスタンスとJDBCコネクションの関連付けを行っているためです。そうした制御を行う必要がない場合には、該当機能を無効に することで、トランザクションの実行性能を向上させることができます。

具体的には以下のようなケースで高速化が可能です。

トランザクションの高速化は、${INSTANCE_ROOT}/config/TS/jta.confに以下を追加したあとドメイン再起動することにより行なうことができます。
wojta.enlistPrecreatedConnection=false