首页 > 解决方案 > ActiveMQManagedConnection (EAP/AMQ) 是否支持自动关闭?

问题描述

我在用:

我可以使用“try-with-resources”吗?

我不确定并且认为没有......因为 ActiveMQManagedConnection 5.11.0(我不知道 redhat 发生了什么变化)没有实现 Autoclosable。实现的 javax.resource.spi.ManagedConnection 也没有

https://github.com/apache/activemq/blob/activemq-5.11.0/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQManagedConnection.java#L53

我还没有找到这个 EAP ConnectionProxy 的来源。也许它具有自动关闭功能。

标签: autocloseableamq

解决方案


如果您在 OpenShift 上使用 Red Hat AMQ 6(基于 ActiveMQ 5.x),那么您将被困在 JMS 1.1 上。javax.jms.ConnectionJMS 1.1中的不扩展java.lang.AutoCloseable. Red Hat AMQ 7(基于ActiveMQ Artemis)实现了 JMS 2,并且javax.jms.Connection在 JMS 2 扩展了java.lang.AutoCloseable

Red Hat JBoss EAP 7.2.3 附带 ActiveMQ Artemis,因此如果您使用它(连同它的 JCA 资源适配器),那么您可以使用 try-with-resources。但是,如果您配置了一个 JCA 资源适配器以与基于 ActiveMQ 5.x 的代理集成,那么您就不能。


推荐阅读