2013-04-03 3 views
0

Когда я переключаюсь с не прочного и долговечного подписчика тем, я не могу найти имя темы, которое я мог бы прочитать до этого (используя 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(); 
+0

В тексте написано: «WebLogic MQ, но тег« websphere-mq », какой сервер вы используете? – Pino

+0

Спасибо, имел WebLogic на мозге. Отредактировал тему. – rajah9

+0

Все еще запутано. Текст теперь говорит о WebSphere MQ, но вы используют встроенные свойства WebLogic. В WMQ нет конфигураций, которые допускают сохранение. Если вы отметите сообщение как постоянное, он будет сохраняться в нем. Ошибка, вызванная вызовом, указывается на классы WMQ на управляемых объектах WebLogic. –

ответ

1

Фундаментальный аспект проблемы является то, что вы подключаются WebLogic к теме Websphere JMS, это стало ясно с последним редактированием вашего вопроса, но не ясно, является ли вы используете WebLogic сообщений Моста или нет. Мост обмена сообщениями - это правильный способ настройки внешнего JMS-сервера в WebLogic. Я предлагаю прочитать this FAQ и это how-to, что характерно для Websphere.