简单的java程序获得RC = 2009连接到远程队列管理器

时间:2012-04-27 14:03:02

标签: ibm-mq

我正在编写一个简单的java程序来连接到远程WebSphere MQ Queue Manager,但它显示错误:MQJE001: Completion Code '2', Reason '2009'

然而,当我使用WMQ Explorer连接时,它连接起来,我能够看到队列中的消息。请帮助。我的代码是:

        public void init(){

     props.put(MQC.HOST_NAME_PROPERTY, "sailmq3d.pok.ibm.com");
     props.put(MQC.CHANNEL_PROPERTY, "PLM.SECURE.SVRCONN");
     props.put(MQC.PORT_PROPERTY, 1423); // port number
     props.put(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES);
     }

       public void start(){
   try {
  // Create a connection to the queue manager
qMgr = new MQQueueManager("PLMESB_SBMD2",props);

1 个答案:

答案 0 :(得分:0)

哇,这有点酷 - 因为我实际上可以从SO发布的问题中看到 QMgr!

PLM.SECURE.SVRCONN频道定义如下所示:

AMQ8414: Display Channel details.
   CHANNEL(PLM.SECURE.SVRCONN)             CHLTYPE(SVRCONN)
   ALTDATE(2011-01-30)                     ALTTIME(15.02.56)
   COMPHDR(NONE)                           COMPMSG(NONE)
   DESCR( )                                HBINT(300)
   KAINT(AUTO)                             MAXINST(999999999)
   MAXINSTC(999999999)                     MAXMSGL(4194304)
   MCAUSER(nobody)                         MONCHL(QMGR)
   RCVDATA( )                              RCVEXIT( )
   SCYDATA( )
   SCYEXIT(/var/mqm/exits64/PLMESB_SBMD2/ESBSecurityExit(ChannelExit))
   SENDDATA( )                             SENDEXIT( )
   SHARECNV(10)                            SSLCAUTH(REQUIRED)
   SSLCIPH( )                              SSLPEER( )
   TRPTYPE(TCP)

鉴于该频道上有自定义安全出口,因此无法说明您收到2009年返回代码的原因。可能最好的办法是查看安全出口日志。

通过WMQ Explorer的连接可能正在使用没有退出的SYSTEM.ADMIN.SVRCONN

我看到还为该频道定义了CLNTCONN,它需要客户端退出。如果您的Java客户端使用客户端Conn定义表(CCDT),那么这将使问题进一步复杂化。 CLNTCONN存在并列出客户端退出的事实表明,如果没有客户端退出,PLM.SECURE.SVRCONN将无效。