TopicConnection.createTopicSession 有时会在一个环境中挂起,但工作正常 在另一个环境中。
环境:JBoss5.1、jdk1.6.0_45、RHEL 5.8、Dell VM-ware
下面是代码。
TopicConnectionFactory_factory = (TopicConnectionFactory)context.lookup("java:JmsXA");
TopicConnection_connection = _factory.createTopicConnection();
TopicSession _session = _connection.createTopicSession(false, 1); --这是它挂起的地方。
主题_topic = (主题)context.lookup(s);
TopicPublisher _publisher = _session.createPublisher(_topic);
_connection.start();
我觉得这可能是一些与服务器配置相关的问题。请提出您的建议。
最佳答案
这是 Jboss 消息传递初始化进程与 Web 应用程序进程之间的竞争条件。
该程序在服务启动期间执行。线程 sleep 1 秒后,现在工作正常。
更改前
TopicConnectionFactory_factory = (TopicConnectionFactory)context.lookup("java:JmsXA");
TopicConnection_connection = _factory.createTopicConnection();
TopicSession _session = _connection.createTopicSession(false, 1);//这是它挂的地方。
主题_topic = (主题)context.lookup(s);
TopicPublisher _publisher = _session.createPublisher(_topic);
_connection.start();
更改后
TopicConnectionFactory_factory = (TopicConnectionFactory)context.lookup("java:JmsXA");
TopicConnection_connection = _factory.createTopicConnection();
Thread.sleep(1000);//引入这一行后,就可以正常工作了。
TopicSession _session = _connection.createTopicSession(false, 1);
主题_topic = (主题)context.lookup(s);
TopicPublisher _publisher = _session.createPublisher(_topic);
_connection.start();
关于java - JBoss 5.1 - TopicConnection.createTopicSession 有时会挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21477139/