2

リモートの WebSphere MQ Queue Manager に接続するための単純な Java プログラムを作成していますが、次のエラーが表示されます。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 Explorer 経由の接続は、おそらくSYSTEM.ADMIN.SVRCONN出口のないものを使用しています。

そのチャネルには CLNTCONN も定義されており、クライアント側の出口が必要であることがわかります。Java クライアントが Client Conn Definition Table (CCDT) を使用している場合、これはさらに複雑になります。CLNTCONN が存在し、クライアント側の出口がリストされているという事実は、そのクライアント側の出口PLM.SECURE.SVRCONNがないと機能しないことを示唆しています。

于 2012-04-27T14:26:34.010 に答える