3

MSMQ には、ユーザーがメッセージを実際に消費せずに覗き見ることができる機能があります。つまり、MessageID に基づいてキュー内の次のメッセージを確認します。メッセージに興味がない場合は、メッセージをキューに戻すことができます (つまり、未確認のメッセージがキューに追加され、メッセージ ID が保持されます)。

同様の機能が RabbitMQ にも存在します。ただし、RabbitMQ では、クリーンな方法で行われるわけではありません。メッセージをキューから取り出して確認応答を送信しないことでメッセージのピークをシミュレートできるため、RabbitMQ はそのメッセージをキューに戻します。ただし、未確認のメッセージがキューに再度追加されると、RabbitMQ がメッセージの順序を変更し、メッセージ ID をインクリメントできることを読みました。

以前にこの問題に遭遇した人はいますか。

また、IBM MQ がピーク アンド シークのこの動作/機能をサポートしているかどうかを知っている人はいますか?

よろしくD

4

2 に答える 2

2

IBM MQ では、サイズが大きすぎない場合にキュー上のメッセージを表示する方法は、amqsbcg サンプル プログラムです (Tim が述べたようにブラウズします)。これを使用して、破壊的な取得を行わずにメッセージを出力ファイルにダンプできます。その後、ファイルを解析して、必要なメッセージ ID やその他の情報を確認できます。必要な条件に一致するメッセージが見つかった場合は、それらのオプションを使用して GET を実行し、キューから実際に削除する必要があります。

amqsbcg QUEUENAME QMGRNAME > output.file

このサンプル プログラムは次の場所にあります。

AIX/Unix: $MQ_HOME/samp/bin/amqsbcg
Windows: $MQ_HOME\tools\c\Samples\Bin\amqsbcg.exe

$MQ_HOME は、オペレーティング システムに適した場所です。$MQ_HOME のデフォルトの場所は次のとおりです。

AIX: /usr/mqm

Unix: /opt/mqm

Windows: C:\Program Files\IBM\Websphere MQ

別の可能なオプションは、「qload」MO03 サポート パックです。Message Id、CorrelId Id、または Group Id でフィルタリングできるオプションがあります。

http://www-01.ibm.com/support/docview.wss?acss=wmq062007&rs=171&uid=swg24009368

于 2015-05-20T11:40:16.587 に答える