Всегда получать MQJE001: код завершения "2", причина "2059". ОШИБКА

Я новичок в Web Sphere MQ.

Я создал менеджер очередей, канал и прослушиватель в AIX следующим образом:

crtmqm MY_Q_MGR

strmqm MY_Q_MGR

runmqsc

DEFINE LISTENER(MY_QM_LISTENER) TRPTYPE(TCP) PORT(5030)

DEFINE CHANNEL(MY_QM_CHANNEL) CHLTYPE(SDR) CONNAME('10.128.1.51(5030)') XMITQ('MY_Q_MGR') DISCINT(0)

Затем я проверил, что QMGR работает. Я видел слушателя в процессе.

Затем я попытался создать MQQueueManager из Java следующим образом, и я получил MQJE001: Completion Code '2', Reason '2059'.

import com.ibm.mq.MQException;
import com.ibm.mq.MQGetMessageOptions;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQPutMessageOptions;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;
import com.ibm.mq.constants.MQConstants;
import com.ibm.mq.MQEnvironment;

public class MQSample {

  // code identifier
  static final String sccsid = "@(#) samples/wmqjava/MQSample.java, jmscc.samples, k700, k700-L080529 1.4.1.1 08/06/01 09:37:53";

    // define the name of the QueueManager
     private static final String qManager = "MY_Q_MGR";

  // and define the name of the Queue
  private static final String qName = "SYSTEM.DEFAULT.LOCAL.QUEUE";

  /**
   * Main entry point
   * 
   * @param args - command line arguments (ignored)
   */
  public static void main(String args[]) {
    try {
        MQEnvironment.hostname = "MY IP ADDRESS";
        MQEnvironment.channel = "MY_QM_CHANNEL";
        MQEnvironment.port = 5030;


      // Create a connection to the QueueManager
      System.out.println("Connecting to queue manager: " + qManager);
      System.out.println("Connecting to queue manager is finished: " + qManager);
      // Set up the options on the queue we wish to open
      int openOptions = MQConstants.MQOO_INPUT_AS_Q_DEF | MQConstants.MQOO_OUTPUT;

      // Now specify the queue that we wish to open and the open options
      System.out.println("Accessing queue: " + qName);
      MQQueue queue = qMgr.accessQueue(qName, openOptions);
      MQQueueManager qMgr = new MQQueueManager(qManager); // here i got error
      System.out.println("Connecting to queue manager is finished: " + qManager);
      // Set up the options on the queue we wish to open
      int openOptions = MQConstants.MQOO_INPUT_AS_Q_DEF | MQConstants.MQOO_OUTPUT;

      // Now specify the queue that we wish to open and the open options
      System.out.println("Accessing queue: " + qName);
      MQQueue queue = qMgr.accessQueue(qName, openOptions);

Я застрял здесь.

1 ответ

Решение

Вам нужно соединение Север (SVRCONN) тип канала, а не SDR тип. SVRCONNКанал типа требуется для клиентских приложений для подключения к администратору очередей, где SDR Канал типа предназначен для связи между двумя администраторами очередей.

Когда администратор очередей создан, канал SVRCONN по умолчанию, SYSTEM.DEF.SVRCONN создано. Вы можете использовать это для своих тестов. Но в производстве рекомендуется создать свой собственный канал и не использовать какие-либо предопределенные каналы.

Пожалуйста, смотрите эту ссылку для получения полной информации о том, что вам нужно сделать. Это из книги по быстрому старту WebSphere MQ.

Другие вопросы по тегам