サンプルの実行時に発生する問題の診断

このトピックでは、サンプルを実行して正しい結果が得られなかった場合に問題を診断するいくつかの方法を取り上げます。 以下の指示に従ってください。

  1. WebSphere MQ Explorer を使用して、入力メッセージが存在するキューを判別します。
    1. WebSphere MQ Explorer を開始します。
    2. WebSphere MQ Explorer で、フォルダーを順に拡張して、ブローカー・キュー・マネージャー WBRK_DEFAULT_QUEUE_MANAGER を表示します。
    3. キュー・マネージャーの「キュー」フォルダーをクリックして、キューを表示します。
    4. 「現行の深さ」列をチェックして、入力メッセージを保持しているキューを識別します。 1 つのキューに複数のメッセージが存在する場合には、キューを右マウス・ボタン・クリックしてから、「メッセージの参照」をクリックして、探しているメッセージがそのキューにあるかどうかを判別します。
  2. 下の表を使用して、問題とその解決方法を識別します。実行しているサンプルがデータベースを使用しない場合には、表に挙げられているデータベースに関連した問題は無視してください。
  3. 問題の解決にこの表が役に立たなかった場合は、Message Brokers Toolkit に戻り、「問題」ビューでエラー・メッセージを 確認します。 その情報を使用して、問題を解決してください。
  4. サンプルを独自に作成した場合、サンプル内のすべてのオブジェクトに正しく名前が付けられ、構成されているかを確認する必要があるかもしれません。
問題 理由 解決方法
入力メッセージが IN キューに残っている。 ブローカー、構成マネージャー、キュー・マネージャー、リスナー、あるいはメッセージ・フロー自体が停止しています。 すべてのコンポーネントが実行中であり、キュー・マネージャーのリスナーがキュー・マネージャーのポートを listen 中であるかどうかを確認してください。 実行されていないコンポーネントがあるなら、それを開始してください。
IN キューに、メッセージ・フローが処理できない確認不能のメッセージが存在する。 WebSphere MQ Explorer で、IN キューを右マウス・ボタン・クリックして、「すべてのタスク」>「メッセージのクリア」をクリックします。
入力メッセージが FAIL キューに入る。 MQInput ノードが、メッセージの解析に使用するパーサーを識別できません。 ワークベンチで Enqueue 機能を使用している場合、または Support Pac IH03 に含まれる RfhUtil を使用している場合、そのツールのフィールドに、必要なメッセージ・ヘッダー情報を入力する必要があります。
mqsiput.exe ツールを使用している場合には、ヘッダー情報をメッセージ・ファイルそのものに追加しなければなりません。
入力メッセージが SYSTEM.DEAD.LETTER.QUEUE に入る。 入力メッセージが書き込まれるべきキューが存在しません。 サンプルに必要なすべてのキューを作成したかどうか確認してください。
どのキューにも入力メッセージが見つからない。 WebSphere MQ Explorer の表示を最新表示していないか、 一部のキューしか最新表示していません。 WebSphere MQ Explorer のすべてのキューを最新表示するには、「キュー」フォルダーを右マウス・ボタン・クリックしてから、 「最新表示」をクリックします。 WebSphere MQ Explorer バージョン 5.3 では、キューを右マウス・ボタン・クリックして「最新表示」をクリックすると、選択したキューだけが最新表示され、 WebSphere MQ Explorer バージョン 6.0 では、「最新表示」をクリックすると、フォルダー内のすべてのキューが最新表示されることに注意してください。
入力メッセージが別のノードに接続していないターミナルに渡され、メッセージが廃棄された。 サンプルで必要とされているとおりに、すべてのノードが相互に接続していることを確認してください。
入力メッセージが FAIL キューに入るか、またはデータベースが見つからなかったことを示すメッセージがイベント・ログに含まれているかのどちらか、あるいはその両方。 DB2 が実行されていません。 DB2 コマンド・ウィンドウで、次のコマンドを入力します。
db2 start
DB2 がすでに実行されている場合には、次のメッセージを受け取ります。
'The database manager is already active'
メッセージ・フローは、デフォルト・スキーマにないデータベース表にアクセスしようとしています。 デフォルト・スキーマの名前は、そのデータベースにアクセスするために使用されるユーザー名と同じです。 表がデフォルト・スキーマに含まれておらず、メッセージ・フローの ESQL 中に他のスキーマが指定されていないなら、メッセージ・フローはデフォルト・スキーマの中から表を検索します。

DB2 コマンド・ウィンドウで、以下のコマンドを入力します。
DB2 "CONNECT TO database user username"
DB2 "CREATE VIEW tablename AS SELECT * FROM tableschema.tablename"
tableschema はメッセージ・フローがアクセスする表を含むスキーマであり、username はブローカーのユーザー名、tablename はメッセージ・フローがアクセスする表を指します。