0

我在用:

  • 开班
    • AMQ(好像是分叉的activemq-5.11.0.redhat……版本)
  • EAP 7.2.3
  • 在本地调试时,我得到一些带有物理 ActiveMQManagedConnection 的 ~ConnectionProxy

我可以使用“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 的来源。也许它具有自动关闭功能。

4

1 回答 1

1

如果您在 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 的代理集成,那么您就不能。

于 2020-12-11T13:55:31.030 回答