第8章 ルートを介したメッセージのトレース


トレースを使用すると、メッセージが 1 つのノードから別のノードにルーティングされるときにメッセージをインターセプトできます。ルーティングコンテキストを介してメッセージをトレースし、ルーティングコンテキストのパフォーマンスを最適化および微調整できる場所を確認できます。このチュートリアルでは、ルートを介してメッセージをトレースする方法を示します。

ゴール

このチュートリアルでは、次のタスクを完了します。

  • Fuse Integration パースペクティブで ZooOrderApp を実行する
  • ZooOrderApp でトレースを有効にする
  • ZooOrderApp にメッセージをドロップし、すべてのルートノードを通じてメッセージを追跡する

前提条件

このチュートリアルを開始するには、次のいずれかの結果である ZooOrderApp プロジェクトが必要です。

Fuse Integration パースペクティブの設定

メッセージトレースを容易にするためにワークスペースを設定するには:

  1. ツールバーの右側にある Open Perspective icon ボタンをクリックし、リストから Fuse Integration を選択します。

    tutPerspListFIPselected

    Fuse Integration パースペクティブがデフォルトのレイアウトで開きます。

    TutFIP 63
  2. JMX Navigator タブを Terminal タブの右端にドラッグし、そこにドロップします。

    ftTutFIPrearrange

    この配置により、Diagram View がルーティングコンテキストのノードをグラフィカルに表示するためのスペースが増え、メッセージがルーティングコンテキストを通過する際にたどるパスを視覚的に追跡しやすくなります。

    注記

    ルーティングコンテキストの .xml ファイルへのアクセスを容易にするために (特にプロジェクトが複数のコンテキストで設定される場合)、このツールは Project ExplorerCamel Contexts フォルダーにコンテキストを一覧表示します。

    さらに、ルーティングコンテキスト内のすべてのルートは、コンテキストファイルエントリーのすぐ下にアイコンとして表示されます。キャンバスのルーティングコンテキストに単一のルートを表示するには、Project Explorer でそのアイコンをダブルクリックします。ルーティングコンテキスト内のすべてのルートを表示するには、コンテキストファイルエントリーをダブルクリックします。

    TutCamelContextsFolderPE

メッセージトレースの開始

ZooOrderApp プロジェクトでメッセージのトレースを開始するには、以下を実行します。

  1. Project ExplorerZooOrderApp プロジェクトを展開して src/main/resources/OSGI-INF/blueprint/blueprint.xml を公開します。
  2. src/main/resources/OSGI-INF/blueprint/blueprint.xml を右クリックし、コンテキストメニューを開きます。
  3. Run As Local Camel Context (without tests) を選択します。

    注記

    Local Camel Context を選択すると、ZooOrderApp プロジェクトの JUnit テストがまだ作成されていないため、ツールはテストのない実行に戻します。9章JUnit を使用したルートのテスト で、後でそれを行います。

  4. JMX Navigator で、Local Processes を展開します。

    tutMsgTrJMXLocalProcessess
  5. maven [ID] ノードを右クリックし、Connect を選択します。
  6. ルートの要素を展開します。

    tutMsgTrJMXLCCexpanded
  7. Routes ノードを右クリックし、Start Tracing を選択します。

    tutTraceStart

    ツールは、ルーティングコンテキストのグラフィック表現を Diagram View に表示します。

    tutDiagramNodes

    すべてのメッセージフローパスを明確に表示するには、ノードをドラッグして Diagram View タブにぴったり収まるようにノードを再配置する必要があります。また、Red Hat CodeReady Studio の他のビューとタブのサイズを調整して、Diagram View タブを拡張できるようにする必要がある場合もあります。

実行中の ZooOrderApp プロジェクトにメッセージをドロップする

実行中の ZooOrderApp プロジェクトにメッセージをドロップするには:

  1. Project Explorer で、メッセージファイル (message1.xml から message6.xml まで) にアクセスできるように ZooOrderApp/src/data を展開します。

    tutMsgFiles
  2. message1.xmlJMX Navigator_context1>Endpoints>file>src/data?noop=true ノードにドラッグアンドドロップします。

    tutJMXLocalCntxtExpanded

    メッセージがルートを通過すると、ツールは各ステップでその通過をトレースして記録します。

メッセージビューの設定

