2016-05-27 18 views
0

Ich muss eine Nachricht an einen MQ-Cluster mit .Net senden. Wie mache ich es?So senden Sie eine Nachricht an einen MQ-Cluster mit .Net?

 MQEnvironment.Hostname = "10.1.1.22"; 
     MQEnvironment.Port = 1455; 
     MQEnvironment.Channel = "SOMECHANNEL"; 
     MQEnvironment.ConnectionName = "10.1.1.22(1432)"; 
     MQQueueManager qm =new MQQueueManager("SOMEQM"); 

      var openOptions = MQC.MQOO_INPUT_AS_Q_DEF| MQC.MQOO_OUTPUT; 
      var queue = qm.AccessQueue("MYREQUESTQUEUE", openOptions); 

Derzeit ist dies in der letzten Zeile fehlgeschlagen. Was sind die richtigen Optionen zu senden beim Öffnen einer Verbindung zu einer Cluster-Warteschlange?

Antwort

1

Paar Punkte:

1) Eine Cluster-Warteschlange nicht auf dem WS-Manager gehostet werden kann, an dem Ihre Anwendung verbunden ist.

2) Nachrichten können in eine Cluster-Warteschlange gestellt werden, die nicht im Warteschlangenmanager gehostet wird, mit dem Ihre Anwendung verbunden ist. Aber zu GET Nachrichten, Warteschlange must gehostet werden auf dem Warteschlangenmanager, mit dem Ihre Anwendung verbunden ist.

Ihre Anwendung verwendet die Option MQC.MQOO_INPUT_AS_Q_DEF, was bedeutet, dass Sie versuchen, Nachrichten aus einer Warteschlange abzurufen, die Warteschlange jedoch nicht im Warteschlangenmanager vorhanden ist, mit dem Ihre Anwendung verbunden ist. Daher wird eine Ausnahme ausgelöst. Sie müssen die Option MQC.MQOO_INPUT_AS_Q_DEF entfernen und einfach MQC.MQOO_OUTPUT verwenden, um Nachrichten an die Cluster-Warteschlange zu senden.