8.2. 使用 JCA 概述


JCA 通过添加 驱动程序与应用服务器之间的双向通信来规范数据库 驱动程序 的概念。该驱动程序成为由 javax. resource.spi.ResourceAdapter 代表的资源适配器

有两个重要的接口:

  • javax.resource.spi.ManagedConnectionFactory 由资源适配器实施。
  • javax.resource.spi.ConnectionManager 由应用服务器实施。

ManagedConnectionFactory 接口提供两个目的:

  • Object createConnectionFactory(ConnectionManager cxManager) 方法可用于为应用程序代码使用的给定 EIS(或数据库或数据库或消息代理)生成 连接工厂。返回的 对象 可以是:

    • 通用 javax.resource.cci.ConnectionFactory (此处未进一步介绍,请参阅 JCA 1.6,第 17 章: 通用客户端接口
    • EIS 特定连接工厂,如已知的 javax.sql.DataSourcejavax.jms.ConnectionFactory。它是 pax-transx- jdbc 和 pax-transx -jms 捆绑包使用的 连接工厂 类型。
  • javax.resource.spi.ManagedConnection ManagedConnectionFactory.createManagedConnection() 方法供 应用服务器 使用,创建到 EIS/database/broker 的实际物理连接。

ConnectionManager应用服务器 实施,供 资源适配器 使用。它是首次执行 QoS 操作(池、安全、事务管理)的应用服务器,最终将 资源适配器的 managedConnectionFactory 委派给创建 ManagedConnection 实例。流如下:

  1. 应用代码使用从 ManagedConnectionFactory.createConnectionFactory() 返回的对象,由 应用服务器 创建并公开 连接工厂。它可能是通用 CCI 接口,如 javax.sql.DataSource
  2. 这个 连接工厂 不会自行创建 连接,而是委派至 ConnectionManager.allocateConnection() 传递 资源适配器- 特定的 ManagedConnectionFactory
  3. 应用程序服务器 实施的 ConnectionManager 创建支持 对象、管理事务、池等,并且最终从传递 ManagedConnectionFactory 获取 物理(托管)连接
  4. 应用程序代码获取 连接,通常是由 应用服务器 创建的 wrapper/proxy,后者最终委派给 资源适配器 的特定 物理连接

下面是一个图,其中 应用服务器 创建了非CCI 连接工厂 (特定于 EIS)。只需 - 对 EIS 的访问(这里:数据库)是使用 javax.sql.DataSource 接口完成的,驱动程序的任务是提供 物理连接,而 应用服务器 会将其嵌套在(通常)执行池/enlist/安全性的代理中。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat