12.6.3.3. トランザクションの参照と管理
管理 CLI では、トランザクションレコードを参照および操作する機能がサポートされます。この機能は、TransactionManager と JBoss EAP 6 の管理 API 間の相互作用によって提供されます。
トランザクションマネージャーは、待機中の各トランザクションとトランザクションに関連する参加者に関する情報を、オブジェクトストアと呼ばれる永続ストレージに格納します。管理 API は、オブジェクトストアを
log-store
と呼ばれるリソースとして公開します。と呼ばれる API 操作probe
トランザクションログを読み取り、ログごとにノードを作成します。あなたは呼び出すことができますprobe
コマンドを手動で更新する必要があるときはいつでもlog-store
。トランザクションログが即座に表示され非表示になるのは、正常な挙動です。
例12.2 ログストアの更新
このコマンドは、管理対象ドメインでプロファイル
default
を使用するサーバーグループに対してログストアを更新します。スタンドアローンサーバーの場合は、コマンドから profile=default
を削除します。
/profile=default/subsystem=transactions/log-store=log-store/:probe
例12.3 準備済みトランザクションすべての表示
準備済みトランザクションをすべて表示するには、最初に 例12.2「ログストアの更新」し、ファイルシステムの ls コマンドに類似した機能を持つ次のコマンドを実行します。
ls /profile=default/subsystem=transactions/log-store=log-store/transactions
各トランザクションが一意の識別子とともに表示されます。個々の操作は、各トランザクションに対して実行できます (トランザクションの管理 を参照してください)。
トランザクションの管理
- トランザクションの属性を表示します。
- JNDI 名、EIS 製品名とバージョン、またはそのステータスなどのトランザクションに関する情報を表示するには、
:read-resource
CLI コマンド。/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9:read-resource
- トランザクションの参加者を表示します。
- 各トランザクションログには、という子要素が含まれています
participants
。使用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
状態であり、回復の資格があります。詳細は、トランザクションをリカバリーします。 を参照してください。特別な場合では、ログに対応するトランザクションレコードがないオーファンレコード (XAResourceRecords) をオブジェクトストアに作成できます。たとえば、準備済みの XA リソースが TM の記録前にクラッシュし、ドメイン管理 API はアクセス不可能である場合などです。このようなレコードにアクセスするには、管理オプションexpose-all-logs
をtrue
に設定する必要があります。このオプションは管理モデルには保存されず、サーバーが再起動されるとfalse
に戻ります。/profile=default/subsystem=transactions/log-store=log-store:write-attribute(name=expose-all-logs, value=true)
- トランザクションを削除します。
- 各トランザクションログは、トランザクションを表すトランザクションログを削除する
:delete
操作をサポートします。/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9:delete
- トランザクションをリカバリーします。
- 各トランザクション参加者は、
:recover
CLI コマンド。/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9/participants=2:recover
ヒューリスティックなトランザクションと参加者のリカバリー
- トランザクションのステータスが
HEURISTIC
の場合、リカバリ操作は状態をPREPARE
に変更し、リカバリをトリガーします。 - トランザクションの参加者の 1 人がヒューリスティックである場合、リカバリ操作は再生を試みます
commit
手術。成功すると、参加者はトランザクションログから削除されます。これを確認するには、:probe
の操作log-store
参加者がリストされていないことを確認します。最後の参加者が削除されると、トランザクションも削除されます。
- リカバリーが必要なトランザクションの状態を更新します。
- トランザクションをリカバリーする必要がある場合は、リカバリーを試行する前に
:refresh
CLI コマンドを使用して、トランザクションのリカバリーが必要であるかを確認できます。/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9/participants=2:refresh
トランザクション統計情報の表示
トランザクションマネージャーの統計が有効になっている場合は、トランザクションマネージャーとトランザクションサブシステムに関する統計を表示できます。見る「トランザクションマネージャーの設定」TransactionManager 統計を有効にする方法については。
統計は、管理コンソールまたは管理 CLI のいずれかを介して表示できます。管理コンソールでは、トランザクション統計は を介して利用できます。トランザクション統計は、管理対象ドメイン内のサーバーごとに利用できます。別のサーバーのステータスを表示するには、左側のメニューでサーバーの 変更 を選択し、リストからサーバーを選択します。
以下の表は、利用可能な各統計情報、その説明、および統計情報を表示する 管理 CLI コマンドを示しています。
統計 | 説明 | CLI コマンド |
---|---|---|
合計 |
このサーバー上でトランザクションマネージャーにより処理されるトランザクションの合計数。
| /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) |
強制終了 |
このサーバー上でトランザクションマネージャーにより処理されるアボートされたトランザクションの数。
| /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) |
フライト状態のトランザクション |
管理コンソールでは使用できません。開始済みであるが終了されていないトランザクション数。
| /host=master/server=server-one/subsystem=transactions/:read-attribute(name=number-of-inflight-transactions,include-defaults=true) |
障害の原因 - アプリケーション |
障害の原因がアプリケーションであった失敗トランザクションの数。
| /host=master/server=server-one/subsystem=transactions/:read-attribute(name=number-of-application-rollbacks,include-defaults=true) |
障害の原因 - リソース |
障害の原因がリソースであった失敗トランザクションの数。
| /host=master/server=server-one/subsystem=transactions/:read-attribute(name=number-of-resource-rollbacks,include-defaults=true) |
参加者 ID |
参加者の ID。
| /host=master/server=server-one/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9:read-children-names(child-type=participants) |
トランザクションすべてのリスト |
トランザクションの完全リスト。
| /host=master/server=server-one/subsystem=transactions/log-store=log-store:read-children-names(child-type=transactions) |