1

У меня есть MDB, который выглядит следующим образом:авторизации Абонента в WebSphere MQ с MDB

@MessageDriven(mappedName = "jms/TestJeremyTopic ", activationConfig = { 
     @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"), 
     @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"), 
     @ActivationConfigProperty(propertyName = "subscriptionDurability", propertyValue = "Durable"), 
     @ActivationConfigProperty(propertyName = "clientId", propertyValue = "TopicReaderBeanClientId"), 
     @ActivationConfigProperty(propertyName = "subscriptionName", propertyValue = "TopicReaderBeanSubscriptionName") 
    }) 
public class TopicReaderBean implements MessageListener { 
    public void onMessage(Message message) { 
     ... 
    } 
} 

я поставил тему в WebSphere MQ 7. Использование MQ Explorer и паб и суб операции, кажется, в порядке.

Я установил порт слушателя в WebSphere. Порт прослушивателя можно запустить успешно.

Когда я развертываю и запускаю приложение, MDB не может прочитать какое-либо сообщение. Исключение получили в жизни:

[1/19/11 10:57:06:569 EST] 00000009 MDBListenerIm W WMSG0019E: Unable to start MDB Listener TopicReaderBean, JMSDestination jms/TestJeremyTopic :  com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ0026: Failed to subscribe to topic 'TEST_JEREMY' using MQSUB. There may have been a problem creating the subscription due to it being used by another message consumer. Make sure any message consumers using this subscription are closed before trying to create a new subscription under the same name. Please see the linked exception for more information. 
at com.ibm.msg.client.wmq.common.internal.Reason.reasonToException(Reason.java:540) 
at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:236) 
at com.ibm.msg.client.wmq.internal.WMQMessageConsumer.checkJmqiCallSuccess(WMQMessageConsumer.java:123) 
at com.ibm.msg.client.wmq.internal.WMQConsumerShadow.initialize(WMQConsumerShadow.java:689) 
at com.ibm.msg.client.wmq.internal.WMQAsyncConsumerShadow.initialize(WMQAsyncConsumerShadow.java:714) 
at com.ibm.msg.client.wmq.internal.WMQConnectionBrowser.<init>(WMQConnectionBrowser.java:1223) 
at com.ibm.msg.client.wmq.internal.WMQConnection.createDurableConnectionBrowser(WMQConnection.java:892) 
at com.ibm.msg.client.jms.internal.JmsConnectionImpl.createDurableConnectionBrowser(JmsConnectionImpl.java:1035) 
at com.ibm.msg.client.jms.internal.JmsConnectionConsumerImpl.createConnectionBrowser(JmsConnectionConsumerImpl.java:236) 
at com.ibm.msg.client.jms.internal.JmsConnectionConsumerImpl.<init>(JmsConnectionConsumerImpl.java:163) 
at com.ibm.msg.client.jms.internal.JmsConnectionImpl.createDurableConnectionConsumer(JmsConnectionImpl.java:502) 
at com.ibm.msg.client.jms.internal.JmsXAConnectionImpl.createDurableConnectionConsumer(JmsXAConnectionImpl.java:222) 
at com.ibm.mq.jms.MQConnection.createDurableConnectionConsumer(MQConnection.java:300) 
at com.ibm.ejs.jms.JMSTopicConnectionHandle.createDurableConnectionConsumer(JMSTopicConnectionHandle.java:228) 
at com.ibm.ejs.jms.listener.MDBListenerImpl.createResources(MDBListenerImpl.java:597) 
at com.ibm.ejs.jms.listener.MDBListenerImpl.internalStart(MDBListenerImpl.java:756) 
at com.ibm.ejs.jms.listener.MDBListenerImpl.restart(MDBListenerImpl.java:729) 
at com.ibm.ejs.jms.listener.MDBListenerImpl.alarm(MDBListenerImpl.java:1151) 
at com.ibm.ejs.util.am._Alarm.run(_Alarm.java:127) 
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1550) 
Caused by: com.ibm.mq.MQException: JMSCMQ0001: WebSphere 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:223) 
... 18 more 

Я подозреваю, что в то время как порт слушателя может начать, она не активно подключаться до тех пор, приложенное приложение не пытается использовать его. В настоящее время он аутентифицирован, но не разрешен.

В: Где находятся учетные данные аутентификации, настроенные в WebSphere? Я понятия не имею, с кем я аутентифицируюсь. Это идентификатор клиента, установленный в @ActivationConfigProperty в MDB?

В: Где находятся параметры авторизации в MQ Explorer? Я не вижу возможности предоставить паб или дополнительные права для групп или отдельных лиц. В настоящее время он установлен, чтобы разрешить/разрешить, предположительно для всех.

ответ

0

Аутентификация и авторизация контролируются на уровне ОС. Стенд пользователя/группы управления является ключевым здесь. Не забудьте сделать следующее в MQ Explorer: QueueManager -> Безопасность -> Обновить службу авторизации.

+2

Если сервер приложений и WMQ находятся на одном и том же хосте и говорят по общей памяти (соединение «режим привязки» в терминологии WebSphere MQ), то учетная запись * * проверяется подлинностью ОС. Но если вы используете сетевое соединение, идентификатор, который прошел, не проверяется WMQ. Пароль игнорируется, если для его проверки не установлен выход канала. Кроме того, необходимо только обновить auths, если рассматриваемая учетная запись меняет групповую регистрацию. Не нужно обновляться после использования команд setmqaut. –

Смежные вопросы