2

我正在编写一个简单的 java 程序来连接到远程 WebSphere MQ 队列管理器,但它显示错误: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);
4

1 回答 1

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 资源管理器的连接可能正在使用SYSTEM.ADMIN.SVRCONN没有出口。

我看到还为该通道定义了一个 CLNTCONN,它需要一个客户端出口。如果您的 Java 客户端使用客户端连接定义表 (CCDT),那么这会使事情变得更加复杂。CLNTCONN 存在并列出了客户端出口这一事实表明,PLM.SECURE.SVRCONN如果没有该客户端出口,它将无法工作。

于 2012-04-27T14:26:34.010 回答