TopicConnection.createTopicSession有时会挂在一个环境中,并且工作正常
在另一个环境中

环境:JBoss5.1,jdk1.6.0_45,RHEL 5.8,Dell VM软件

下面是代码。

TopicConnectionFactory _factory =(TopicConnectionFactory)context.lookup(“ java:JmsXA”);

TopicConnection _connection = _factory.createTopicConnection();

TopicSession _session = _connection.createTopicSession(false,1); -这是挂的地方。

主题_topic =(Topic)context.lookup(s);

TopicPublisher _publisher = _session.createPublisher(_topic);

_connection.start();

我认为这可能是与服务器配置有关的问题。请提供您的建议。

最佳答案

这是Jboss消息传递的初始化过程和Web应用程序的过程之间的竞争条件。

服务启动期间正在执行该程序。经过1秒钟的线程睡眠,现在可以正常工作。

变更前

TopicConnectionFactory _factory =(TopicConnectionFactory)context.lookup(“ java:JmsXA”);

TopicConnection _connection = _factory.createTopicConnection();

TopicSession _session = _connection.createTopicSession(false,1); //这是挂的地方。

主题_topic =(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 =(Topic)context.lookup(s);

TopicPublisher _publisher = _session.createPublisher(_topic);

_connection.start();

09-25 20:34