1

リモート キューを介してメッセージを送信するベンダーとの作業セットアップが既にある状況があります。現在、これらのメッセージをキューから消費するコンシューマーは 1 つだけです。

同じメッセージを消費するために、別のコンシューマを側に追加したいと考えています。私たちの目標は、私たちにメッセージを送信しているベンダーに影響を与えることなく (または可能な限り影響を最小限に抑えることができるかもしれません)、これを達成することです。

この状況で、新しい構成がどのようになるか (おそらく私たちの配布リストを使用) を提案してください。ベンダー側で変更を加えることなく、これを実現できますか。

現在の構成は単純です。伝送 Q は、それを MCA 送信者に送信するベンダー側 (Q MGR の下) でセットアップされています。これは、それを最終宛先 Q に入れる側の MCA 受信者によって受信されます。これが私たちがいる場所です。 2番目の消費者が受け取ることができるように変更を加えることを検討しています。

アップデート:

こんにちはロブ、答えてくれてありがとう。同じページにいること。これが現在のトポロジです。

Vendor Side Producer --> Proxy QA inside Q Mgr MAGR1 --> 
Sender MCA (with a channel defined) --> (Over the Internet) --> (Receiver MCA) --> 
QA inside Q Mgr MAGR2 --> Consumer. 

あなたの提案は、私たちがこれを行うことです..

Vendor Side Producer --> Proxy QA inside Q Mgr MAGR1 -->
Sender MCA (with a channel defined) --> (Over the Internet) --> (Receiver MCA) --> 
NEW_TOPIC inside Q Mgr MAGR2 --> 
Two subscribers before the Two queues QA.1 and QA.2 --> to two consumers. 

Sub1 と Sub2 について詳しく教えてください。

私たちの側で書かれるコードがないことを確認しようとしているだけです. また、ベンダー側のコード変更はありません。ベンダー側のチャネルをバウンスする必要があるだけです。私たちは受け取る側です。フィードバックをお寄せいただきありがとうございます。これを月曜日に MQ チームへの推奨事項として取り上げます。

Rob さん、どうもありがとうございました。本当にありがとうございました。最後の質問です。現在、元の QA をタイプ トピックに変更していることがわかります。それを反映するベンダー コード (MQ コード/JMS コードのいずれか) への変更はないと思いますか。

4

1 に答える 1

1

これは、ブリッジを定義するほど簡単ではありませんが、WebSphere MQ ではかなり簡単です。

説明のために、現在宛先キューが次のような QA であると仮定します...

Producer --> QA --> Consumer1

必要なことを行うには、QA をトピックを指す同じ名前のエイリアスに変換してから、2 つの新しいエンドポイントへの管理サブスクリプションをセットアップします。

(Receiver MCA) --> QA --> TopicA --> Sub1 --> QA.1 --> Consumer1
                            |
                            +------> Sub2 --> QA.2 --> Consumer2

キューにローカルに接続されているアプリを切断するか、開いている可能性のある RCVR/RQSTR/CLUSRCVR チャネルをシャットダウンする必要があります。ただし、トピックに変換すると、何も中断することなく、サブスクリプションを自由に追加または削除できます。

更新への対応

応答に基づいて、これは簡単に実行できます。ベンダー側でチャネルを停止したり、ベンダーと調整したりする必要さえありません。自分でコードを書いたり、アプリを変更したりする必要はありません。

runmqsc MAGR1


STOP CHL(RCVRMCA) 
DEFINE QL(QA1)
DEFINE QL(QA2)
DELETE QL(QA)
DEFINE QALIAS(QA) TARGTYPE(TOPIC) TARGET(QA.TOPIC)
DEF TOPIC(QA.TOPIC) TOPICSTR(QA)
DEFINE SUB(QA1) TOPICSTR(QA) DEST(QA1)
DEFINE SUB(QA2) TOPICSTR(QA) DEST(QA2)
START CHL(RCVRMCA) 
END

C:\>AMQSPUT QA JMSDEMO
Sample AMQSPUT0 start target queue is QA
Hello world!

Sample AMQSPUT0 end

C:\>AMQSGET QA1 JMSDEMO
Sample AMQSGET0 start
message <Hello world!>
no more messages
Sample AMQSGET0 end

C:\>AMQSGET QA2 JMSDEMO
Sample AMQSGET0 start 
message <Hello world!>
no more messages
Sample AMQSGET0 end

C:\

セキュリティの設定は、サブやトピックを定義するよりも少し高度なので、キュー マネージャーをロックダウンする必要があるかもしれないと推測しています。Secure Messaging Scenarios With WebSphere MQを参照してください。特に、管理アクセスを保護し、B2B で使用するためのキュー マネージャーの強化に関する章を参照してください。QMgr がロックダウンされていない場合、QMgr への TCP ルートを持っている人なら誰でも匿名で QMgr を管理し、基盤となるサーバーでコードをリモートで実行できることに注意してください。

于 2013-03-03T02:39:14.450 に答える