2016-06-20 75 views
0

我正在使用IBM MQ Light。在IBM MQ Lite中推送消息時發生錯誤

我試圖通過Java程序在IBM MQ Lite中推送消息,My Connection很好。當我運行該程序並檢查本地主機時,它向我顯示客戶端已連接,但在3-4秒後斷開連接,並在控制檯引發異常。

以下是我的錯誤日誌:

Problem with subscribe request: amqp:unauthorized-access: AMQXR0042E: A subscribe request was not authorized for channel PlainText received from 127.0.0.1. AMQXR0004E: MQSeries verb=SPISubscribe(String) returned cc=2(int) MQCC_FAILED rc=2035(int) MQRC_NOT_AUTHORIZED 
+0

哪個平臺您使用的作品在我的情況,以及MQ版本光? –

回答

0

我有一個示例代碼,通過它可以在IBM MQ精簡版推送消息

package com.Queue; 
import com.ibm.mqlight.api.ClientOptions; 

import com.ibm.mqlight.api.Delivery; 
import com.ibm.mqlight.api.DestinationAdapter; 
import com.ibm.mqlight.api.NonBlockingClient; 
import com.ibm.mqlight.api.NonBlockingClientAdapter; 
import com.ibm.mqlight.api.StringDelivery; 


public class SendReceive2 
{ 
    public static void main(String[] cmdline) 
    { 
     ClientOptions clientOpts = ClientOptions.builder().setCredentials("ad", "jms123").build(); 



     NonBlockingClient.create("amqp://localhost", clientOpts, new NonBlockingClientAdapter<Void>() 
     { 

      public void onStarted(NonBlockingClient client, Void context) 
      { 
       client.subscribe("JmsQueue", new DestinationAdapter<Void>() 
       { 
        public void onMessage(NonBlockingClient client, Void context, Delivery delivery) 
        { 
         if (delivery.getType() == Delivery.Type.STRING) 
          System.out.println(((StringDelivery)delivery).getData()); 
        } 
       }, null, null); 
      } 
     }, null); 





     NonBlockingClient.create("amqp://localhost", clientOpts, new NonBlockingClientAdapter<Void>() 
     { 
      public void onStarted(NonBlockingClient client, Void context) 
      { 
       client.send("JmsQueue", "Jms Queue is Formed!", null); 
      } 

     }, null); 






    }//main 


}//class 

試試吧, 它

0

一個2035錯誤代碼意味着你沒有授權。您可能需要獲取更多信息來確定您的客戶失敗的原因。您可以使用MQS_REPORT_NOAUTHMQSAUTHERRORS設置來獲取有關授權失敗和訪問失敗的更多信息。