5

ローカル キュー マネージャーが AMQ エラー ログに次のメッセージを受信した場合:

09/13/12 08:00:19 - プロセス (3017.20) ユーザー (mqm) プログラム (amqrmppa_nd) AMQ9544: メッセージが宛先キューに書き込まれません。

説明: チャネル 'TO_QM_QD2T1_C1' の処理中に、1 つ以上のメッセージを宛先キューに書き込むことができず、それらを送達不能キューに書き込む試みが行われました。キューの場所は 2 です。1 はローカル配信不能キュー、2 はリモート配信不能キューです。

... MQ がそのような情報を交換するメカニズムは何ですか? チャネル プログラム API 自体に組み込みの機能がありますか、それともSYSTEM.CLUSTER.COMMAND.QUEUE(クラスターの場合) に配置された個別のメッセージとして情報交換を行いますか? これがリモート キュー定義の状況で発生する可能性があり、単純な送信側と受信側のチャネル ペアのみがあり、対応する COMMAND QUEUE が必ずしも存在しない場合、チャネル プロセス通信を介して処理されると想像できます...ちょっと不思議です...

4

1 に答える 1

1

メッセージは一方向にしか流れませんが、チャネル エージェント間では双方向の通信が行われます。メッセージがリモート エンドで宛先を見つけられなかった場合、次に何が起こるかについていくつかの可能性があります。メッセージがどこかに正常に配置され、最初に試行する場所がリモート DLQ である場合にのみ、チャネルは実行を継続します。それが失敗した場合、ローカル MCA はメッセージを再配置するか、チャネルを停止する必要があります。したがって、2 つのメッセージ チャネル エージェントは、チャネルの状態がどうあるべきか、何が起こるかについて両者の間で解決します。

エラー メッセージの独特な言い回しは、メッセージのさまざまな性質が、同じコード パス、例外処理、および WMQ の最適化内に由来することを反映しています。MCA は、メッセージがその時点で DLQ に入れられたことを認識し、DLQ が使用された文言を解決するための 2 つの異なるエラー メッセージやロジックを用意するのではなく、数字をテンプレートにドロップするだけです。したがって、単一のエラー メッセージと合理化されたロジックが両方の可能性に使用されます。

于 2012-09-13T13:56:31.010 に答える