【发布时间】:2020-01-18 00:58:33
【问题描述】:
我有一个远程 java 客户端,它在 Wildfly 10 上查找 JMS 连接工厂,一切正常。这只是一个测试程序;一个简单的 JMS 聊天系统。当我启动多个聊天客户端实例时,有时会出现以下消息:
WARN: AMQ212051: Invalid concurrent session usage. Sessions are not supposed to be used by more than one thread concurrently.
跟踪。
现在我想修复这个警告,因此我需要一个池连接工厂。但是池连接工厂不能远程使用(我读到它不应该远程可用)。
当我想在本地启动多个 JMS 聊天客户端时,如何解决此警告?
我知道我只是不同的机器时不会出现错误。
这是工作的非池化远程代码(但带有警告)
final Properties properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
properties.put(Context.PROVIDER_URL, "http-remoting://127.0.0.1:8080");
try {
context = new InitialContext(properties);
ConnectionFactory connectionFactory = (ConnectionFactory) context.lookup("jms/RemoteConnectionFactory");
jmsContext = connectionFactory.createContext("quickstartUser", "quickstartPwd1!");
} catch (NamingException e) {
e.printStackTrace();
}
【问题讨论】:
-
我的回答是否解决了您的问题?如果是这样,请将其标记为正确,以帮助将来有相同问题的其他用户。如果不是,请详细说明原因。谢谢!