トランザクションマネージャーを使えば、分散トランザクションのコミットおよびロールバックを行えます。
分散トランザクションシステムは、トランザクションアクティビティーをトランザクションログに書き込み、あとで回復を実行できるようにします。ただし、トランザクションログへの書き込みを行うと、パフォーマンスがある程度低下します。
トランザクションマネージャーの監視はデフォルトで無効になっています。管理コンソールでトランザクションサービスの監視を有効にするには、「設定」>「config-name」>「監視」を選択します。
また、次のコマンドを使って監視を有効にすることもできます。
set serverInstance.transaction-service.monitoringEnabled=true reconfig serverInstance
トランザクションサービスの監視を有効にした場合、その結果を表示するには次のようにします。
管理コンソールの「スタンドアロンインスタンス」>「server-name」(「監視」|「監視」) を選択する。「ビュー」ドロップダウンから「transaction-service 」を選択する。
次のコマンドを使用する。
asadmin get -m serverInstance.transaction-service.*
トランザクションサービスに関する次の統計が収集されます。
total-tx-completed 完了したトランザクションの数。
total-tx-rolled-back ロールバックされたトランザクションの合計数。
total-tx-inflight 実行中の (アクティブな) トランザクションの合計数。
isFrozen トランザクションシステムが凍結されているかどうか (true または false)
inflight-tx 実行中の (アクティブな) トランザクションの一覧。
次に、asadmin を使用した場合の出力のサンプルを示します。
********** Stats for JTS ************ total-tx-completed = 244283 total-tx-rolled-back = 2640 total-tx-inflight = 702 isFrozen = False inflight-tx = Transaction Id , Status, ElapsedTime(msec) 000000000003C95A_00, Active, 999
回復よりもパフォーマンスが格段に重要であるような場合に、このプロパティーを使えば、トランザクションロギングを無効にすることができます。このプロパティーはデフォルトでは、サーバー設定内に存在しません。
管理コンソールで分散トランザクションロギングを無効にするには、「設定」>「config-name」>「トランザクションサービス」を選択します。「プロパティーを追加」をクリックし、次のように指定します。
名前: disable-distributed-transaction-logging
値: true
また、asadmin を使ってこのプロパティーを設定することもできます。次に例を示します。
asadmin set server1.transaction-service.disable-distributed-transaction-logging=true
この属性を true に設定すると、トランザクションロギングが無効になるため、パフォーマンスが改善される可能性があります。これを false (デフォルト) に設定すると、トランザクションサービスがトランザクションアクティビティーをトランザクションログに書き込むようになり、トランザクションの回復が可能となります。「再起動で回復」にチェックを入れると、このプロパティーは無視されます。
このプロパティーを true に設定するのは、パフォーマンスがトランザクション回復よりも重要である場合だけにしてください。
管理コンソールで「再起動で回復」属性を設定するには、「設定」>「config-name」>「トランザクションサービス」を選択します。「回復」チェックボックスをクリックして true (チェックされた状態、デフォルト) または false (チェックが解除された状態) に設定します。
また、asadmin を使って自動解除を設定することもできます。次に例を示します。
asadmin set server1.transaction-service.automatic-recovery=false
「再起動で回復」が true の場合、「分散トランザクションロギングの無効化」属性の値に関係なく、サーバーは常にトランザクションロギングを実行します。
「再起動で回復」が false の場合は次のようになります。
「分散トランザクションロギングの無効化」が false (デフォルト) の場合、サーバーはトランザクションログへの書き込みを行います。
「分散トランザクションロギングの無効化」が true の場合、サーバーはトランザクションログへの書き込みを行いません。
トランザクションログへの書き込みを行わない場合、パフォーマンスが約 20 パーセント改善されますが、その代わりに、任意の中断されたトランザクションからの回復ができなくなります。このパフォーマンス向上は、トランザクション集約型のテストを行なった場合のものです。実際のアプリケーションにおける向上率は、これより低くなる可能性があります。
「キーポイント間隔」は、完了したトランザクションのエントリをログファイルから削除する頻度を決定します。キーポイント処理を使えば、プロセスログが無制限に増大するのを防ぐことができます。
頻繁なキーポイント処理はパフォーマンスに悪影響を及ぼします。キーポイント間隔のデフォルト値は 2048 ですが、ほとんどの場合はこれで十分です。