2009-12-09 40 views
2

我正在测试WebLogic 10.3.1 JMS,但存在问题。如何设置队列生产者超时?

我的测试步骤:

  1. 启动WebLogic Server
  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); 

有什么办法来产生这种情况的例外?非常感谢你。

最好的问候, 克里斯

回答

0

发现的解决方案:

请加上这两个参数:

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

你可以尝试把超时的发送方法。类似于以下内容: sender.send(objMsg,Message.DEFAULT_DELIVERY_MODE,Message.DEFAULT_PRIORITY,10000);

0

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

恕我直言,WebLogic支持是唯一能够帮助你的人(看起来像一个bug)。

相关问题