ファイル名
ログファイルの出力先
[Java EE 7共通ディレクトリ]\domains\domain1\logs\iiop |
[Java EE 7共通ディレクトリ]/domains/domain1/logs/iiop |
[Java EE 7共通ディレクトリ]\nodes\localhost-domain1\<サーバーインスタンス名>\logs\iiop |
[Java EE 7共通ディレクトリ]/nodes/localhost-domain1/<サーバーインスタンス名>/logs/iiop |
IIOPアクセスログのログ出力先ディレクトリは変更可能です。変更方法については、「設定方法」を参照してください。
出力内容
IIOP通信の通信内容が出力されます。
仕様
IIOPアクセスログは、ACCESS/TRACE/NONEの3つの出力モードを選択できます。以下のように、選択したモードによってログの出力内容を切り替えることが可能です。デフォルトでは、ACCESSモードで出力します。出力モードの設定方法については、「設定方法」を参照してください。
クライアントでは、サーバへのリクエスト送信をタイムスタンプ付きで出力します。サーバでは、クライアントへのレスポンス送信をタイムスタンプ付きで出力します。
クライアントおよびサーバ側で、1回の通信につき1ラインのログを出力します。
以下の情報をログに出力します。
コネクションの確立/切断
リクエストの送信/受信
レスポンスの送信/受信
フラグメントの送信/受信
リクエストおよびレスポンス以外のメッセージの送信/受信
サーバアプリケーションの開始/終了
IIOP通信の内容をアクセスログに出力しません。
IIOPアクセスログは、IIOP通信の情報を以下の図で示す事象に分類し、事象発生時にタイムスタンプ付きでログを出力します。
図中の[2]送信、[3]受信、[6]送信、および[7]受信では、以下に関する情報をアクセスログに出力します。
リクエストメッセージ(Request)
レスポンスメッセージ(Reply)
フラグメントされたメッセージ(Fragment)の送受信
リクエストメッセージ/レスポンスメッセージ以外のメッセージの送受信(Other)
以下に、送信(OUT)および受信(IN)で出力されるメッセージ種別と、ACCESSおよびTRACEモードとの出力関係を示します。
通番 | 送受信(OUT/IN) | メッセージ種別 | ACCESSモード | TRACEモード |
---|---|---|---|---|
[2] | OUT | Request | ○ | ○ |
Fragment | × | ○ | ||
Other | × | ○ | ||
[3] | IN | Request | × | ○ |
Fragment | × | ○ | ||
Other | × | ○ | ||
[6] | OUT | Reply | ○ | ○ |
Fragment | × | ○ | ||
Other | × | ○ | ||
[7] | IN | Reply | × | ○ |
Fragment | × | ○ | ||
Other | × | ○ |
リクエストメッセージ/レスポンスメッセージ以外のメッセージの送受信(Other)については、CORBA規約で定められているGIOPメッセージタイプのうち、以下のいずれかのメッセージタイプに相当します。
メッセージ | メッセージタイプ | 意味 |
---|---|---|
Other | CancelRequest | リクエストを取り消します。 |
LocateRequest | リクエストに関する問合せを実施します。 | |
LocateReply | LocateRequestに対する応答です。 | |
CloseConnection | コネクションの切断を要求します。 | |
MessageError | 送信または受信に問題があることを通知します。 |
図中の[1]connect、[9]connect_close、および[10]close_resp_infoは、コネクション接続に関する情報をアクセスログに出力します。
[4]app_beginおよび[5]app_endは、アプリケーション呼出しに関する情報をアクセスログに出力します。
[8]reply_statusは、サーバから受信したメッセージのステータスに関する情報をアクセスログに出力します。
以下に、出力される情報と、ACCESSおよびTRACEモードとの関係を示します。
通番 | 事象名 | 意味 | ACCESSモード | TRACEモード |
---|---|---|---|---|
[1] | connect | サーバに対してコネクションを確立します。 | × | ○ |
[4] | app_begin | アプリケーション呼出しを開始します。 | × | ○ |
[5] | app_end | アプリケーション呼出しを終了します。 | × | ○ |
[8] | reply_status | サーバから受信したメッセージのステータスです。 | × | ○ |
[9] | connect_close | コネクションを切断します。 | × | ○ |
[10] | close_resp_info | コネクションの切断、閉塞により、レスポンスを破棄します。 | × | ○ |
IIOPアクセスログファイルは、ORBの初期化の際に作成されます。同名ファイルがすでに存在する場合は、その同名ファイルにアクセスログが追加出力されます。
読取り権限または書込み権限がない時など、IIOPアクセスログの出力処理中にエラーが発生した場合、サーバーログにエラーメッセージが出力されます。エラーが発生した後は、IIOPアクセスログが出力されなくなります。
注意
IJServerクラスタプロセス内の呼出しの場合は、IJServerクラスタに配備したEJBアプリケーションをローカルに呼び出す場合のように、IIOP通信が使用されないため、アクセスログは出力されません。
クライアントマシン上では、Java EEアプリケーションクライアントのIIOP通信情報はアクセスログに出力されません。
設定方法
IIOPサービスの定義項目のプロパティで、以下の項目が設定できます。IIOPサービスの定義項目については、「8.8.4 IIOPサービスの定義項目」を参照してください。
出力モード
ORBの追加プロパティに、IIOPアクセスログの出力モードを設定します。
出力モードの設定方法については、「出力モードの設定」を参照してください。
ローテーションに関する設定
IIOPアクセスログのログサイズおよび世代数に、ローテーションの条件や世代数を設定します。
ローテーションの詳細については、「■IIOPアクセスログの場合」を参照してください。
ログ出力ディレクトリ
IIOPアクセスログのログ出力ディレクトリに、ログファイルの出力先を設定します。
IIOPサービスのORB定義の追加プロパティに、以下を設定します。
プロパティ名 | 説明 | プロパティ値 | 省略値 |
---|---|---|---|
ISJE7LogIiopAccessMode | IIOPアクセスログの出力モードを設定します。 |
| access |
例
asadminコマンドを使用して追加プロパティに出力モードを設定する場合、以下のように設定します。
C:\Interstage\F3FMisje7\glassfish\bin\asadmin set IJServer001.iiop-service.orb.property.ISJE7LogIiopAccessMode=trace
/opt/FJSVisje7/glassfish/bin/asadmin set IJServer001.iiop-service.orb.property.ISJE7LogIiopAccessMode=trace
注意
プロパティを設定しない場合、省略値で動作します。
プロパティの設定値を変更した場合は、変更対象のIJServerクラスタまたはInterstage Java EE 7 DASサービスを再起動し、サーバーログにエラーメッセージが出力されていないことを確認してください。
出力フォーマット
"[<日付> <時刻>]" "<スレッドID(スレッド名)>" "<メッセージ>"
日(2桁10進数)/月(3文字英字)/年(4桁10進数)
時間(2桁10進数):分(2桁10進数):秒(2桁10進数).ミリ秒(3桁10進数) (GMTとの時差)
ID(10進数)(名(英数字))
IIOP通信に関する情報を表示します。以下に示すメッセージフォーマットで出力します。
<送受信>(<役割>) <メッセージ種別> <補足情報>
IN:受信による通信を表します。
OUT:送信による通信を表します。
CL:クライアント機能として動作していることを表します。
SV:サーバ機能として動作していることを表します。
以下のいずれかが出力されます。
Request
Reply
Fragment
Other
メッセージ種別ごとの補足情報です。詳細は「メッセージ種別ごとの補足情報」を参照してください。
<事象名> <補足情報>
以下が出力されます。
connect
connect_close
close_resp_info
app_begin
app_end
reply_status
事象名ごとの補足情報です。詳細は「事象名ごとの補足情報」を参照してください。
メッセージフォーマットの<送受信>がINの場合
(request_id=<リクエストID>, client=<クライアント情報>, server=<サーバ情報>, more=<フラグメント情報>)
メッセージフォーマットの<送受信>がOUTの場合
(request_id=<リクエストID>, client=<クライアント情報>, server=<サーバ情報>, more=<フラグメント情報>, intf_id=<インタフェースリポジトリID>, operation=<メソッド名>, oneway=<oneway呼出し>)
Requestメッセージ送信時のリクエストIDです。
リクエストIDが表示できない場合は、「-」を表示します。
Requestメッセージ要求元のIPアドレスおよびポート番号です。
Requestメッセージ要求先のIPアドレスおよびポート番号です。
false:Requestメッセージが分割されていないことを表します。
true:Requestメッセージが分割され、後続のFragmentメッセージが存在することを表します。
アプリケーションを識別する情報です。
CORBA規約で定められているインタフェースリポジトリIDに相当します。
クライアントアプリケーションが呼び出したサーバアプリケーションのメソッド名です。
Requestがサーバからの応答を期待しないonewayメソッドであるかを表します。
true:onewayメソッドであることを表します。
false:onewayメソッドでないことを表します。
メッセージフォーマットの<送受信>がINの場合
(request_id=<リクエストID>, client=<クライアント情報>, server=<サーバ情報>, more=<フラグメント情報>)
メッセージフォーマットの<送受信>がOUTの場合
<リプライステータス> <経過時間> (request_id=<リクエストID>, client=<クライアント情報>, server=<サーバ情報>, more=<フラグメント情報>, intf_id=<インタフェースリポジトリID>, operation=<メソッド名>, [excep_id=<例外のリポジトリID>], [minor=<SYSTEM例外のマイナーコード>])
以下のいずれかが表示されます。
リプライステータス | 意味 |
---|---|
NO_EXCEPTION | 正常復帰します。 |
USER_EXCEPTION | ユーザ例外が発生しました。 |
SYSTEM_EXCEPTION | システム例外が発生しました。 |
LOCATION_FORWARD | 適切な要求先の情報を返却します。 |
LOCATION_FORWARD_PERM | 好ましい要求先の情報を返却します。 |
NEEDS_ADDRESSING_MODE | 要求方法の変更を通知します。 |
サーバが要求を受信した後、実際に要求処理を開始してからクライアントに応答を返すまでの経過時間を表示します。サーバからクライアントに返すメッセージが、複数のフラグメントに分割される場合は、分割した最初のメッセージを返すまでの経過時間を表示します。単位はミリ秒です。
Replyメッセージに対応するRequestメッセージのリクエストIDです。
リクエストIDが表示できない場合は、「-」を表示します。
Replyメッセージ応答先のIPアドレスおよびポート番号です。
Replyメッセージ応答元のIPアドレスおよびポート番号です。
false:Replyメッセージが分割されていないことを表示します。
true:Replyメッセージが分割され、後続のFragmentメッセージが存在することを表します。
アプリケーションを識別する情報です。
CORBA規約で定められているインタフェースリポジトリIDに相当します。
インタフェースリポジトリIDが表示できない場合は、「-」を表示します。
クライアントアプリケーションが呼び出したサーバアプリケーションのメソッド名です。
リプライステータスがUSER_EXCEPTIONまたはSYSTEM_EXCEPTIONの場合に、例外のリポジトリIDを表示します。リプライステータスがそれ以外の場合は表示されません。
リプライステータスがSYSTEM_EXCEPTIONの場合に、例外のマイナーコードを10進数で表示します。リプライステータスがそれ以外の場合は表示されません。
(request_id=<リクエストID>, client=<クライアント情報>, server=<サーバ情報>, more=<フラグメント情報>)
Fragmentメッセージ要求時のリクエストIDです。
Fragmentメッセージの要求元または応答先の、IPアドレスおよびポート番号です。
Fragmentメッセージの要求先または応答元の、IPアドレスおよびポート番号です。
false:後続のFragmentメッセージが存在しないことを表します。
true:後続のFragmentメッセージが存在することを表します。
<メッセージタイプ> ([reply_status=<リプライステータス>], [request_id=<リクエストID>], client=<クライアント情報>, server=<サーバ情報>, [more=<フラグメント情報>], [excep_id=<例外のリポジトリID>], [minor=<SYSTEM例外のマイナーコード>])
以下のいずれかが表示されます。
CancelRequest
LocateRequest
LocateReply
CloseConnection
MessageError
メッセージ種別がLocateReplyの場合にだけ、以下の情報が出力されます。
リプライステータス | 意味 |
---|---|
UNKNOWN_OBJECT | 不正な要求です。 |
OBJECT_HERE | 適切な要求です。 |
OBJECT_FORWARD | 適切な要求先の情報を返却します。 |
OBJECT_FORWARD_PERM | 好ましい要求先の情報を返却します。 |
LOC_SYSTEM_EXCEPTION | システム例外が発生しました。 |
LOC_NEEDS_ADDRESSING_MODE | 要求方法の変更を通知します。 |
メッセージ要求時のリクエストIDです。
リクエストIDが表示できない場合は、「-」を表示します。
メッセージの要求元または応答先の、IPアドレスおよびポート番号です。
メッセージの要求先または応答元の、IPアドレスおよびポート番号です。
false:後続のFragmentメッセージが存在しないことを表します。
true:後続のFragmentメッセージが存在することを表します。
メッセージタイプがLocateReplyで、リプライステータスがLOC_SYSTEM_EXCEPTIONの場合にだけ、例外のリポジトリIDを表示します。
メッセージタイプがLocateReplyで、リプライステータスがLOC_SYSTEM_EXCEPTIONの場合にだけ、例外のマイナーコードを10進数で表示します。
注) 表示する情報がない場合は、アクセスログに出力されません。
(client=<クライアント情報>, server=<サーバ情報>)
コネクション接続元のIPアドレスおよびポート番号です。
コネクション接続先のIPアドレスおよびポート番号です。
(client=<クライアント情報>, server=<サーバ情報>)
コネクション接続元のIPアドレスおよびポート番号です。
コネクション接続先のIPアドレスおよびポート番号です。
(request_id=<リクエストID>, client=<クライアント情報>, server=<サーバ情報>, [intf_id=<インタフェースリポジトリID>], [operation=<メソッド名>])
破棄されたメッセージのリクエストIDです。
コネクション接続元のIPアドレスおよびポート番号です。
コネクション接続先のIPアドレスおよびポート番号です。
アプリケーションを識別する情報です。
CORBA規約で定められているインタフェースリポジトリIDに相当します。
クライアントアプリケーションが呼び出したサーバアプリケーションのメソッド名です。
注) 表示する情報がない場合は、アクセスログに出力されません。
(request_id=<リクエストID>, client=<クライアント情報>, server=<サーバ情報>, intf_id=<インタフェースリポジトリID>, operation=<メソッド名>)
RequestメッセージのリクエストIDです。
コネクション接続元のIPアドレスおよびポート番号です。
コネクション接続先のIPアドレスおよびポート番号です。
アプリケーションを識別する情報です。
CORBA規約で定められているインタフェースリポジトリIDに相当します。
クライアントアプリケーションが呼び出したサーバアプリケーションのメソッド名です。
<経過時間> (request_id=<リクエストID>, client=<クライアント情報>, server=<サーバ情報>, intf_id=<インタフェースリポジトリID>, operation=<メソッド名>)
アプリケーションの処理時間です。単位はミリ秒です。
RequestメッセージのリクエストIDです。
コネクション接続元のIPアドレスおよびポート番号です。
コネクション接続先のIPアドレスおよびポート番号です。
アプリケーションを識別する情報です。
CORBA規約で定められているインタフェースリポジトリIDに相当します。
クライアントアプリケーションが呼び出したサーバアプリケーションのメソッド名です。
<メッセージ種別> <リプライステータス> (request_id=<リクエストID>, client=<クライアント情報>, server=<サーバ情報>, [operation=<メソッド名>], [excep_id=<例外のリポジトリID>], [minor=<SYSTEM例外のマイナーコード>])
ReplyまたはLocateReplyが表示されます。
メッセージ種別に従い、以下のステータスが表示されます。
メッセージ種別 | ステータス |
---|---|
Reply | NO_EXCEPTION |
USER_EXCEPTION | |
SYSTEM_EXCEPTION | |
LOCATION_FORWARD | |
LOCATION_FORWARD_PERM | |
NEEDS_ADDRESSING_MODE | |
LocateReply | UNKNOWN_OBJECT |
OBJECT_HERE | |
OBJECT_FORWARD | |
OBJECT_FORWARD_PERM | |
LOC_SYSTEM_EXCEPTION | |
LOC_NEEDS_ADDRESSING_MODE |
RequestまたはLocateRequestメッセージのリクエストIDです。
メッセージ送信先のIPアドレスおよびポート番号です。
メッセージ送信元のIPアドレスおよびポート番号です。
クライアントアプリケーションが呼び出したサーバアプリケーションのメソッド名です。
リプライステータスがUSER_EXCEPTION、SYSTEM_EXCEPTIONまたはLOC_SYSTEM_EXCEPTIONの場合に、例外のリポジトリIDを表示します。リプライステータスがそれ以外の場合には表示されません。
リプライステータスがSYSTEM_EXCEPTIONまたはLOC_SYSTEM_EXCEPTIONの場合に、例外のマイナーコードを10進数で表示します。リプライステータスがそれ以外の場合には表示されません。
注) 表示する情報がない場合は、アクセスログに出力されません。
出力例
クライアントがRequestメッセージを要求した場合
"[06/Nov/2015 18:12:25.255 +0900]" "71(p: thread-pool-1; w: 5)" "OUT(CL) Request (request_id=8, client=127.0.0.1:46086, server=127.0.0.1.144:25700, more=false, intf_id=RMI:test._LogModeEJBRemote_Remote:0000000000000000, operation=func, oneway=false)"
サーバがReplyメッセージを応答した場合
"[06/Nov/2015 18:12:25.323 +0900]" "43(p: ejbAppTarget; w: 4)" "OUT(SV) Reply NO_EXCEPTION 46 (request_id=8, client=127.0.0.1:46086, server=127.0.0.1:25700, more=false, intf_id=RMI:test._LogModeEJBRemote_Remote:0000000000000000, operation=func)"