Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

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-resourceCLI コマンド。
/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-logstrue に設定する必要があります。このオプションは管理モデルには保存されず、サーバーが再起動されると 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参加者がリストされていないことを確認します。最後の参加者が削除されると、トランザクションも削除されます。
リカバリーが必要なトランザクションの状態を更新します。
トランザクションをリカバリーする必要がある場合は、リカバリーを試行する前に :refresh CLI コマンドを使用して、トランザクションのリカバリーが必要であるかを確認できます。
/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9/participants=2:refresh

トランザクション統計情報の表示

トランザクションマネージャーの統計が有効になっている場合は、トランザクションマネージャーとトランザクションサブシステムに関する統計を表示できます。見る「トランザクションマネージャーの設定」TransactionManager 統計を有効にする方法については。

統計は、管理コンソールまたは管理 CLI のいずれかを介して表示できます。管理コンソールでは、トランザクション統計は ランタイムステータスサブシステムトランザクション を介して利用できます。トランザクション統計は、管理対象ドメイン内のサーバーごとに利用できます。別のサーバーのステータスを表示するには、左側のメニューでサーバーの 変更 を選択し、リストからサーバーを選択します。
以下の表は、利用可能な各統計情報、その説明、および統計情報を表示する 管理 CLI コマンドを示しています。

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

統計 説明 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)