Когда я переключаюсь с не прочного и долговечного подписчика тем, я не могу найти имя темы, которое я мог бы прочитать до этого (используя JNDI).WebSphere MQ 6.0: Невозможно переключиться с недолговечного на прочный
Это дает ошибку в консоли администратора, как тема просматриваемое:
An error occurred during activation of changes, please see the log for details.
ERROR: Could not activate [email protected]
The Messaging Kernel ITFT-JMS-1 has not yet been opened
Я использую Oracle WebLogic Server консоль администрирования для настройки очереди WebSphere. На консоли, я сделал эти изменения:
- Для стойких Stores, на вкладке Конфигурация Добавлен файл магазин под названием
ItftFileStore
- Для стойких Stores, на вкладке Конфигурация Добавлен каталог.
- Для серверов JMS О Конфигурация -> вкладка Общие, Измененный Persistent Маркета
ItftFileStore
- для серверов JMS О Конфигурация -> вкладка Общие -> Дополнительно, Проверил
Store Enabled
поле. - Для вкладки ItftTopic, Configuration -> Override, изменено
Delivery Mode Override
по номеруPersistent
.
Это код, который я использую. Есть несколько комментариев по соответствующим линиям.
public void start() throws Exception {
try {
LOG.info("Starting the FC MQ message consumer/listener ...");
InitialContext initialContext = getInitialContext();
topicConnectionFactory = (TopicConnectionFactory) initialContext.lookup(jmsFactory);
topicConnection = topicConnectionFactory.createTopicConnection();
topicConnection.setClientID(clientId);
LOG.info("1"+topicConnection.getClientID());
topicSession = topicConnection.createTopicSession(false, Session.CLIENT_ACKNOWLEDGE);
LOG.info("2"+topicConnection.getClientID());
//topicConnection.setExceptionListener(connectionExceptionListener);
jmsTopic = (Topic) initialContext.lookup(topic); // Error being thrown here
LOG.info("3"+topicConnection.getClientID());
//topicSubscriber = topicSession.createSubscriber(jmsTopic); // Works as a non-durable subscriber
topicSession.createDurableSubscriber(jmsTopic,subscriberName);
LOG.info("4"+topicConnection.getClientID());
topicSubscriber.setMessageListener(messageListener);
topicConnection.start();
В тексте написано: «WebLogic MQ, но тег« websphere-mq », какой сервер вы используете? – Pino
Спасибо, имел WebLogic на мозге. Отредактировал тему. – rajah9
Все еще запутано. Текст теперь говорит о WebSphere MQ, но вы используют встроенные свойства WebLogic. В WMQ нет конфигураций, которые допускают сохранение. Если вы отметите сообщение как постоянное, он будет сохраняться в нем. Ошибка, вызванная вызовом, указывается на классы WMQ на управляемых объектах WebLogic. –