gpt4 book ai didi

java - JMS-从远程 Glassfish 接收消息

转载 作者:行者123 更新时间:2023-11-30 03:02:18 25 4
gpt4 key购买 nike

我正在开发一个使用 JMS 作为消息传递层的应用程序。我还使用 glassfish 来托管 jms/mq 后端。该应用程序能够使用我最初设置的 glassfish 3.1 服务器中的连接工厂和主题来执行发布/订阅消息传递。我现在有另一个 glassfish 实例 (4.1),它托管一套新应用程序使用的一组新功能,但我仍然需要使用第一个 glassfish 服务器广播的消息。事实上,客户端使用特定于 glassfish 4.1 的新库,因此我无法直接连接到 glassfish1 服务器。

我已遵循有关多服务器环境 ( https://docs.oracle.com/cd/E19798-01/821-1841/bncfp/index.html ) 的教程,并且独立 Java 客户端均使用新 glassfish 服务器中设置的连接工厂来连接到旧 glassfish 服务器。我知道正在建立连接,因为如果我停止 glassfish1,我会收到连接丢失错误等。

相关客户端代码如下:

        System.setProperty("org.omg.CORBA.ORBInitialHost", "10.20.10.52");
System.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
try {
try {
ctx = new InitialContext();
} catch (NamingException ex) {
ex.printStackTrace();
}
ConnectionFactory cf = (ConnectionFactory) ctx.lookup("jms/ConnectionFactory");
Connection connection = cf.createConnection();
jmsContext = cf.createContext(Session.AUTO_ACKNOWLEDGE);
topic = (Topic) ctx.lookup("jms/Topic");
updateShipperConsumer = jmsContext.createConsumer(topic);
jmsProducer = jmsContext.createProducer();

logger.info("Started JMS successfully!");
} catch (NamingException ex) {
ex.printStackTrace();
} catch (JMSException ex) {
Logger.getLogger(LamtecJMSSystemImpl.class.getName()).log(Level.SEVERE, null, ex);
}
}

jms/ConnectionFactory jndi 是 glassfish2 上的本地连接工厂,其 AddressList 属性设置为 glassfish1:7676。按照教程的建议,glassfish1 上有一个相应的同名连接工厂。查看 glassfish1 服务器上的 imq 日志文件,我发现已建立来自 glassfish2 的连接。
我不确定我应该对主题 jndi (我在本地以及远程服务器上都有)进行查找,但我认为这不会产生任何影响。

根据我上面引用的教程,我已经完成了所需的配置和代码方面的所有操作,但我仍然没有在客户端中收到任何 jms 消息。有什么想法吗?

最佳答案

我可以就 JMS 队列提供建议,可能主题相似或相同的解决方案。您可以在两台服务器上创建具有相同名称的队列,并让第一个队列使用 glassfish 配置将其消息推送到第二个队列,因此让 imq 代理来完成这项工作。使用属性“AddressList”在第一台服务器上配置 jms 连接工厂,其值为“mq://host2:port2”以及第二个代理的设置。

请参阅 OSCM 服务目录中此类配置的 glassfish 资源模板 https://github.com/servicecatalog/development/blob/master/oscm-installation/domains/bes_domain/installer/resources-template.xml

示例是连接工厂“jms/bss/masterIndexerQueueFactory”,您可以在此模板中找到它。

有关开源项目的更多信息 OSCM Cloud Service Management Software

关于java - JMS-从远程 Glassfish 接收消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35655552/

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