Message Queue ロガーでは、ブローカコード、デバッガ、メトリックスジェネレータによって生成された情報が取得され、その情報が、標準出力 (コンソール)、ログファイル、Solaris™ オペレーティングシステムの syslog デーモンプロセスなど、多くの出力チャネルに書き込まれます。
ロガーが収集する情報のタイプと、各出力チャネルに書き込む情報のタイプを指定できます。特に、メトリックス情報のログファイルへの書き込みを指定できます。
この節では、ブローカのデフォルトロギング設定、代替出力チャネルにログ情報をリダイレクトする方法、ログファイルロールオーバー基準の変更方法、メトリックスデータをログファイルに送信する方法について説明します。
ブローカは、ローリングログファイルのセットにログ出力を保存するように自動的に設定されます。ログファイルは、関連付けられたブローカのインスタンス名によって識別されるディレクトリに配置されます (付録 A 「プラットフォームごとの Message QueueTM データの場所」を参照)。
…/instances/instanceName/log
ライフサイクルがアプリケーションサーバーによって制御されるブローカでは、ログファイルはブローカが起動されたドメインのドメインディレクトリのサブディレクトリに配置されます。
…/appServer_domainName_dir/imq/instances/imqbroker/log
ログファイルは、簡単なテキストファイルです。ログファイルは、次のように順番に名前が付けられています。
log.txt log_1.txt log_2.txt …log_9.txt
デフォルトでは、ログファイルは週に 1 回ロールオーバーされ、システムは 9 つのバックアップファイルを保持します。
ログファイルが保管されるディレクトリを変更するには、imq.log.file.dirpath プロパティーを希望するパスに設定します。
ログファイルのルート名を log から別の名前に変更するには、imq.log.file.filename プロパティーを設定します。
ブローカでは、ERROR、WARNING 、INFO という、3 つのログレベルがサポートされます。表 10–2 では、それぞれのレベルについて説明します。
表 10–2 ロギングレベル
レベル |
説明 |
---|---|
ERROR |
システム障害が生じる可能性のある問題点を示すメッセージです。 |
WARNING |
システム障害が生じる可能性はないが、留意すべき警告です。 |
INFO |
メトリックスおよびその他の情報メッセージの報告です。 |
ロギングレベルを設定すると、そのレベル以上のメッセージが収集されます。デフォルトのログレベルは INFO なので、ERROR メッセージ、WARNING メッセージ、INFO メッセージはすべてデフォルトで記録されます。
ログメッセージは、タイムスタンプ、メッセージコード、メッセージ自体から構成されます。情報量は、設定したログレベルにより異なります。INFO メッセージの例を次に示します。
[13/Sep/2000:16:13:36 PDT] [B1004]: Starting the broker service using tcp [25374,100] with min threads 50 and max threads of 500 |
タイムスタンプのタイムゾーンを変更するには、表 14–8 に示す imq.log.timezone プロパティーに関する情報を参照してください。
ログ関連のプロパティーについては、表 14–8 を参照してください。
ログレベルを設定します。
1 つまたはそれ以上のロギングカテゴリの出力チャネル (ファイル、コンソール、またはその両方) を設定します。
出力をファイルに記録する場合、ファイルのロールオーバー基準を設定します。
ロガープロパティーを設定すると、手順は完了します。ロガープロパティーの設定は、次のどちらかの方法で行います。
ブローカを起動する前に、ブローカの config.properties ファイルでロガープロパティーを変更または追加します。
ブローカを起動する imqbrokerd コマンドでロガーコマンド行オプションを指定します。また、オプション -D を使用して、ロガープロパティーまたは 任意のブローカプロパティーを変更できます。
コマンド行で渡されたオプションは、ブローカインスタンス設定ファイルで指定されたプロパティーを上書きします。次の imqbrokerd オプションは、ロギングに影響します。
ブローカメトリックスのロギング間隔 (秒単位)
ロギングレベル (ERROR、WARNING、 INFO、または NONE)
サイレントモード (ロギングはコンソールに表示されない)
コンソールにすべてのメッセージをログ出力します
続いて、デフォルトの設定を変更して、次のことを実行する方法を説明します。
ログメッセージの送信先である、出力チャネルの変更
ロールオーバー基準の変更
デフォルトでは、エラーメッセージと警告メッセージは、ログファイルに記録されると同時に、端末に表示されます。Solaris では、エラーメッセージはシステムの syslog デーモンにも書き込まれます。
次の方法で、ログメッセージの出力チャネルを変更できます。
指定したレベルのすべてのログカテゴリを画面に表示するには、imqbrokerd コマンドの -tty オプションを使用します。
ログ出力を画面に表示しないようにするには、imqbrokerd コマンドの -silent オプションを使用します。
imq.log.file.output プロパティーを使用して、ログファイルに書き込むロギング情報のカテゴリを指定します。たとえば、次のように指定します。
imq.log.file.output=ERROR
imq.log.console.output プロパティーを使用して、コンソールに書き込むロギング情報のカテゴリを指定します。たとえば、次のように指定します。
imq.log.console.output=INFO
Solaris の場合、imq.log.syslog.output プロパティーを使用して、Solaris syslog に書き込むロギング情報のカテゴリを指定します。たとえば、次のように指定します。
imq.log.syslog.output=NONE
ロガー出力チャネルを変更する前に、出力チャネルにマッピングされた情報をサポートするレベルにロギングが設定されていることを確認する必要があります。たとえば、ログレベルを ERROR に設定し、imq.log.console.output プロパティーを WARNING に設定すると、WARNING メッセージのロギングが有効になっていないため、どのメッセージも記録されません。
ログファイルのロールオーバーには、時間とサイズの 2 つの基準があります。デフォルトでは時間の基準が使用され、7 日ごとにファイルがロールオーバーされます。
時間の間隔を変更するには、imq.log.file.rolloversecs プロパティーを変更する必要があります。たとえば、次のようにプロパティーを定義すると、間隔が 10 日に変更されます。
imq.log.file.rolloversecs=864000
ファイルサイズに従ってロールオーバーするように基準を変更するには、imq.log.file.rolloverbytes プロパティーを設定する必要があります。たとえば、次のように定義すると、500,000 バイトの制限に達したあと、ブローカはファイルをロールオーバーするように指示されます。
imq.log.file.rolloverbytes=500000
時間に関連するロールオーバープロパティーとサイズに関連するロールオーバープロパティーの両方が設定されている場合は、どちらかの制限に最初に達したときにロールオーバーが実行されます。前の節でも説明したように、ブローカでは 9 つのロールオーバーファイルが保持されます。
ログファイルのロールオーバープロパティーの設定や変更は、ブローカの動作時に実行できます。このプロパティーを設定するには、imqcmd update bkr コマンドを使用します。
この節では、ブローカログファイルを使用してメトリックス情報を報告するための手順を説明します。ロガーの設定方法については、「ブローカロギングの設定と使用」を参照してください。
ブローカのメトリックス生成機能を設定します。
ロガーがメトリックス情報を収集していることを確認します。
imq.log.level=INFO |
これはデフォルト値です。この値は、config.properties ファイル内で設定するか、またはブローカの起動時に -loglevel level コマンド行オプションを使用して設定できます。
ロガーが、メトリックス情報をログファイルへ書き込むように設定されていることを確認します。
imq.log.file.output=INFO |
これはデフォルト値です。config.properties ファイル内で設定できます。
ブローカを起動します。
ログファイルに出力されたブローカメトリックスの例を次に示します。
[21/Jul/2004:11:21:18 PDT] Connections: 0 JVM Heap: 8323072 bytes (7226576 free) Threads: 0 (14-1010) In: 0 msgs (0bytes) 0 pkts (0 bytes) Out: 0 msgs (0bytes) 0 pkts (0 bytes) Rate In: 0 msgs/sec (0 bytes/sec) 0 pkts/sec (0 bytes/sec) Rate Out: 0 msgs/sec (0 bytes/sec) 0 pkts/sec (0 bytes/sec) |
メトリックスデータの詳細については、第 18 章「メトリックスのリファレンス」を参照してください。
ブローカのデッドメッセージロギングを有効にすると、物理的送信先を監視できます。デッドメッセージキューを使用しているかどうかに関係なく、デッドメッセージを記録できます。
デッドメッセージロギングを有効にすると、次のタイプのイベントが、ブローカによって記録されます。
物理的送信先が最大サイズを超えた。
次のような理由により、ブローカが物理的送信先からメッセージを削除した。
送信先サイズが制限に達した。
メッセージの生存時間が満了した。
メッセージが長すぎる。
ブローカがメッセージを処理しようとしたときにエラーが発生した。
デッドメッセージキューを使用している場合、ロギングには次のタイプのイベントも含まれます。
ブローカがデッドメッセージキューにメッセージを移動した。
ブローカがデッドメッセージキューからメッセージを削除して破棄した。
[29/Mar/2006:15:35:39 PST] [B1147]: Message 8-129.145.180.87(e7:6b:dd:5d:98:aa)- 35251-1143675279400 from destination Q:q0 has been placed on the DMQ because [B0053]: Message on destination Q:q0 Expired: expiration time 1143675279402, arrival time 1143675279401, JMSTimestamp 1143675279400 |
デッドメッセージのロギングは、デフォルトでは無効になっています。有効にするには、ブローカ属性 imq.destination.logDeadMsgs を設定します。