HornetQ客户端故障检查期

时间:2016-02-02 18:55:26

标签: jms jboss7.x hornetq

假设在30秒(默认client-failure-check-period)之后,由于网络连接问题,客户端没有收到来自服务器的任何数据包。

客户端现在是否会断开会话/连接?

假设现在我添加了这个配置:

<retry-interval>1000</retry-interval>
<retry-interval-multiplier>1.5</retry-interval-multiplier>
<max-retry-interval>60000</max-retry-interval>
<reconnect-attempts>1000</reconnect-attempts>

现在会发生什么?

客户端是否仍会断开与会话/连接的连接,但仅在尝试重新连接1000次后(直到网络再次可用)?或者它会忽略断开连接的必要性吗?

1 个答案:

答案 0 :(得分:0)

关于你的第一个问题,根据HornetQ文档,可以在17.2. Detecting failure from the client side下找到:

  

只要客户端从服务器接收数据,它就会认为连接仍然存在。

     

如果客户端没有收到client-failure-check-period毫秒的任何数据包,那么它将认为连接失败并将启动故障转移,或者调用任何FailureListener实例(如果是,则调用ExceptionListener实例)使用JMS)取决于它的配置方式。

因此,客户端将假定连接实际上已丢失并启动其失败过程。

关于第二个问题,同样根据HornetQ文档,可以在34.3. Configuring reconnection/reattachment attributes下找到:

  

reconnect-attempts。此可选参数确定在放弃和关闭之前重新连接尝试的总次数。值-1表示无限次尝试。默认值为0.

所以,是的,连接将在1000次尝试后被删除。