Weblogic WebSphere MQ 6.0:Can';t从非耐久性切换到耐久性

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

当我从非持久主题订阅服务器切换到持久主题订阅服务器时,我无法查找以前可以读取的主题名称(使用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 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托管对象引起的。