ここでは、Message Queue コンポーネントとそのブローカに関する問題のトラブルシューティングの方法について説明します。項目は、次のとおりです。
この章の内容は次のとおりです。
Message Queue ブローカが実行されていることを確認します。telnet コマンドを使用して、Message Queue ブローカが実行されているマシンおよびポートに接続すると、アクティブな Message Queue サービスの一覧が返されます。
# telnet localhost 7676 Trying 127.0.0.1... Connected to localhost. Escape character is \q^]\q. 101 psw-broker 3.0.1 cluster tcp CLUSTER 32914 admin tcp ADMIN 32912 portmapper tcp PORTMAPPER 7676 ssljms tls NORMAL 32913 jms tcp NORMAL 32911 Connection closed by foreign host. |
ssljms tcp NORMAL サービスが出力に含まれていない場合は、Message Queue ログで可能性のある問題について調べます。このログの場所は、次のように、使用しているプラットフォームによって異なります。
Solaris の場合、ログは次の場所にあります。/var/imq/instances/psw-broker/log/log.txt
Linux の場合、ログは次の場所にあります。/var/opt/sun/mq/instances/isw-broker/log/log.txt
Windows の場合、ログは次の場所にあります。 installation_root\isw-machine_name\imq\var\instances\isw-broker\log\log.txt
telnet コマンドが失敗した場合は、ブローカが実行されていないか、または誤ったポートが指定されています。ブローカのログでポート番号を確認します。たとえば次のように、ログにはブローカのポートの行があります。
[13/Mar/2003:18:17:09 CST] [B1004]: 'Starting the portmapper service using tcp [ 7676, 50 ] with min threads 1 and max threads of 1' |
ブローカが実行されていない場合、Solaris および Linux では /etc/init.d/imq start コマンドを実行してブローカを起動します。Windows の場合は、iMQ Broker Windows サービスを開始してブローカを起動します。
Message Queue を Solaris 8 にインストールし、mquinstall コマンドを実行してすべてのパッケージをインストールする場合は、mqinstall コマンドを実行する前に必ず IMQ_JAVAHOME プロパティーを設定してください。これにより、ソフトウェアが確実に正しいバージョンの Java を選択します。
まだコアコンポーネントをインストールしていない場合は、どのバージョンの Java を使用すべきかを Identity Synchronization for Windows インストールプログラムが Message Queue ブローカに指示するため、IMQ_JAVAHOME プロパティーを設定する必要はありません。
デバッグログを有効にしてブローカを実行すると、問題に関するその他の情報を収集しやすくなります。デバッグログレベルを有効にするには、次のコマンドを実行します。
# imqbrokerd -loglevel DEBUG |
次のコマンドを使用して、ブローカのデバッグダンプを取得します。
imqcmd dump bkr -edebug -u admin -o file=filename |
Message Queue ブローカは、Identity Synchronization for Windows 設定を格納する Directory Server でクライアントを認証します。ブローカがこの Directory Server に接続できない場合、クライアントは Message Queue に接続できません。ブローカログには、javax.naming.CommunicationException や javax.naming.NameNotFoundException などの javax.naming 例外が記録されます。
javax.naming 例外が発生した場合は、次の手順を実行します。
/var/imq/instances/isw-broker/props/config.properties ファイル内のすべての imq.user_repository.ldap properties の値が正しいことを確認します。この値のいずれかが正しくない場合は、Message Queue ブローカを停止します。エラーを修正し、ファイルを保存して、ブローカを再起動します。Message Queue ブローカが実行されているマシンは、Directory Server ホスト名の解決が可能である必要があることに注意してください。
/etc/imq/passfile ファイル内の imq.user_repository.ldap.password プロパティーが正しいことを確認します。
ルートサフィックスにスペースが含まれている場合は、ブローカがエントリを検索できないことがあります。ルートサフィックスにスペースが含まれていないことを確認します。
Message Queue ブローカは、通常の操作中は適度なメモリー量を消費します。ただし、idsync resync 操作の最中は、ブローカのメモリー要件が大きくなります。ブローカの使用メモリー制限に達すると、未配信メッセージが蓄積されて、idsync resync 操作の速度が著しく低下したり、Identity Synchronization for Windows が応答しなくなったりすることもあります。
ブローカがメモリー低下状態になると、そのログに次のメッセージが表示されます。
[03/Nov/2003:14:07:51 CST] [B1089]: In low memory condition, Broker is attempting to f ree up resources [03/Nov/2003:14:07:51 CST] [B1088]: Entering Memory State [B0024]: RED from previous state [B0023]: ORANGE - current memory is 1829876K, 90% of total memory |
メモリー低下状態を回避するには、次の手順を実行します。
『Sun Java System Directory Server Enterprise Edition 6.3 リリースノート』の説明に従って、ブローカのメモリー制限を 1G バイトまたは 2G バイトに増やします。
idsync resync 操作の最中は、ログレベルを INFO に設定したままにします。ログレベルを FINE 以上に変更すると、セントラルロガーに送信されるログメッセージが増え、ブローカの負荷が大きくなります。
一度に 1 つの同期ユーザーリストに対して idsync resync コマンドを実行します。
ブローカに未配信メッセージのバックログがあることを確認します。
使用しているオペレーティングシステムの適切なディレクトリにある、ブローカの持続メッセージストアを調べます。
Solaris の場合: /var/imq/instances/psw-broker/filestore/message/
Linux の場合: /var/opt/sun/mq/instances/isw-broker/filestore/message/
Windows の場合: installation_root\isw- machine_name\imq\var\instances\isw-broker\filestore\message\
このディレクトリ内の各ファイルには、1 つの未配信メッセージが含まれています。このディレクトリに 10,000 個を超えるファイルがある場合は、ブローカにメッセージのバックログがあります。そうでない場合、ブローカに関する問題の原因は未配信メッセージのバックログではありません。
メッセージバックログには、通常は idsync resync 操作に関連するログファイルが含まれ、それらは安全に削除できます。
Message Queue ブローカを停止します。
詳細については、『Sun Java System Directory Server Enterprise Edition 6.3 Installation Guide - Ja』の「Starting and Stopping Services」を参照してください。
持続メッセージストア内のすべてのファイルを削除します。
これらのファイルを削除するもっとも簡単な方法は、message/ ディレクトリを再帰的に削除してから再度作成することです。
Message Queue ブローカを再起動します。
将来メモリー不足にならないようにするには、この節の前のほうで説明した手順を実行します。