EJB/JTAメソッドログ機能は以下の情報をサーバーログにロギングする機能です。本機能によりEJBアプリケーションメソッドの呼び出しシーケンスが確認できます。本機能はEJBアプリケーションの開発時のデバッグに利用してください。
クライアントが呼び出したEJBアプリケーションのメソッドの情報
EJBコンテナが呼び出したメソッドの情報
javax.transaction.TransactionManagerのAPI情報
EJB/JTAメソッドログが出力する情報
クライアントが呼び出したEJBアプリケーションのメソッドの情報
クライアントアプリケーションから呼び出されたEJBアプリケーションの以下のメソッド情報を出力します。
メソッド呼出し時の情報
メソッド復帰時の情報
メソッドで例外が発生したときの情報
出力される情報の詳細は「出力形式」を参照してください。
本情報が出力されるのは下記メソッド呼出し時です。
■クライアントが呼び出すEJBアプリケーションがEJB2.1以前のアプリケーションの場合
Session Bean | Entity Bean | |
---|---|---|
Homeインタフェースメソッド | create | create |
Remoteインタフェースメソッド | ビジネスメソッド | ビジネスメソッド |
LocalHomeインタフェースメソッド | create | create |
Localインタフェースメソッド | ビジネスメソッド | ビジネスメソッド |
■クライアントが呼び出すEJBアプリケーションがEJB3.0のアプリケーションの場合
Session Bean | |
---|---|
Remoteビジネスインタフェースメソッド | ビジネスメソッド |
Localビジネスインタフェースメソッド | ビジネスメソッド |
注意
EJB3.0ではEntity Beanは非推奨です。
EJB3.0のSession BeanではRemote Homeインターフェース、Local HomeインターフェースはEJBコンテナが自動で作成します。EJB/JTAメソッドログ機能では以下のように”GenericEJBHome_”が付加されたインターフェース名として出力されます。
com.sun.ejb.codegen.GenericEJBHome_Generated |
EJBコンテナが呼び出したメソッドの情報
EJBアプリケーションのメソッド呼出し時の以下の情報を出力します。
メソッド呼出し時の情報
メソッド復帰時の情報
メソッドで例外が発生したときの情報
出力される情報の詳細は「出力形式」を参照してください。
javax.transaction.TransactionManagerのAPI情報
EJBコンテナのトランザクション制御やjavax.transaction.UserTransactionのAPIで呼び出された以下のjavax.transaction.TransactionManagerのAPI情報を出力します。
トランザクションの開始(begin)
トランザクションの完了(commit/rollback)
トランザクションにロールバックを指定(setRollbackOnly)
トランザクションの中断/再開(suspend/resume)
出力される情報の詳細は「出力形式」を参照してください。
注意
本機能はアプリケーション開発時のデバッグに利用してください。
IJServerクラスタに配備されたすべてのJava EEアプリケーションのメソッドの呼び出し情報が、サーバーログへ出力されます。
Java EEアプリケーションをスレッド多重で動作させた場合、メソッドの呼び出し情報がスレッドごとに交錯して出力されますので、スレッド多重では使用しないでください。
出力形式
EJB/JTAメソッドログ機能でFINEを指定すると以下の情報が出力されます。
クライアントが呼び出したEJBアプリケーションのメソッドの情報の出力形式
クライアントからのメソッド呼出し時
CLIENT ENTRY: アプリケーション名 EJB名 インターフェース名.メソッド名 |
クライアントが呼び出したメソッド復帰時
CLIENT RETURN: アプリケーション名 EJB名 インターフェース名.メソッド名 |
クライアントが呼び出したエラー復帰時
CLIENT THROW: アプリケーション名 EJB名 インターフェース名.メソッド名 例外クラス名: 例外詳細文字列 |
以下に出力される項目と内容について示します。
出力項目 | 説明 |
---|---|
アプリケーション名 | EJBアプリケーション配備時に設定したアプリケーション名が表示されます。デフォルト値はファイル拡張子を除いた値です。 EARモジュールで配備した場合、以下の形式で出力します。 アプリケーション名#モジュール名 EJB-JARモジュール単体で配備した場合、アプリケーション名のみ出力します。 |
EJB名 | EJB2.1以前のアプリケーションの場合、Deploymet Descriptor ejb-jar.xmlのejb-nameタグの値が出力されます。 |
インターフェース名 | クライアントアプリケーションが呼び出したインターフェース名が出力されます。 |
メソッド名 | メソッド名を出力します。 |
例外クラス名 | メソッド呼出しで例外が発生した場合の例外クラス名を示します。 |
例外詳細文字列 | メソッド呼出しで発生した例外に詳細文字列が含まれている場合は、その詳細文字列を出力します。 |
出力例1(メソッド情報 正常系)
[25/06/2010 08:49:26.125 +0900] ISJEE: INFO: ISJEE_EJB_METHODLOG0001: CLIENT ENTRY: EJBapp SampleBean com.fujitsu.jccc.cbs.SampleRemoteIF.businessMethod: ThreadID=15,ThreadName=httpWorkerThread-28090-5 |
出力例2(メソッド情報 異常系)
[25/06/2010 08:49:26.125 +0900] ISJEE: INFO: ISJEE_EJB_METHODLOG0001: CLIENT ENTRY: EJBapp SampleBean com.fujitsu.jccc.cbs.SampleRemoteIF.businessMethod: ThreadID=15,ThreadName=httpWorkerThread-28090-5 |
EJBコンテナが呼び出したメソッドの情報の出力形式
メソッド呼出し時
ENTRY: アプリケーション名 EJB名 クラス名.メソッド名 |
メソッド復帰時
RETURN: アプリケーション名 EJB名 クラス名.メソッド名 |
エラー復帰時
THROW: アプリケーション名 EJB名 クラス名.メソッド名 例外クラス名: 例外詳細文字列 |
以下に出力される項目と内容について示します。
出力項目 | 説明 |
---|---|
アプリケーション名 | EJBアプリケーション配備時に設定したアプリケーション名が表示されます。デフォルト値はファイル拡張子を除いた値です。 EARモジュールで配備した場合、以下の形式で出力します。 アプリケーション名#モジュール名 EJB-JARモジュール単体で配備した場合、アプリケーション名のみ出力します。 |
EJB名 | EJB2.1以前のアプリケーションの場合、Deploymet Descriptor ejb-jar.xmlのejb-nameタグの値です。 |
クラス名 | EJBコンテナが呼び出したEJBアプリケーションのBeanクラス名が出力されます。 |
メソッド名 | メソッド名を出力します。 |
例外クラス名 | メソッド呼出しで例外が発生した場合の例外クラス名を示します。 |
例外詳細文字列 | メソッド呼出しで発生した例外に詳細文字列が含まれている場合は、その詳細文字列を出力します。 |
出力例1(メソッド情報 正常系)
[25/06/2010 08:49:26.125 +0900] ISJEE: INFO: ISJEE_EJB_METHODLOG0001: ENTRY: EJBapp SampleBean com.fujitsu.jccc.cbs.SampleBean.businessMethod : ThreadID=15,ThreadName=httpWorkerThread-28090-5 |
出力例2(メソッド情報 異常系)
[25/06/2010 08:49:26.125 +0900] ISJEE: INFO: ISJEE_EJB_METHODLOG0001: ENTRY: EJBapp SampleBean com.fujitsu.jccc.cbs.SampleBean.businessMethod: ThreadID=15,ThreadName=httpWorkerThread-28090-5 |
javax.transaction.TransactionManagerのAPI情報
トランザクション制御開始時
ENTRY: javax.transaction.TransactionManager メソッド名 |
トランザクション制御完了時
RETURN: javax.transaction.TransactionManager メソッド名 |
エラー発生時
THROW: javax.transaction.TransactionManager メソッド名 例外クラス名: 例外詳細文字列 |
以下に出力される項目と内容について示します。
出力項目 | 説明 |
---|---|
メソッド名 | メソッド名を示します。 |
例外クラス名 | メソッド呼出しで例外が発生した場合の例外クラス名を示します。 |
例外詳細文字列 | メソッド呼出しで発生した例外に詳細文字列が含まれている場合は、その詳細文字列を出力します。 |
出力例1(トランザクション制御情報 正常系)
[25/06/2010 08:49:26.125 +0900] ISJEE: INFO: ISJEE_JTA_METHODLOG0001: ENTRY: javax.transaction.TransactionManager begin: ThreadID=15,ThreadName=httpWorkerThread-28090-5 |
出力例2(トランザクション制御情報 異常系)
[25/06/2010 08:49:26.125 +0900] ISJEE: INFO: ISJEE_JTA_METHODLOG0001: ENTRY: javax.transaction.TransactionManager begin:ThreadID=15,ThreadName=httpWorkerThread-28090-5 |
注意
メソッドを呼び出したインスタンスがすでに削除されており、出力項目の情報を取得できない場合などは、取得できなかった出力項目に"-"(ハイフン)を表示します。
EJBタイマーサービスを有効にした場合、以下のようにEJBタイマーサービスが呼び出すメソッドが「クライアントが呼び出したEJBアプリケーションのメソッドの情報」または「EJBコンテナが呼び出したメソッドの情報」としてログに出力されます。
[30/03/2011 13:19:03.140 +0900] ISJEE: INFO: ISJEE_EJB_METHODLOG0001: CLIENT ENTRY: __ejb_container_timer_app#ejb.jar TimerBean com.sun.ejb.containers.TimerLocalHome.create: ThreadID=15,ThreadName=p: thread-pool-1; w: 6 [30/03/2011 13:19:03.140 +0900] ISJEE: INFO: ISJEE_EJB_METHODLOG0001: ENTRY: __ejb_container_timer_app#ejb.jar TimerBean com.sun.ejb.containers.TimerBean.ejbCreate: ThreadID=15,ThreadName=p: thread-pool-1; w: 6 |