BEA ホーム | 製品 | dev2dev | support | askBEA
 ドキュメントのダウンロード   サイト マップ   Glossary 
検索

WebLogic JTA プログラマーズ ガイド

 Previous Next Contents Index PDF で侮ヲ  

トランザクションのトラブルシューティング

この章では、トランザクション失敗の原因を突き止めたり、問題修正の手段を決定したりするためのトラブルシューティング ツールおよびタスクについて説明します。

この章では次の内容について説明します。

 


概要

WebLogic Server では、実行中のトランザクションをモニタし、ヒューリスティックな終了のケースで適切な情報を確実に取り込むことができます。また、データベース クエリ、トランザクション要求、および Bean メソッドのパフォーマンスをモニタすることもできます。

 


トラブルシューティング ツール

WebLogic Server では、トランザクションのトラブルシューティングで以下の支援を利用できます。

例外

WebLogic JTA では、すべての標準の JTA 例外がサポートされています。標準の JTA 例外の詳細については、javax.transaction および javax.transaction.xa パッケージ API の Javadoc を参照してください。

標準の JTA 例外に加えて、WebLogic Server では weblogic.transaction.RollbackException クラスが提供されます。このクラスは javax.transaction.RollbackException を拡張し、ロールバックの元々の理由を保持します。トランザクションをロールバックする前、つまり rollbackonly に設定する前に、アプリケーションではそのロールバックの理由を提供できます。トランザクション サービスの中で発生したすべてのロールバックではその理由が設定されます。たとえば、タイムアウト、XA エラー、beforeCompletion での非検査例外、あるいはトランザクション マネージャへのアクセス不能などです。一度設定された理由は上書きできません。

トランザクション識別子

トランザクション サービスでは、各トランザクションにトランザクション識別子 (Xid) が割り当てられます。この ID は、ログ ファイル内で特定トランザクションの情報を他と区別するために使用できます。トランザクション識別子は、weblogic.transaction.Transaction インタフェースの getXID メソッドを使用して取り出すことができます。トランザクション識別子を取得するメソッドの詳細については、weblogic.transaction.Transaction の Javadoc を参照してください。

トランザクションの名前とプロパティ

WebLogic JTA では、トランザクションの命名とユーザ定義プロパティをサポートする javax.transaction.Transaction の拡張機能が提供されます。それらの拡張機能は、weblogic.transaction.Transaction インタフェースに含まれています。

トランザクション名は、トランザクションの種類 (送金やチケット購入など) を示します。したがって、サーバ上のユニークなトランザクションを識別するトランザクション ID とは混同しないでください。トランザクション名を利用すると、例外やログ ファイルでトランザクションの種類を簡単に識別できます。

ユーザ定義のプロパティはキーと値の組み合わせです。この場合のキーはプロパティを識別する文字列であり、値はプロパティに割り当てられた現在の値です。トランザクション プロパティの値は、Serializable インタフェースを実装するオブジェクトでなければなりません。アプリケーションでは、weblogic.transaction.Transaction インタフェースで定義されている set メソッドと get メソッドを使用してプロパティを管理します。一度設定されたプロパティは、有効期間が終わるまでトランザクションと共に存在し、トランザクションがシステムを移動するときにはマシン間で受け渡しされます。プロパティはトランザクション ログに保存され、クラッシュの回復処理で復元されます。トランザクション プロパティが複数回にわたって設定された場合は、最新の値が維持されます。

トランザクション名とトランザクション プロパティを設定および取得するメソッドの詳細については、weblogic.transaction.Transaction の Javadoc を参照してください。

トランザクション ステータス

Java Transaction API では、javax.transaction.Status クラスを使用してトランザクションのステータス コードが提供されます。weblogic.transaction.TransactiongetStatusAsString メソッドを使用すると、トランザクションのステータスを文字列として返すことができます。文字列には、javax.transaction.Status で指定されているメジャー ステートと、補足的なマイナー ステート (loggingpre-preparing など) が含まれます。

トランザクションの統計

トランザクションの統計は、サーバ上のトランザクション マネージャで処理されるすべてのトランザクションについて提供されます。それらの統計には、トランザクションの総数、特定の結果 (コミット、ロールバック、ヒューリスティックな終了など) を持つトランザクションの数、ロールバックされたトランザクションの理由別の数、およびトランザクションがアクティブな状態を維持した合計時間が含まれます。トランザクションの統計の詳細については、Administration Console のオンライン ヘルプを参照してください。

トランザクションのモニタとロギング

Administration Console を使用すると、トランザクションをモニタしたり、トランザクション ログ ファイルのプレフィックスを指定したりできます。モニタ タスクおよびロギング タスクは、サーバ レベルで実行されます。トランザクション統計は特定のサーバに表示され、トランザクション ログ ファイルは各サーバに格納されます。

詳細については『WebLogic Server 管理者ガイド』の「トランザクションのモニタとログ」を参照してください。

 


デバッグのヒント

トランザクションの命名プロパティを使用すると、問題のあるトランザクションを分離および識別できます。

トランザクションをデバッグするときには、WebLogic JTA と関与しているリソースの間で障害を分離する必要があります。

 

Back to Top Previous Next