使用 java 应用程序,我正在尝试在 jms 统一分布式主题上创建持久订阅。
jms 服务器在 weblogic 10.3.5 上运行,主题分布在 2 个服务器上。
如果我正在开发一个消息驱动的 bean,它就可以工作。我在两台服务器上都有一个具有相同订阅名称的持久订阅。
使用独立的 java 应用程序,我可以使用普通主题(非分布式)来完成这项工作。但无法管理它与分布式主题一起使用。
InitialContext ic = new InitialContext();
TopicConnectionFactory connectionFactory = (TopicConnectionFactory) ic.lookup("myConnectionFactory");
TopicConnection connection = connectionFactory.createTopicConnection();
connection.setClientID("testclient");
TopicSession session = connection.createTopicSession(false,Session.AUTO_ACKNOWLEDGE);
TopicSubscriber subscriber;
Topic topic1 = (Topic) ic.lookup("jmsserver1@myTopic");
Topic topic2 = (Topic) ic.lookup("jmsserver2@myTopic");
subscriber = session.createDurableSubscriber(topic1,"testSubscription","",false);
subscriber = session.createDurableSubscriber(topic2,"testSubscription","",false);
给我
Exception in thread "main" weblogic.jms.common.JMSException: [JMSClientExceptions:055037]Subscription testSubscription is in use
在 weblogic 控制台中,第一个订阅是创建的testSubscription
,myJmsModule!jmsserver1@myTopic
而不是第二个。
我能做些什么 ?