メッセージ・フローのデバッグ時の問題の解決
このトピックでは、メッセージ・フローをデバッグする際に生じる可能性のある共通問題のいくつかに対処するためのアドバイスを示します。
Rational Agent Controller サービスが接続する前にタイムアウトが発生する
シナリオ:
Rational® Agent Controller サービスが始動に失敗したこと、および Rational Agent Controller が接続する前にタイムアウトが発生したことを示すエラー・メッセージが表示されます。
説明:
Rational Agent Controller が正しくないバージョンの JVM を使用している可能性があります。
解決策:
サポートされる JVM が使用されていることを確認してください。使用されている JVM を判別するには、コマンド行で
java -version
コマンドを発行します。 正しい結果を得るには、
java -version
コマンドの呼び出す Java™ 実行可能ファイルが、Rational Agent Controller をインストールした時点で使用するように指定されたものでなければなりません。
デバッガーが次のブレークポイントで一時停止しない
シナリオ:
メッセージ・フロー・デバッガーがメッセージ・フロー内の次のブレークポイントで一時停止しません。
解決策:
以下の検査を実行します。
DataFlowEngine が実行しているかを確認して、実行していない場合は再始動します。
入力キューを調べます。 入力キューに、前回デバッガーを使用した時から残っているメッセージがある場合、 新規のメッセージを送信する前にそれらを消去します。
ブレークポイントでメッセージの実行が停止しない
シナリオ:
デバッガーの接続後に、ブレークポイントでメッセージの実行が停止しません。
説明:
このエラーはタイミングの問題によって生じたか、またはデバッグ・セッションに間違ったパラメーターを設定した可能性があります。
解決策:
以下のステップを実行します。
起動構成設定を調べて、デバッグ・セッションのための 「フロー・プロジェクト」、「HostName」、および「フロー・エンジン」の 指定が正しいことを確認します。
デバッグ・セッションを再始動します。
メッセージ・フロー・エディターで編集の問題が発生する
シナリオ:
メッセージ・フローのデバッグ中にメッセージ・フロー・エディターを使用すると編集問題が発生します。
解決策:
フロー・デバッガーに接続中は、メッセージを編集しようとしないでください。 メッセージ・フローを編集する場合は、デバッガーを切り離し、メッセージ・フローを編集してから、メッセージ・フローを再デプロイします。
MQ メッセージ記述子 (MQMD) を編集するとデバッガー内で予期しない動作が発生する
シナリオ:
メッセージ・セット・エディターでメッセージ MQMD 記述子のプロパティーを編集しますが、これによってデバッガー内で予期しない動作が発生します。
説明:
MQMD 記述子の内容を編集する場合、これらのフィールドが、ある範囲の値を取ります。
プロパティーを編集する前に、これらの範囲を知っておく必要があります。 これらのフィールドの値を明示的に指定する場合を除いて、フィールドはデフォルト値を取るため、一部のフィールドがメッセージ内で指定されなかった可能性があります。 メッセージ内で明示的に設定されていないフィールドの値はデフォルト値です。その重要性または可能な範囲の値について知っている場合を除いて、これらを変更してはなりません。
メッセージ・フローのデバッグ時にメッセージの内容を見ることができない
シナリオ:
メッセージ・フロー・デバッガーを使用しており、メッセージ・フローを通過するメッセージを見ることはできますが、メッセージの内容を見ることができません。
解決策:
「ウィンドウ」
>
「ビューの表示」
>
「その他」
>
「メッセージ・フロー」
>
「フロー・デバッグ・メッセージ」
をクリックして、フロー・デバッグ・メッセージ・ビューを開き、
「OK」
をクリックします。
デバッグ・ビューにメッセージ・フロー名が表示されない
シナリオ:
デバッガーを実行グループに接続した後、デバッグ・ビューにデプロイされたメッセージ・フロー名が表示されません。
解決策:
実行グループが作動しているブローカーを停止します。
ブローカーと同じコンピューターで作動している Rational Agent Controller を再始動します。
ブローカーを再始動します。
デバッグ・ビューにデプロイされたフロー名が表示されない
シナリオ:
実行グループに接続した後、デバッグ・ビューにデプロイされたフロー名が表示されません。
説明:
これはタイミングの問題である可能性があります。
解決策:
ブローカーが完全に開始するまで待ち、デバッガーの接続を再試行するか、または、ブローカーと同じコンピューターで作動している Rational Agent Controller を再始動してから、ブローカーを再始動します。
デバッグ中にノードの上に感嘆符が表示される
シナリオ:
メッセージ・フロー・エディターで、デバッグ中にノードの上に感嘆符 (!) が表示されます。
説明:
デバッグ中にノードで例外が発生しました。
解決策:
「デバッグ」パースペクティブ
の
「変数」
ビューにある ExceptionList の下を参照して、どんなエラーが発生したかを調べます。
z/OS
上の
WebSphere MQ
で報告される PutTime と、他の時刻またはタイム・スタンプが矛盾する
シナリオ:
z/OS®
上の
WebSphere® MQ
で報告される PutTime と、他の時刻またはタイム・スタンプの間に矛盾があります。次の場合に、ほぼ 20 秒の違いが検出されます。
トレース (Trace ノードから取得するものを含む)
メッセージの MQMD ヘッダーの
MQPUTTIME
コマンド・タイム・スタンプ
ESQL から取得するタイム・スタンプ (例えば
Compute
ノードのもの)
説明:
WebSphere Message Broker
は、 協定世界時 (UTC) を使用して時刻を報告しますが、これはうるう秒を 考慮しません。しかし
z/OS
では、 メッセージの MQMD ヘッダーで
WebSphere MQ
が報告するメッセージ putTime は うるう秒を
考慮して
、CVT フィールドに、 うるう秒に指定する値を使用します。
この矛盾は次のような問題を引き起こす可能性があります。
デバッグ時の問題
メッセージ・フローの制御にタイム・スタンプを使用する場合は、 メッセージ・フローに関する問題
誤情報
解決策:
CVT フィールドを、UTC のうるう秒と適合するように 設定します。
あるいは、オフセットを追加して
z/OS
のタイム・スタンプ読み取りを 調整します。例えば、ESQL で CURRENT_TIME を取得しようとするときには、20 秒を 加算します。
ブレークポイントでメッセージの処理が停止しない
シナリオ:
ブレークポイントに来てもメッセージ処理を継続します。
説明:
このエラーはタイミングの問題によって生じたか、またはデバッグ・セッションに間違ったパラメーターを設定した可能性があります。
解決策:
起動構成の設定を確認します。デバッグ・セッションのための 「フロー・プロジェクト」、「HostName」、および「フロー・エンジン」の指定が 正しいことを確認します。デバッグ・セッションを再始動します。
メッセージ・マッピング・エディターのどこにデバッガーがあるのか分からない
シナリオ:
メッセージ・マッピング・エディターはツールキットをオープンしましたが、 マップ内のどこにデバッガーがあるのかが不明です。
説明:
メッセージ・マップ・ファイルのソース検索パスが正しく構成されていません。
解決策:
デバッグ起動構成の設定を調べて、メッセージ・マップ・ファイルのソース・ルックアップ・パスを正しく構成していることを確認してください。
メッセージ・マップのデバッグ中に、デバッガーが次のフィールドに移動しない
シナリオ:
メッセージ・マップをデバッグしていて、デバッガーが次のフィールドに移動しません。 「
ステップオーバー
」ボタンを複数回クリックする必要があります。
説明:
メッセージ・マップ・ファイルのソース検索パスが正しく構成されていません。
解決策:
デバッグ起動構成の設定を調べて、メッセージ・マップ・ファイルのソース・ルックアップ・パスを正しく構成していることを確認してください。
メッセージ・マップのデバッグ中に、デバッガーが mapping ノードの外に移動しない
シナリオ:
メッセージ・マップをデバッグしていて、デバッガーがメッセージ・マップの外に移動しません。
説明:
メッセージ・マップ・ファイルのソース検索パスが正しく構成されていません。
解決策:
デバッグ起動構成の設定を調べて、メッセージ・マップ・ファイルのソース・ルックアップ・パスを正しく構成していることを確認してください。
メッセージ・フローが collector ノードで停止する
シナリオ:
Collector ノードで「ソース・コードのステップイントゥ」アイコンを選択した後に、メッセージ処理が停止します。
説明:
collector ノードはマルチスレッド・ノードであり、 スレッドは「ソース・コードのステップイントゥ」を選択することによって停止します。
解決策:
collector ノードの後にブレークポイントを手動で設定します。
関連概念
フロー・デバッガーの概要
関連タスク
メッセージ・フローのデバッグ時に発生する問題の解決
フロー・デバッガーの開始
実行グループへのフロー・デバッガーの接続
メッセージ・フローのデバッグ
デバッグ: メッセージ・フローの再デプロイ