19.2. トランザクション管理
19.2.1. トランザクションの参照と管理 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
管理 CLI では、トランザクションレコードを参照および操作する機能がサポートされます。この機能は、トランザクションマネージャーと JBoss EAP 6 の管理 API 間の対話によって提供されます。
トランザクションマネージャーは、保留中の各トランザクションとトランザクションに関連する参加者に関する情報を オブジェクトストア と呼ばれる永続ストレージに格納します。管理 API は、オブジェクトストアを
log-store と呼ばれるリソースとして公開します。probe という API 操作はトランザクションログを読み取り、ログごとにノードを作成します。probe を更新する必要がある場合は、log-store コマンドを手動で呼び出すことができます。トランザクションログが即座に表示され非表示になるのは、正常な挙動です。
例19.1 ログストアの更新
このコマンドは、管理対象ドメインでプロファイル
default を使用するサーバーグループに対してログストアを更新します。スタンドアローンサーバーの場合は、コマンドから profile=default を削除します。
/profile=default/subsystem=transactions/log-store=log-store/:probe
例19.2 準備済みトランザクションすべての表示
準備済みトランザクションをすべて表示するには、最初にログストアを更新し( 例19.1「ログストアの更新」を参照)、ファイルシステムの ls コマンドと同様に機能する以下のコマンドを実行します。
ls /profile=default/subsystem=transactions/log-store=log-store/transactions
各トランザクションが一意の識別子とともに表示されます。個々の操作は、各トランザクションに対して実行できます( トランザクションの管理を参照)。
トランザクションの管理
- トランザクションの属性を表示します。
- JNDI 名、EIS 製品名およびバージョン、ステータスなどのトランザクションに関する情報を表示するには、
:read-resourceCLI コマンドを使用します。/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9:read-resource - トランザクションの参加者を表示します。
- 各トランザクションログには、
participantsと呼ばれる子要素が含まれます。この要素でread-resourceCLI コマンドを使用して、トランザクションの参加者を確認します。参加者は 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 - トランザクションをリカバリーします。
- 各トランザクションの参加者は、
:recoverCLI コマンドを使用したリカバリーをサポートします。/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9/participants=2:recoverヒューリスティックトランザクションおよび参加者のリカバリー
- トランザクションの状態が
HEURISTICの場合、リカバリー操作は状態をPREPAREに変更し、リカバリーをトリガーします。 - トランザクションの参加者の 1 つがヒューリスティックな場合、リカバリー操作は
commit操作を再生しようとします。成功すると、参加者はトランザクションログから削除されます。これを確認するには、:probeでlog-store操作を再実行し、参加者がリストされていないことを確認します。最後の参加者が削除されると、トランザクションも削除されます。
- リカバリーが必要なトランザクションの状態を更新します。
- トランザクションをリカバリーする必要がある場合は、リカバリーを試行する前に
:refreshCLI コマンドを使用してリカバリーが必要なことを確認できます。/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9/participants=2:refresh
トランザクション統計情報の表示
トランザクションマネージャーの統計が有効になっていると、トランザクションマネージャーおよびトランザクションサブシステムに関する統計を表示できます。トランザクションマネージャーの統計を有効にする方法は、「トランザクションマネージャーの設定」 を参照してください。
管理コンソールまたは管理 CLI を使用して統計を表示できます。管理コンソールでは、 。管理対象ドメインの各サーバーでは、トランザクションの統計を利用できます。別のサーバーの状態を表示するには、左側のメニューで Change Server を選択し、一覧からサーバーを選択します。
以下の表は、統計を表示する利用可能な各統計、その説明、および管理 CLI コマンドを示しています。
| 統計 | 説明 | CLI コマンド |
|---|---|---|
| 合計 |
このサーバー上でトランザクションマネージャーにより処理されるトランザクションの合計数。
|
|
| Committed |
このサーバー上でトランザクションマネージャーにより処理されるコミット済みトランザクションの数。
|
|
| 強制終了 |
このサーバー上でトランザクションマネージャーにより処理されるアボートされたトランザクションの数。
|
|
| Timed Out |
このサーバー上でトランザクションマネージャーにより処理されるタイムアウトのトランザクションの数。
|
|
| Heuristics |
管理コンソールでは利用できません。ヒューリスティック状態のトランザクションの数。
|
|
| フライト状態のトランザクション |
管理コンソールでは利用できません。開始済みであるが終了されていないトランザクションの数。
|
|
| 障害の原因 - アプリケーション |
障害の原因がアプリケーションであった失敗トランザクションの数。
|
|
| 障害の原因 - リソース |
障害の原因がリソースであった失敗トランザクションの数。
|
|
| 参加者 ID |
参加者の ID。
|
|
| トランザクションすべてのリスト |
トランザクションの完全リスト。
|
|