メッセージトレースを表示する前に、Messages View を更新する必要があります。また、すべてのメッセージトレースにわたって列を保持する場合は、Messages View で列を設定する必要があります。

  1. Messages View を開きます。
  2. パネルのメニューバー右上にある refresh (リフレッシュボタン) をクリックし、表示に message1.xml のメッセージトレースを反映させます。
  3. パネルのメニューバーの View Menu icon アイコンをクリックし、Configure Columns を選択して、Configure Columns ウィザードを開きます。

    TutConfigColsDefaults
    注記

    ルーティングコンテキストでメッセージに設定したメッセージヘッダー Destination がリストに表示されていることに注意してください。

    アイテムを選択または選択解除することにより、Messages View にアイテムを含めたり除外したりできます。選択した個々のアイテムを強調表示してリスト内で上下に移動することにより、Messages View にアイテムが表示される列の順序を並べ替えることができます。

  4. Configure Columns ウィザードで、次の方法で列を選択して順序付けします。

    tutMsgVCnfgColsMnu

    これらの列とその順序は、再度変更するまで Messages View に保持されます。

注記

ツールのすべてのテーブルで、列方向のレイアウトを制御することができます。ドラッグ方式を使用して、表形式を一時的に再配置します。たとえば、列の境界線ルールをドラッグして、その幅を拡大または縮小します。列を非表示にするには、境界線を完全に縮小します。列ヘッダーをドラッグして、テーブル内の列を再配置します。配置を維持するには、代わりに View Configure Columns メソッドを使用する必要があります。

メッセージトレースのステップスルー

メッセージトレースをステップスルーするには:

  1. message2.xmlJMX Navigator_context1>Endpoints>file>src/data?noop=true ノードにドラッグアンドドロップします。
  2. Console から Messages View に切り替えます。
  3. Messages Viewrefresh (リフレッシュボタン) をクリックし、表示に message2.xml のメッセージトレースを反映させます。

    JMX Navigator でメッセージをドロップするたびに、Messages View を更新してメッセージトレースを入力する必要があります。

  4. メッセージトレースのいずれかをクリックし、Properties ビューでその詳細を表示します。

    tutTraceDetails2

    このツールでは、メッセージトレースに関する詳細 (メッセージヘッダーが設定されている場合はそれを含む) が Properties ビューの上半分に、メッセージインスタンスのコンテンツが Properties ビュー下半分に表示されます。したがって、アプリケーションがルート内の任意のステップでヘッダーを設定する場合は、Message Details をチェックして、それらが期待どおりに設定されているかどうかを確認できます。

    各メッセージを強調表示して、特定のメッセージがルートをどのように通過したか、およびルートの各ステップで期待どおりに処理されたかどうかを確認することで、メッセージインスタンスをステップスルーできます。

  5. Diagram View を開き、ルートの関連するステップが強調表示されていることを確認します。

    TutMsgTraceDiagNode

    ツールは、Diagram View でルートを表示し、処理ステップを終了するパスにタイミングとパフォーマンスのメトリック (ミリ秒単位) をタグ付けします。メトリックの Total exchanges のみが図に表示されます。

  6. 表示されたメトリックにマウスポインターを合わせると、メッセージフローに関する追加のメトリックが表示されます。

    tutDVnodeMetrics
    • ステップがメッセージを処理するのにかかった平均時間
    • ステップがメッセージを処理するのにかかった最大時間
    • ステップがメッセージを処理するのにかかった最小時間
  7. 任意で、トレースが有効であれば、いつでも ZooOrderApp/src/data/ の残りのメッセージを JMX Navigator_context1>Endpoints>file>src/data?noop=true ノードにドラッグし、ドロップすることができます。

    ドロップするたびに、 refresh (更新ボタン) をクリックし、Messages View に新しいメッセージのトレースを入力することを忘れないでください。

  8. それが終わったら:

    • JMX Navigator_context1 を右クリックし、Stop Tracing Context を選択します。
    • Console を開き、パネル右上の Stop icon ボタンをクリックすると、コンソールが停止します。その後、ボタンをクリックすると、コンソール出力がクリアされます。

次のステップ

9章JUnit を使用したルートのテストチュートリアルで、プロジェクトの JUnit テストケースを作成し、プロジェクトを Local Camel Context として実行します。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.