検索

3.2. トランザクションの管理

download PDF

トランザクションの属性の表示

JNDI 名、EIS 製品名およびバージョン、状態などのトランザクションに関する情報を表示するには、read-resource 操作を使用します。

/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9:read-resource

トランザクション参加者の詳細の表示

各トランザクションログには、participants (参加者) と呼ばれる子要素が含まれます。トランザクションの参加者の詳細を確認するには、この要素に read-resource 操作を使用します。参加者は 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" => "ActiveMQ",
       "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)

代わりに以下のコマンドを実行すると、トランザクション参加者 ID が集約され表示されます。

/host=master/server=server-one/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9:read-children-names(child-type=participants)

トランザクション参加者の削除

各トランザクションログは、トランザクションを表すトランザクションログを削除する delete 操作をサポートします。

/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9:delete

これにより、トランザクションのすべての参加者も削除されます。

警告

通常、参加者のログ管理はリカバリーシステムまたはそれを所有するトランザクションログに任せますが、delete 操作はその操作を安全に実行できる場合に使用できます。XA リソースがヒューリスティックに完了すると、forget の呼び出しが発生し、XA リソースベンダーのログは適切に消去されます。この forget 呼び出しに失敗しても、デフォルトでは delete 操作は正常に行われます。この挙動をオーバーライドするには、ObjectStoreEnvironmentBean.ignoreMBeanHeuristics システムプロパティーを false に設定します。

トランザクション参加者のリカバリー

トランザクションの各参加者は、recover 操作を使用したリカバリーをサポートします。

/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9/participants=2:recover

トランザクション参加者の状態が HEURISTIC である場合、recover 操作は状態を PREPARE に切り替え、周期リカバリープロセスにコミットを再実行するよう要求します。

コミットに成功すると、参加者はトランザクションログから削除されます。これを検証するには、log-storeprobe 操作を実行し、参加者がリストされていないことを確認します。最後の参加者が削除されると、トランザクションも削除されます。

トランザクション参加者の状態の更新

トランザクションをリカバリーする必要がある場合は、リカバリーを試行する前に refresh 操作を使用して、トランザクションのリカバリーが必要であるかを確認できます。

/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9/participants=2:refresh
注記

JBoss EAP 7.0 では、トランザクション失敗の例外はシリアライズされ、クライアントに渡されます。クラスパスに例外クラスがない場合は、クライアントに対して ClassNotFoundException が発生します。

JBoss EAP 7.1 には、org.wildfly.common.rpc.RemoteExceptionCause 例外が導入されました。クライアントはこれを wildfly ライブラリーからの例外として認識します。サーバーは元の例外をこの新しい例外としてクローンし、元の例外のすべてのフィールドを文字列フォームに配置し、例外のメッセージに追加します。その後、サーバーは RemoteExceptionCause の例外のみをクライアントに渡します。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.