Weblogic WebSphere MQ 6.0:Can';t从非耐久性切换到耐久性
当我从非持久主题订阅服务器切换到持久主题订阅服务器时,我无法查找以前可以读取的主题名称(使用JNDI) 在查找主题时,管理控制台中出现错误:Weblogic WebSphere MQ 6.0:Can';t从非耐久性切换到耐久性,weblogic,ibm-mq,jms-topic,Weblogic,Ibm Mq,Jms Topic,当我从非持久主题订阅服务器切换到持久主题订阅服务器时,我无法查找以前可以读取的主题名称(使用JNDI) 在查找主题时,管理控制台中出现错误: An error occurred during activation of changes, please see the log for details. ERROR: Could not activate itft-jmsmodule!ITFT-JMS-1@ItftTopic The Messaging Kernel ITFT-JMS-1 has n
An error occurred during activation of changes, please see the log for details.
ERROR: Could not activate itft-jmsmodule!ITFT-JMS-1@ItftTopic
The Messaging Kernel ITFT-JMS-1 has not yet been opened
我正在使用OracleWebLogicServer管理控制台设置WebSphere队列。在控制台上,我做了以下更改:
- 对于持久存储,在“配置”选项卡上添加了一个名为
ItftFileStore
- 对于持久存储,在“配置”选项卡上添加了一个目录
- 对于JMS服务器,在配置->常规选项卡上,将持久存储更改为
ItftFileStore
- 对于JMS服务器,在配置->常规选项卡->高级上,选中
字段存储启用
- 对于ItftTopic,Configuration->Override选项卡将
更改为交付模式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连接到一个Websphere JMS主题,这一点在上次编辑您的问题时已经很清楚了,但不清楚您是否正在使用WebLogic消息传递桥。消息传递桥是在WebLogic中配置外部JMS服务器的正确方法。我建议阅读这篇文章,它是针对Websphere的。您的文章说的是“WebLogic MQ”,但标签是“Websphere MQ”“,你用的是哪台服务器?谢谢,我脑子里有WebLogic。编辑了主题。仍然困惑。文本现在显示WebSphere MQ,但您使用的是WebLogic本机属性。WMQ没有支持持久性的配置。如果将消息标记为持久消息,WMQ会将其持久化。抛出的错误似乎是由将WMQ类指向WebLogic托管对象引起的。