1

リモート・キュー・マネージャーのクラスター・キューにメッセージを書き込むことができません。MQGetMessageOptions と MQPutMessageOptions を使用しています。7.5 MQ サーバーとクライアント (7.5.0.1) を使用しています。

理由コード - 2085- メッセージ -CompCode: 2、Reason: 2085 をスローします。

キューとキュー マネージャーは、MQ クラスターを使用して接続されます。

 mqQueue = mqQueueMgr.AccessQueue("queue name", MQC.MQOO_FAIL_IF_QUIESCING | MQC.MQOO_INPUT_SHARED | MQC.MQOO_BROWSE);

amqsput.exe を使用してテスト メッセージを送信しようとしましたが、問題なく動作します。

何かご意見は?

4

2 に答える 2

5

この呼び出し:

mqQueue = mqQueueMgr.AccessQueue("queue name", MQC.MQOO_FAIL_IF_QUIESCING | MQC.MQOO_INPUT_SHARED | MQC.MQOO_BROWSE);

メッセージを取得するためにクラスタ キューを開きます。メッセージを取得するには、アプリケーションがローカル キュー マネージャーに接続されている必要があります。ローカル キュー マネージャーとは、アプリケーションが接続されているキュー マネージャーを意味します。キュー マネージャーは、アプリケーションと同じマシンに配置することも、別のマシンに配置することもできます。リモート・キュー・マネージャーからメッセージを取得できません。クラスター・キューをホストするキュー・マネージャーとは異なるクラスター内のキュー・マネージャーにアプリケーションが接続されている場合、メッセージをクラスター・キューに書き込むことができます。

AMQSPUTGetではなくPutのキューを開いているため、機能します。

したがって、問題を解決するには、オプションを次のように変更する必要があります。

mqQueue = mqQueueMgr.AccessQueue("queue name", MQC.MQOO_FAIL_IF_QUIESCING | MQC.MQOO_OUTPUT);
于 2013-06-13T04:40:46.423 に答える
0

試す

  MQQueue queue = queueManageArg.AccessQueue(queueNameArg,
                MQC.MQOO_OUTPUT + MQC.MQOO_FAIL_IF_QUIESCING);

メッセージを MQ に入れる

于 2017-12-21T20:47:39.430 に答える