HikariCP 是 JCA 投诉连接池吗?
is HikariCP a JCA complaint connection pool?
我最近尝试用 wildfly 配置 HikariCP,我想知道,有了 JCA,我是否可以做一个标准的 JCA 特定配置来适应 HikariCP 连接池?
嗯,你的问题很混乱。让我们谈谈重点:
看来您想用 HikariCP 替换 IronJacamar。这是不可能的。 Hikari 是一个 JDBC 连接池,而 IronJacamar 是一个 JCA 容器。除了连接池(实际上不仅是 JDBC 个连接池),JCA 容器还能够进行资源适配器生命周期控制、消息驱动的 bean 处理、MDB 调用上的 EJB 特定线程转换等等。
关于在 JCA 容器中使用 HikariCP 作为资源适配器:几乎不可能。事实上,您可以围绕 Hikari 编写一个包装器以提供特定于 JCA 的配置,因为 JCA 是一个没有严格限制的广泛规范。然而,这将导致额外的开销,并没有特别的好处。另一个问题是 persistence.xml 处理部署:资源适配器的设计寿命比任何其他部署都长。这些与部署无关,只是为了提供一些每个人都可以使用的接口。如果您将 Hikari 管理为 JCA 适配器,则需要通过它的激活规范提供持久性信息。这里唯一的亮点是您可以在 JNDI 中注册 Hikari DataSource,为您的 persistence.xml 提供可靠的源路径。但是,很难预测资源适配器是在 JPA 子系统之前还是之后实例化。
没有特别的理由这样做。 Hikari 所能提供的唯一好处就是速度。 Java EE 与速度无关,它与可靠性和标准驱动架构有关。如果你需要那个速度,你最好保持在 SE 级别,避免所有容器的开销。
我最近尝试用 wildfly 配置 HikariCP,我想知道,有了 JCA,我是否可以做一个标准的 JCA 特定配置来适应 HikariCP 连接池?
嗯,你的问题很混乱。让我们谈谈重点:
看来您想用 HikariCP 替换 IronJacamar。这是不可能的。 Hikari 是一个 JDBC 连接池,而 IronJacamar 是一个 JCA 容器。除了连接池(实际上不仅是 JDBC 个连接池),JCA 容器还能够进行资源适配器生命周期控制、消息驱动的 bean 处理、MDB 调用上的 EJB 特定线程转换等等。
关于在 JCA 容器中使用 HikariCP 作为资源适配器:几乎不可能。事实上,您可以围绕 Hikari 编写一个包装器以提供特定于 JCA 的配置,因为 JCA 是一个没有严格限制的广泛规范。然而,这将导致额外的开销,并没有特别的好处。另一个问题是 persistence.xml 处理部署:资源适配器的设计寿命比任何其他部署都长。这些与部署无关,只是为了提供一些每个人都可以使用的接口。如果您将 Hikari 管理为 JCA 适配器,则需要通过它的激活规范提供持久性信息。这里唯一的亮点是您可以在 JNDI 中注册 Hikari DataSource,为您的 persistence.xml 提供可靠的源路径。但是,很难预测资源适配器是在 JPA 子系统之前还是之后实例化。
没有特别的理由这样做。 Hikari 所能提供的唯一好处就是速度。 Java EE 与速度无关,它与可靠性和标准驱动架构有关。如果你需要那个速度,你最好保持在 SE 级别,避免所有容器的开销。