繁体   English   中英

ActiveMQ 非活动代理

[英]ActiveMQ inactive broker

问题是我定义了一些可能处于非活动状态的代理 uri。 然后来自ActiveMQConnectionFactory createConnection不会抛出任何异常。 我需要处理这种情况,如果由于 uri 不可用而createConnection不起作用,那么我应该将我的服务标记为不健康。

boolean healthy = true;
Connection conn = null;
try {
    final ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("failover:(tcp://localhost:8080)?jms.prefetchPolicy.all=0&initialReconnectDelay=1000&maxReconnectDelay=30000&maxReconnectAttempts=20");
    conn = factory.createConnection(this.userName, this.password);
} catch (JMSException e) {
    healthy = false;
} finally {
    if (conn != null) {
        try {
            conn.close();
        } catch (JMSException e) {
            healthy = false;
        }
    }
}

因此,您希望创建连接失败并出现异常,但您也在使用故障转移传输? 你觉得这不矛盾吗?

故障转移传输使用导致创建成功,因为故障转移传输正在执行您要求它执行的操作,即反复尝试建立连接,直到进行配置的尝试次数。 一旦故障转移传输放弃,调用像 create session 这样的方法将阻塞并最终抛出错误。 或者,您可以设置一个异常侦听器,该侦听器将在连接关闭时发出信号,因为故障转移传输已用完重新连接尝试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM