2016-06-20 2 views
0

IBM MQ Light를 사용 중입니다.IBM MQ Lite에서 메시지를 푸시하는 중 오류가 발생했습니다.

Java 프로그램을 통해 IBM MQ Lite에서 메시지를 보내려고하고 있는데, 내 연결이 잘되어 있습니다. 내가 프로그램을 실행하고 Localhost를 확인하면 클라이언트가 연결되었음을 보여 주지만 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의 버전은 IBM MQ Lite에서 메시지를 밀어 수있는 샘플 코드를 빛? –

답변

0

나는

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_NOAUTH 또는 MQSAUTHERRORS 설정을 사용하여 권한 실패 및 실패한 액세스에 대한 자세한 정보를 얻을 수 있습니다.