2

我正在测试 WebLogic 10.3.1 JMS,但是有问题。

我的测试步骤:

  1. 启动 WebLogic 服务器
  2. 启动 JMS 客户端
  3. 客户端向 WebLogic JMS 发送一个对象,服务器接收到该对象。
  4. 停止 WebLogic 服务器
  5. 将另一个对象发送到 WebLogic JMS。

我期望的是一个异常出来,但没有任何东西出现并且程序被挂起。程序停止于:

sender.send(objMsg);

我添加了一些超时设置,但仍然无法正常工作:

((WLProducerImpl) sender).setSendTimeout(1000);
((WLConnection) connection).setReconnectPolicy(JMSConstants.RECONNECT_POLICY_PRODUCER);
((WLConnection) connection).setReconnectBlockingMillis(1000);

在这种情况下有什么方法可以产生异常吗?非常感谢你。

最好的问候,克里斯

4

3 回答 3

0

您可以尝试在发送方法中设置超时。类似于以下内容: sender.send(objMsg, Message.DEFAULT_DELIVERY_MODE, Message.DEFAULT_PRIORITY, 10000);

于 2009-12-23T05:24:28.080 回答
0

我怀疑 WebLogic 传输被挂起并且没有检测到服务器已经消失 - 并且发送在传输中被阻止。除非 WebLogic JMS 在内部使用单独的线程,否则没有超时会有所帮助。

恕我直言,WebLogic 支持是唯一能够在这方面为您提供帮助的人(看起来像一个错误)。

于 2009-12-31T16:05:06.957 回答
0

找到的解决方案:

请添加这两个参数:

-Dsun.net.client.defaultConnectTimeout=30000
-Dsun.net.client.defaultReadTimeout=30000
于 2010-01-08T07:26:08.283 回答