トランザクション追跡
内容
apmdevops98jp
内容
CA APM for IBM WebSphere MQ は、CA Introscope の中核的なトランザクション追跡機能を拡張して WebSphere MQ メッセージ トラッキングのサポートを提供します。 プロセスにまたがるトランザクション追跡を使用し、追跡用に WebSphere MQ システムを設定して、追跡データを解釈できます。
プロセスにまたがるトランザクション追跡
CA APM for IBM WebSphere MQ では、プロセスにまたがるトランザクション追跡は WebSphere MQ に展開されます。 この機能には、さまざまなアプリケーション サーバから WebSphere MQ バックエンドにまたがるトランザクションが含まれます。 プロセスにまたがるトランザクション追跡は、 CA APM for IBM WebSphere MQ の監視機能を拡張しており、WebSphere MQ のどのコンポーネントがパフォーマンス ボトルネックを引き起こしているかを特定できます。
CA APM for IBM WebSphere MQ は、WebSphere MQ のアクティビティ記録機能を使用して、MQ 追跡を取得します。 特殊なケース(メッセージがローカル キューに移動するとき)では、MQ 追跡は MQMonitor エージェント上でポーリングによって取得されます。 MQ 追跡関連のポーリングのプロパティは、MQ Trace related properties セクションに記載されています。
トランザクション追跡の設定の確認
トランザクション追跡を正しく設定したことを確認するには、以下を確認します。
- ハンドシェイクおよび追跡関連のプロパティが、MQAgent.properties と MQMonitor.properties の両方のファイル上で設定されている。
- ハンドシェイク キューが利用可能である。
- すべての MQMonitor エージェントが実行されている。
- すべての MQMonitor エージェントがキュー マネージャに接続されている。
- SYSTEM.ADMIN.ACTIVITY.QUEUE が利用可能で、Put オペレーションおよび Get オペレーションに対して有効化されている。
以下の表に示すとおり、MQAgent.properties ファイル内の mqmonitor.mqagent.id.list および handshake.mqagent.id プロパティの値を確認することにより、MQ 追跡のステータスを確認できます。
次の値mqmonitor.mqagent.id.list | 次の値handshake.mqagent.id | MQ 追跡の設定 |
NULL | NULL または任意の値 | 常にオン |
任意の値 | NULL | 常にオフ |
任意の有効な値 | 任意の有効な値 | 条件付きでオン |
[WebSphereMQ プロセス間トランザクション追跡の稼働状況および可用性]ダッシュボード
[WebSphereMQ プロセス間トランザクション追跡の稼働状況および可用性]ダッシュボードは、WebSphere MQ インフラストラクチャが MQ 追跡に対して
正しく
設定されているかどうかを確認するのに有用です。 ダッシュボードには SYSTEM.ADMIN.ACTIVITY.QUEUE、エージェント - MQ 接続ステータス、ハンドシェイク ステータス、アクティビティ記録ステータス、およびデッド レター キューのステータスを示す信号機があります。SYSTEM.ADMIN.ACTIVITY.QUEUE には以下のエレメントの信号機があります。
- Get / Put メッセージ
- 緑監視対象のキュー マネージャのすべての SYSTEM.ADMIN.ACTIVITY.QUEUE がメッセージを送受信していることを示します。
- 赤監視対象のキュー マネージャの 1 つ以上の SYSTEM.ADMIN.ACTIVITY.QUEUE がメッセージを送受信できないことを示します。
- キュー フル
- 緑監視対象のキュー マネージャの % キュー フル値が 50 パーセント未満であることを示します。
- 黄監視対象のキュー マネージャの % キュー フル値が 50 パーセント以上および 75 パーセント未満であることを示します。
- 赤% キュー フル値が 75 パーセント以上であることを示します。
- Shareability
- 緑SYSTEM.ADMIN.ACTIVITY.QUEUE の[Shareability]プロパティが[Shareable]に設定されていることを示します。
- 赤SYSTEM.ADMIN.ACTIVITY.QUEUE の[Shareability]プロパティが[Shareable]に設定されていないことを示します。
デッド レター キューには以下のエレメントの信号機があります。
- Get / Put メッセージ
- 緑アプリケーションとのメッセージの送受信に対して、監視対象のキュー マネージャのデッド レター キューがすべて設定されていることを示します。
- 黄アプリケーションとのメッセージの送受信に対して、監視対象のキュー マネージャの 1 つ以上のデッド レター キューが設定されていないことを示します。
- キュー フル
- 緑監視対象のキュー マネージャの % キュー フル値が 50 パーセント未満であることを示します。
- 黄監視対象のキュー マネージャの % キュー フル値が 50 パーセント以上であることを示します。
- Shareability
- 緑デッド レター キューの[Shareability]プロパティが[Shareable]に設定されていることを示します。
- 黄デッド レター キューの[Shareability]プロパティが[Shareable]に設定されていないことを示します。
ダッシュボードには、以下のエレメントの信号機もあります。
- エージェント - MQ 接続ステータス
- 緑MQMonitor エージェントがすべての監視対象キュー マネージャに正常に接続できることを示します。
- 赤MQMonitor エージェントが 1 つ以上のキュー マネージャに接続できないことを示します。
- ハンドシェイク ステータス
- 緑MQMonitor エージェントと MQ Java コネクタ エージェント間のハンドシェイクが成功したことを示します。
- 赤MQMonitor エージェントと MQ Java コネクタ エージェント間のハンドシェイクが成功していないことを示します。
- アクティビティ記録ステータス
- 緑すべての監視対象キュー マネージャの[Activity recording]プロパティが[Queue]に設定されていることを示します。
- 赤1 つ以上の監視対象キュー マネージャの[Activity recording]プロパティが[Queue]以外の値に設定されていることを示します。
すべてのエレメントのしきい値に基づいて、ダッシュボードは、CA APM for IBM WebSphere MQ インストールの全体的なステータスを中央の信号機インジケータに表示します。
すべてのエレメントの信号機が緑である場合、全体的なステータス信号機は緑で表示されます。 ただし、SYSTEM.ADMIN.ACTIVITY.QUEUE、エージェント - MQ 接続ステータス、ハンドシェイク ステータス、またはアクティビティ記録ステータスの信号機が赤の場合、全体的なステータス信号機は赤で表示されます。
追跡のための Enterprise Manager の設定
以下の手順に従います。
- <Introscope Home>/config ディレクトリにある IntroscopeEnterpriseManager.properties ファイルを編集して、以下の 2 行を追加します。introscope.workstation.transactiontracer.showTotalDuration=true introscope.workstation.transactiontracer.showTotalDuration.sumAllTraceComponents=true
- Enterprise Manager を再起動します。[合計継続時間(ミリ秒)]という名前の追加の列がトランザクション追跡ビューアに表示されます。追跡の合計継続時間(ミリ秒)は、すべての追跡コンポーネントの開始から終了までの実際の経過時間です。
低速トランザクションの識別
トランザクション追跡を確認することにより、低速トランザクション追跡を識別できます。
追跡保持時間を 0 ミリ秒に設定したトランザクション追跡
MQMonitor.properties ファイルの trace.hold.maxduration プロパティを 0 ミリ秒に設定すると、[トランザクション追跡]ウィンドウに追跡が順番に表示されなくなります。
以下の手順に従います。
- トランザクション追跡セッションを起動します。追跡が[トランザクション追跡ビューア]に表示されます。
- [合計継続時間]列の追跡を降順に並べ替えます。
- リスト内の最初の追跡を選択します。最初の追跡は、すべてのトランザクション中で最も実行の遅いトランザクションです。
- [表示]-[相関イベント]の順に選択して、選択した追跡の相関イベントをすべて表示させます。
- 任意の追跡を選択して、完全な追跡情報を表示します。
保持時間を 0 ミリ秒以外の値に設定したトランザクション追跡
MQMonitor.properties ファイルの trace.hold.maxduration プロパティを 0 ミリ秒以外の値に設定すると、以下のようになります。
- [トランザクション追跡]ウィンドウに追跡が順番に表示されます。
- 拡張機能がアクティビティ レポートを収集し、統合された追跡のコンポーネント データを Enterprise Manager に送信します。
- アクティビティ レポートがすべて trace.hold.maxduration プロパティで指定された保持時間内に受信された場合、拡張機能はアクティビティ レポート追跡を含む、統合されたトランザクション コンポーネント データを、トランザクションの継続時間と共に Enterprise Manager に送信します。
- 保持時間内に一部のアクティビティ レポートが受信されない場合、拡張機能は未完了の追跡コンポーネント データを、統合されたカスタム追跡コンポーネントと共に Enterprise Manager に送信します。 メッセージがローカル キューに配置される(ゼロ ホップの)場合、アクティビティ レポートは保存されず、カスタム追跡は統合されません。
Java アプリケーションがローカル ホストでキュー マネージャ
CPTT1
のリモート キュー rq
にメッセージを配置する想定します。 メッセージはキュー マネージャ CPTT2
のリモート キュー rq
にホップします。 ここから、そのメッセージはキュー マネージャ CPTT3
の別のリモート キュー rq
にホップし、最後にキュー マネージャ CPTT4
のローカル キュー lq
にホップします。 トランザクション追跡を開始すると、ウィンドウに MQ 追跡が順番に表示され、3 つのホップが表示されます。遅いトランザクションを識別するには、以下の手順に従います。
- トランザクション追跡セッションを起動します。追跡が[トランザクション追跡ビューア]に表示されます。
- [サマリ ビュー]タブをクリックします。
- [追跡ビュー]タブをクリックします。宛先キューまでのメッセージ フロー専用の MQ 追跡が、展開可能で折り畳める 1 つの統合された MQ 追跡セグメントの下に表示されます。
- 追跡を展開して詳細を表示します。
- [ツリー ビュー]タブをクリックします。
MQ 追跡の有効化または無効化
MQAgent.properties ファイルの handshake プロパティを設定することにより、MQ 追跡を無効または有効にできます。
MQ 追跡を無効にする方法
- mqmonitor.mqagent.id.list に任意の有効な値を設定して、handshake.mqagent.id の値を null に設定します。
- アプリケーション サーバを再起動します。トランザクション追跡を実行すると、MQ 追跡データはトランザクション追跡ビューアに表示されません。
ハンドシェイクなしの MQ 追跡を有効にするには、mqmonitor.mqagent.id.list の値を null に設定します。
トランザクション追跡を実行すると、MQMonitor エージェントが実行されていなくても、MQ 追跡データを表示できます。 ただし、MQMonitor エージェントが監視対象のキュー マネージャのいずれにも接続できない場合は、追跡は未完了となります。
注:
アプリケーション サーバを再起動する必要はありません。ハンドシェイクを使用した MQ 追跡を有効にするには、
mqmonitor.mqagent.id.list
をすべての MQMonitor エージェントの handshake.mqagent.id の値に設定します。注:
ハンドシェイクを使用した MQ 追跡を有効にすることをお勧めします。すべての MQMonitor エージェントが実行されており、キュー マネージャに接続されている場合に、MQ 追跡が生成されます。 このメソッドは完全な追跡を提供し、MQMonitor エージェントの不要な過負荷を防ぎます。
handshake.mqagent.id の値を変更した場合は、アプリケーション サーバを再起動します。
トランザクション追跡のキューのフィルタ
MQAgent.properties ファイルの mqtracing.exclude.queues.regex プロパティを使用して、トランザクション追跡から特定のキュー マネージャの 1 つ以上のキューをフィルタできます。
注:
このプロパティは、WebSphere MQ Put または JMS Send オペレーションと後続の相関する追跡が実行される最初のキューをフィルタします。 また、WebSphere MQ Get または JMS Receive オペレーションの追跡もフィルタします。例:
トランザクション追跡からキュー マネージャ QM1 の単語「SYSTEM」が含まれるキューをすべてフィルタするには、以下のようにプロパティを設定します。
QM1.mqtracing.exclude.queues.regex=.*SYSTEM.*
トランザクション追跡からキュー マネージャ QM1 のキューをすべてフィルタするには、以下のようにプロパティを設定します。
QM1.mqtracing.exclude.queues.regex=.*
トランザクション追跡からキュー マネージャ QM1 のキュー TRACE.QUEUE1 および TRACE.QUEUE2 以外のキューをすべてフィルタするには、以下のようにプロパティを設定します。
QM1.mqtracing.exclude.queues.regex=(?!((.*TRACE.QUEUE1.*)|(.*TRACE.QUEUE2.*))).*
追跡データ プロパティ
追跡データ プロパティは MQ オペレーションにより異なります。 チャネルは、メッセージを受信するか送信するかにより、異なる MQ オペレーション(Get または Put)を実行します。
以下の表では、追跡データについて説明します。
キー | 説明 | 値 | MQ オペレーション |
<メッセージ ID> | メッセージの実際のメッセージ ID。 | IScopeMQID | Put、Get |
<相関 ID> | メッセージの実際の相関 ID。 相関 ID がメッセージ ID と同じか、または相関 ID が NULL の場合、この追跡データは表示されません。 | IScopeMQID | Put、Get |
MQ Channel Name | WebSphere MQ オペレーションが実行されるチャネルの名前。 | <チャネル名> | Put、Get |
MQ Channel Type | WebSphere MQ オペレーションが実行されるチャネルのタイプ。 | 以下のいずれかの値になります。 SENDER RECEIVER REQUESTER SERVER CONNECTION CLUSTER SENDER CLUSTER RECEIVER | Put、Get |
MQ Queue Name | Queue Name | <キュー名> | Put、Get |
MQ Queue Type | Queue Type | 以下のいずれかの値になります。 LOCAL LOCAL (DLQ) TRANSMISSION REMOTE | Put、Get |
MQ Queue Residency Time | 次のキュー マネージャに移動するまでに、メッセージがキューに留まった実際の時間(ミリ秒)。 | ミリ秒単位の時間(ms) | Get |
MQ Queue Residency Time (~) | 次のキュー マネージャに移動するまでに、メッセージがキューに留まったおおよその時間(ミリ秒)。 注: この値は、メッセージがポーリングによってローカル キューに配置された場合に入力されます。 「プロセスにまたがるトランザクション追跡」を参照してください。 | ミリ秒単位のおおよその時間(ms)。 または MQMonitor エージェントと WebSphere MQ キュー マネージャが非同期である場合、システム時間は同期していない場合があります。 | ローカル キューへの Put オペレーション |
MQ Source Queue Manager | メッセージが現在のキューに到達する前に留まったキュー マネージャの名前。 | <キュー マネージャ名> | 1 つ以上の WebSphere MQ ホップの Put オペレーション。 |
MQ Target Queue Manager | メッセージが次のホップで移動する必要のある送信先キュー マネージャの名前。 | <キュー マネージャ名> | リモート キューへの 1 つ以上の WebSphere MQ ホップの Put オペレーション。 |
MQ Target Queue | メッセージが次のホップで移動する必要のある送信先キュー。 | <キュー名> | リモート キューへの 1 つ以上の WebSphere MQ ホップの Put オペレーション。 |
MQ Message Status | 宛先キュー内のメッセージのステータスを決定します。 | trace.polling.enabled=true の場合、以下のいずれかの値になります。 Message is consumed or expired (メッセージが消費済みまたは期限切れ) Message is not consumed (メッセージが未消費) Message is consumed (メッセージが消費済み) | ローカル キューへの Put オペレーション。 |