假设在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次后(直到网络再次可用)?或者它会忽略断开连接的必要性吗?
答案 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次尝试后被删除。