web-dev-qa-db-ja.com

WebsphereMQ-キューに長時間存在するクエリビューメッセージ

キュー内の停止/遅延/待機中のメッセージを表示するには、クエリまたはコマンドが必要ですが、長い間です。

1
Thiago Braga

キューにあり、処理されていないメッセージは、次のコマンドを使用して表示できます。

DISPLAY QSTATUS(q-name) ALL

まず、キューにあるメッセージの数を非常に簡単に示すCURDEPTH値を確認できます。その単一の数値自体は、それらのメッセージが1秒前に到着したか1時間前に到着したかを反映するのではなく、コマンドを発行したときにキューにあったメッセージの数を示しているだけです。そのキューでメッセージを処理しているアプリケーションがある場合、しばらくしてから再度発行すると、別の番号が表示される可能性があります。

このコマンドで返される他のさまざまなフィールドがあり、メッセージが処理される前にこのキューにとどまっている時間に関する詳細情報が表示されます。どのアプリケーションもメッセージをキューから外していないことが心配な場合は、最後のメッセージがキューから外された日時を示すLGETDATELGETTIMEを確認する必要があります。これが少し前の場合は、(入力)を取得するためにキューを開いているアプリケーションの数を示すIPPROCSも確認する価値があります。

アプリケーションがキューで動作していることがわかり、LGETTIMEが定期的に変更されているようで、定期的な処理が行われていることを示しているが、それでも長い間キューにメッセージがあると思われる場合は、次のメッセージを取得していないが、代わりにmessage-idまたはcorrelation-idによって特定のメッセージを取得しているアプリケーション。この場合、キューは定期的に処理されていますが、古いメッセージがいくつかある可能性があり、これらはMSGAGEに高い値として表示されます。

N.B.これらのフィールドの一部により、キューマネージャーコードによって追加のタイムスタンプが取得されました。具体的には、LGETTIMEおよびMSGAGEです。これらはMONQ属性によって制御されるため、この種のデータを表示したくない場合は、この余分なCPU時間を費やすことはありません。次のコマンドを発行して、これらの余分な情報をオンにします。-

 ALTER QLOCAL(q-name) MONQ(HIGH)

関連情報

2
Morag Hughson