ibm-messaging / mq-dev-patterns

Code samples and messaging patterns for IBM MQ developers
Apache License 2.0
185 stars 162 forks source link

MQRC_NOT_AUTHORIZED exception when trying pub/sub samples #204

Closed pamodaaw closed 7 months ago

pamodaaw commented 7 months ago

I tried to run the https://github.com/ibm-messaging/mq-dev-patterns/blob/master/JMS/com/ibm/mq/samples/jms/JmsPub.java and https://github.com/ibm-messaging/mq-dev-patterns/blob/master/JMS/com/ibm/mq/samples/jms/JmsSub.java. But getting the following error.

com.ibm.msg.client.jms.DetailedJMSSecurityRuntimeException: JMSWMQ2007: Failed to send a message to destination 'dev/'.
JMS attempted to perform an MQPUT or MQPUT1; however IBM MQ reported an error.
Use the linked exception to determine the cause of this error.
    at com.ibm.msg.client.jms.DetailedJMSSecurityException.getUnchecked(DetailedJMSSecurityException.java:270)
    at com.ibm.msg.client.jms.internal.JmsErrorUtils.convertJMSException(JmsErrorUtils.java:173)
    at com.ibm.msg.client.jms.internal.JmsProducerImpl.send(JmsProducerImpl.java:826)
    at com.ibm.mq.samples.jms.JmsPub.main(JmsPub.java:102)
Caused by: com.ibm.mq.MQException: JMSCMQ0001: IBM MQ call failed with compcode '2' ('MQCC_FAILED') reason '2035' ('MQRC_NOT_AUTHORIZED').
    at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:203)
    at com.ibm.msg.client.wmq.internal.WMQMessageProducer.checkJmqiCallSuccess(WMQMessageProducer.java:1358)
    at com.ibm.msg.client.wmq.internal.WMQMessageProducer.checkJmqiCallSuccess(WMQMessageProducer.java:1313)
    at com.ibm.msg.client.wmq.internal.WMQMessageProducer.access$800(WMQMessageProducer.java:75)
    at com.ibm.msg.client.wmq.internal.WMQMessageProducer$SpiUnidentifiedProducerShadow.sendInternal(WMQMessageProducer.java:1123)
    at com.ibm.msg.client.wmq.internal.WMQMessageProducer$ProducerShadow.send(WMQMessageProducer.java:608)
    at com.ibm.msg.client.wmq.internal.WMQMessageProducer.send(WMQMessageProducer.java:1487)
    at com.ibm.msg.client.jms.internal.JmsMessageProducerImpl.sendMessage(JmsMessageProducerImpl.java:855)
    at com.ibm.msg.client.jms.internal.JmsMessageProducerImpl.synchronousSendInternal(JmsMessageProducerImpl.java:2055)
    at com.ibm.msg.client.jms.internal.JmsMessageProducerImpl.sendInternal(JmsMessageProducerImpl.java:1993)
    at com.ibm.msg.client.jms.internal.JmsMessageProducerImpl.send(JmsMessageProducerImpl.java:1535)
    at com.ibm.msg.client.jms.internal.JmsProducerImpl.send(JmsProducerImpl.java:818)

This error is happening only with the pub/sub samples. The put/get samples involving queues works fine.

I'm using the IBM MQ (ibm-mqadvanced-server-dev:9.3.3.0-arm64) on docker with an image built as instructed in https://community.ibm.com/community/user/integration/blogs/richard-coppen/2023/06/30/ibm-mq-9330-container-image-now-available-for-appl

Any leads on resolving this error would be much appreciated.

pamodaaw commented 7 months ago

I was able to fix this by modifying the permissions of the user.