java - ActiveMQ 不活跃代理

标签 java spring spring-boot activemq

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

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;
        }
    }
}

最佳答案

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

故障转移传输的使用导致创建成功,因为故障转移传输正在执行您要求它做的事情,即重复尝试建立连接,直到完成配置的尝试次数。一旦故障转移传输放弃,调用类似创建 session 的方法将阻塞并最终抛出错误。或者,您可以设置一个异常监听器,一旦连接关闭,该监听器就会发出信号,因为故障转移传输用完了重新连接尝试。

关于java - ActiveMQ 不活跃代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57573271/

相关文章:

java - 如何在 Spring Boot 项目中添加新的 ObjectMapper

java - 使用 Spring 和 App Engine 任务队列处理非英语 URL

java - 找不到 org.dstoval :onejar-maven-plugin-jar 失败

java - 解码具有与父级和子级相同标记的 JAXB 元素

java - 使变量可以被所有方法访问

java - Spring 3.0如何实现脚手架

java - 如果它们在不同的文件夹中,如何在 Spring Controller 中提供 View 页面?

spring-boot - @WebMvcTest 是否需要 @SpringBootApplication 注释?

java - 获取 angular.js 文件 net::ERR_ABORTED

java - 这个随机出生日期生成器有什么问题?