6.3. 检测死连接
只要它从代理接收数据,客户端就会认为连接处于活动状态。通过为 client-failure-check-period
属性提供一个值,将客户端配置为检查其连接失败。网络连接的默认检查周期为 30,000 毫秒或 30 秒,而 in-VM 连接的默认值为 -1,这意味着如果未收到任何数据,客户端永远不会从其一侧失败连接。
通常,您可以将检查周期设置为比代理连接时长使用的值小得多,这样可确保客户端能够在临时故障时重新连接。
设置检测已死连接的检查周期
以下示例演示了如何将检查周期设置为 10,000 毫秒。
流程
如果您使用 JNDI,请在 JNDI 上下文环境中设置检查周期(
jndi.properties
),例如:java.naming.factory.initial=org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory connectionFactory.myConnectionFactory=tcp://localhost:61616?clientFailureCheckPeriod=10000
如果没有使用 JNDI,请通过将值传递给
ActiveMQConnectionFactory.setClientFailureCheckPeriod()
来直接设置检查周期。ConnectionFactory cf = ActiveMQJMSClient.createConnectionFactory(...) cf.setClientFailureCheckPeriod(10000);