15.2. トランザクション管理

15.2.1. トランザクションの参照と管理

コマンドラインベースの管理 CLI では、トランザクションレコードを参照および操作する機能がサポートされます。この機能は、トランザクションマネージャーと JBoss Enterprise Application Platform 6 の管理 API との対話によって提供されます。
トランザクションマネージャーは、待機中の各トランザクションとトランザクションに関連する参加者に関する情報を、オブジェクトストアと呼ばれる永続ストレージに格納します。管理 API は、オブジェクトストアを log-store と呼ばれるリソースとして公開します。probe と呼ばれる API 操作はトランザクションログを読み取り、各ログに対してノードを作成します。probe コマンドは、log-store を更新する必要があるときに、いつでも手動で呼び出すことができます。トランザクションログが現れて、すぐに消失されるのは通常のことです。

例15.1 ログストアの更新

このコマンドは、管理対象ドメインでプロファイル default を使用するサーバーグループに対してログストアを更新します。スタンドアローンサーバーの場合は、コマンドから profile=default を削除します。
/profile=default/subsystem=transactions/log-store=log-store/:probe

例15.2 準備されたすべてのトランザクションの表示

準備されたすべてのトランザクションを表示するには、最初にログストアを更新し (例15.1「ログストアの更新」 を参照)、ファイルシステムの ls コマンドに類似した機能を持つ次のコマンドを実行します。
ls /profile=default/subsystem=transactions/log-store=log-store/transactions
各トランザクションが一意の ID とともに表示されます。個々の操作は、各トランザクションに対して実行できます (トランザクションの管理 を参照)。

トランザクションの管理

トランザクションの属性を表示します。
JNDI 名、EIS 製品名およびバージョン、ステータスなどのトランザクションに関する情報を表示するには、:read-resource CLIコマンドを使用します。
/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9:read-resource
トランザクションの参加者を表示します。
各トランザクションログには、参加者と呼ばれる子要素が含まれます。トランザクションの参加者を確認するには、この要素に対して read-resource CLI コマンドを使用します。参加者は、JNDI 名によって識別されます。
/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9/participants=java\:\/JmsXA:read-resource
結果は以下のようになります。
{
   "outcome" => "success",
   "result" => {
       "eis-product-name" => "HornetQ",
       "eis-product-version" => "2.0",
       "jndi-name" => "java:/JmsXA",
       "status" => "HEURISTIC",
       "type" => "/StateManager/AbstractRecord/XAResourceRecord"
   }
}
ここで示された結果ステータスは HEURISTIC であり、復元可能です。詳細については、トランザクションを復元します。 を参照してください。
トランザクションを削除します。
各トランザクションログは、トランザクションを表すトランザクションログを削除するために、:delete 操作をサポートします。
/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9:delete
トランザクションを復元します。
各トランザクションログは、:recover CLI コマンドを使用した復元をサポートします。

ヒューリスティックなトランザクションと参加者の復元

  • トランザクションのステータスが HEURISTIC である場合は、復元操作によって、ステータスが PREPARE に変わり、復元がトリガーされます。
  • トランザクションの参加者の 1 つがヒューリスティックな場合、復元操作により、commit 操作の応答が試行されます。成功した場合、トランザクションログから参加者が削除されます。これを確認するには、log-store 上で :probe 操作を再実行し、参加者がリストされていないことを確認します。これが最後の参加者の場合は、トランザクションも削除されます。
復元が必要なトランザクションのステータスを更新します。
トランザクションを復元する必要がある場合は、復元を試行する前に、:refresh CLI コマンドを使用して、トランザクションで復元が必要であることを確認できます。
/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9:refresh

注記

JTS トランザクションでは、参加者が remove サーバー上にいる場合に、トランザクションマネージャーで、制限された量の情報が利用可能になることがあります。この場合は、HornetQ ストレージモードではなくファイルベースのオブジェクトストアを使用することが推奨されます。HornetQ ストレージモードを使用するには、トランザクションマネージャーの設定で、use-hornetq-store オプションの値を true に設定します。トランザクションマネージャーの設定については、「JTA トランザクションを使用するようにデータソースを設定する」 を参照してください。
トランザクション統計情報の表示

Web ベースの管理コンソールまたはコマンドライン管理 CLI のいずれかを使用して、トランザクションマネージャーとトランザクションサブシステムに関する統計情報を評できます。

Web ベースの管理コンソールでは、トランザクション統計情報は RuntimeSubsystem MetricsTransactions を選択して取得できます。トランザクション統計情報は、管理対象ドメインの各サーバーでも利用できます。左上にある Server 選択ボックスで、サーバーを指定できます。
以下の表は、利用可能な各統計情報、その説明、および統計情報を表示する CLI コマンドを示しています。

表15.4 トランザクションサブシステム統計情報

統計 説明 CLI コマンド
Total (合計)
このサーバー上でトランザクションマネージャーにより処理されるトランザクションの合計数。
/host=master/server=server-one/subsystem=transactions/:read-attribute(name=number-of-transactions,include-defaults=true)
Committed (コミット済み)
このサーバー上でトランザクションマネージャーにより処理されるコミット済みトランザクションの数。
/host=master/server=server-one/subsystem=transactions/:read-attribute(name=number-of-committed-transactions,include-defaults=true)
Aborted (異常終了)
このサーバー上でトランザクションマネージャーにより処理される異常終了したトランザクションの数。
/host=master/server=server-one/subsystem=transactions/:read-attribute(name=number-of-aborted-transactions,include-defaults=true)
Timed Out (タイムアウト)
このサーバー上でトランザクションマネージャーにより処理されるタイムアウトのトランザクションの数。
/host=master/server=server-one/subsystem=transactions/:read-attribute(name=number-of-timed-out-transactions,include-defaults=true)
Heuristics (ヒューリスティック)
管理コンソールで利用不可です。ヒューリスティック状態のトランザクションの数。
/host=master/server=server-one/subsystem=transactions/:read-attribute(name=number-of-heuristics,include-defaults=true)
In-Flight Transactions (フライト状態のトランザクション)
管理コンソールでは使用できません。開始した未終了のトランザクションの数。
/host=master/server=server-one/subsystem=transactions/:read-attribute(name=number-of-inflight-transactions,include-defaults=true)
Failure Origin - Applications (障害の原因 - アプリケーション)
障害の原因がアプリケーションであった失敗トランザクションの数。
/host=master/server=server-one/subsystem=transactions/:read-attribute(name=number-of-application-rollbacks,include-defaults=true)
Failure Origin - Resources (障害の原因 - リソース)
障害の原因がリソースであった失敗トランザクションの数。
/host=master/server=server-one/subsystem=transactions/:read-attribute(name=number-of-resource-rollbacks,include-defaults=true)