gpt4 book ai didi

java - Weblogic jms 分布式主题

转载 作者:行者123 更新时间:2023-11-30 09:00:13 25 4
gpt4 key购买 nike

使用 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 控制台中,myJmsModule!jmsserver1@myTopic 上的第一个订阅 testSubscription 是创建的,而不是第二个。

我能做什么?

最佳答案

您必须手动删除持久订阅,WLS 不会自动删除

https://docs.oracle.com/cd/E17904_01/web.1111/e15493/dist_topics.htm#WLMDB10013

设置自动删除持久订阅:-

您可以将 MDB 配置为在从服务器取消部署或删除 MDB 时自动删除持久主题订阅。要将 MDB 配置为自动删除持久主题订阅,请将持久订阅删除设置为 True。默认情况下,持久订阅删除设置为 False

默认情况下它是假的,因此它不会自动清除持久订阅者。

关于java - Weblogic jms 分布式主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26887584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com