4.5.2 EJBクライアントアプリケーションのシステムログの出力先
EJBクライアントアプリケーションのシステムログは,次のキーに指定したディレクトリに出力されます。
- Javaアプリケーション用オプション定義ファイル(usrconf.cfg)のejb.client.log.directoryキー,およびejb.client.ejb.logキーに指定したディレクトリ
- システムプロパティのejbserver.client.log.directoryキーおよびejbserver.client.ejb.logキーに指定したディレクトリ
Javaアプリケーション用オプション定義ファイル(usrconf.cfg)とシステムプロパティの両方に異なる値が指定された場合,システムプロパティの設定が有効になります。
なお,システムプロパティで出力先を設定できるのは,次のログだけです。
- 稼働ログ(cjclmessage[n].log)
- 障害発生時の例外情報(cjclexception[n].log)
- 保守情報(cjclmaintenance[n].log)
- ログの稼働情報(cjlogger.log)
cjcldellogコマンドの稼働ログ(cjcldellog.log)およびcjclstartapコマンドの稼働ログ(cjclstartap[n].log)は,「<Cosminexusのインストールディレクトリ>¥CC¥client¥logs」(Windowsの場合),または「/opt/Cosminexus/CC/client/logs」(UNIXの場合)の直下に出力されます。
- 注意
- サブディレクトリ専有モードでcjclstartapコマンドを実行した場合の動作は保証されません。
- EJBクライアントアプリケーションの標準出力,および標準エラーの内容は,ログファイルには出力されません。ログファイルに出力する場合は,ユーザログ機能を使用するか,リダイレクトしてください。
EJBクライアントアプリケーションのシステムログの出力方法には,次の2種類のモードがあります。モードによって,出力先になるサブディレクトリの構成が異なります。これらのモードは,クラスパスの指定によって選択します。
- サブディレクトリ共有モード
複数のプロセスのログを一つのディレクトリ(デフォルトはejbclディレクトリ)下に出力するモードです。なお,プロセス単位(アプリケーション単位)でログの出力先を別々にしたい場合,usrconf.cfgのejb.client.log.directoryキーにそれぞれの出力先ディレクトリを指定してください。
- サブディレクトリ専有モード
それぞれのプロセスのログを,プロセス単位に作成されたサブディレクトリに別々に出力するモードです。
アプリケーションサーバの06-50よりも前のバージョンとの互換用に使用するモードです。
サブディレクトリ共有モードとサブディレクトリ専有モードの違いの詳細については,マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)」の「3.8.2 システムログの出力先のサブディレクトリ」を参照してください。
- <この項の構成>
- (1) サブディレクトリ共有モードの場合
- (2) サブディレクトリ専有モードの場合
(1) サブディレクトリ共有モードの場合
EJBクライアントアプリケーションのシステムログの出力先を次の図に示します。
図4-1 サブディレクトリ共有モードのEJBクライアントアプリケーションのシステムログの出力先(Javaアプリケーション用オプション定義ファイルで指定した場合)
![[図データ]](figure/zu040100.gif)
図4-2 サブディレクトリ共有モードのEJBクライアントアプリケーションのシステムログの出力先(システムプロパティで指定した場合)
![[図データ]](figure/zu040200.gif)
(2) サブディレクトリ専有モードの場合
EJBクライアントアプリケーションのシステムログは,ejbserver.client.log.directoryキーに指定したディレクトリ下の,EJBクライアントアプリケーションのプロセス単位に作成されるサブディレクトリ下に格納されます。EJBクライアントアプリケーションのプロセス単位のサブディレクトリは,ejbserver.client.log.directoryキーに指定したディレクトリ下の,ejbserver.client.ejb.logキーに指定したディレクトリ下に作成されます。デフォルトでは,「<Cosminexusのインストールディレクトリ>¥CC¥client¥logs¥ejb」(Windowsの場合),または「/opt/Cosminexus/CC/client/logs/ejb」(UNIXの場合)の下にサブディレクトリが作成されます。
EJBクライアントアプリケーションのシステムログ出力先のサブディレクトリ名を次に示します。
表4-30 EJBクライアントアプリケーションのシステムログ出力先のサブディレクトリ名
コマンド名 | サブディレクトリ名 |
---|
vbjコマンド | cjcl<日時>_<プロセスID> |
- 注
- <日時>には,EJBクライアントアプリケーションを開始した日時が「mddhhmmssmmm」の形式で表示されます。日時に表示される項目は次のとおりです。なお,月以外は10進数で表示されます。
- m:月(16進数) dd:日付 hh:時間 mm:分 ss:秒 mmm:ミリ秒
EJBクライアントアプリケーションのシステムログ出力先のディレクトリ構成例を次に示します。
図4-3 サブディレクトリ専有モードのEJBクライアントアプリケーションのシステムログの出力先
![[図データ]](figure/zu040300.gif)
サブディレクトリは,次のように作成および運用されます。
- EJBクライアントアプリケーション単位に作成するサブディレクトリは,上限値を設定できます。EJBクライアントアプリケーションが終了すると,サブディレクトリにclient_process_endという空のファイルが作成されます。上限値を超えた場合は,このファイルの作成時刻が古い順にサブディレクトリが削除されます。なお,サブディレクトリにログを出力しているEJBクライアントアプリケーションがどれも終了していない(client_process_endファイルが作成されていない)場合は,上限値を超えてサブディレクトリが作成されます。作成されたサブディレクトリがあとで上限値まで削除されることはありません。
- ejbserver.client.log.directoryキーに指定したディレクトリ下の,ejbserver.client.ejb.logキーに指定したディレクトリ下にユーザ作成のサブディレクトリがある場合,EJBクライアントアプリケーション単位に作成するサブディレクトリと同様に,サブディレクトリとして数えられます。
- EJBクライアントアプリケーションが異常終了すると,client_process_endファイルが作成されないことがあるため,異常終了したEJBクライアントアプリケーションのサブディレクトリは上限値を超えても削除されないことがあります。
- 一つのEJBクライアントアプリケーションを一つだけ起動する場合(同時実行しない場合)には,そのEJBクライアントアプリケーション固有のシステムログ出力先ディレクトリを作成して,常にそのディレクトリに出力する運用ができます。このサブディレクトリは,上限値の指定に関係なく,削除されません。
- サブディレクトリを削除する場合,cjcldellogコマンドを使用すると,指定した更新日または更新時間より前に作成されたサブディレクトリを一括して削除できます。なお,cjcldellogコマンドは,Windowsの場合はWindowsのタスク,UNIXの場合はatコマンドまたはcrontabコマンドを利用して定期的に実行してください。
EJBクライアントアプリケーションのログ出力の設定については,マニュアル「Cosminexus アプリケーションサーバ 機能解説 拡張編」の「12.10 EJBクライアントアプリケーションのユーザログ出力の設定(cjclstartapコマンドを使用する場合)」,およびマニュアル「Cosminexus アプリケーションサーバ 機能解説 拡張編」の「12.11 EJBクライアントアプリケーションのユーザログ出力の実装と設定(vbjコマンドを使用する場合)」を参照してください。