如何设置队列生产者超时?

发布于 2024-08-14 05:56:05 字数 609 浏览 8 评论 0原文

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

我的测试步骤:

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

我期望的是出现异常,但没有出现任何内容并且程序挂起。程序停止于:

sender.send(objMsg);

我已经添加了一些超时设置,但仍然不起作用:

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

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

此致, 克里斯

I am testing WebLogic 10.3.1 JMS, but there has a problem.

My Testing step:

  1. Start WebLogic Server
  2. Start JMS Client
  3. Client send a object to WebLogic JMS and server received the object.
  4. Stop WebLogic Server
  5. Send another object to WebLogic JMS.

What I expect is a exception come out, but there have not anything appear and program hanged. Program stopped at:

sender.send(objMsg);

I have add some timeout settings, but still not working:

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

Is there any way to produce exception in this case? Thank You Very Much.

Best Regards,
Chris

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

吻安 2024-08-21 05:56:05

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

You can try putting timeout in send method. something similar to following:
sender.send(objMsg, Message.DEFAULT_DELIVERY_MODE, Message.DEFAULT_PRIORITY, 10000);

月光色 2024-08-21 05:56:05

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

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

I suspect the WebLogic transport is hung and hasn't detected the server has gone - and the send is blocked in the transport. Unless WebLogic JMS are using a separate thread internally, there's no a timeout will help.

IMHO, WebLogic support are the only guys who'll be able to help you on this one (looks like a bug).

似梦非梦 2024-08-21 05:56:05

找到解决方案:

请添加这两个参数:

-Dsun.net.client.defaultConnectTimeout=30000
-Dsun.net.client.defaultReadTimeout=30000

Solution Found:

Please add these 2 parameters:

-Dsun.net.client.defaultConnectTimeout=30000
-Dsun.net.client.defaultReadTimeout=30000
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文