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,最终委托给 资源适配器 的特定 物理连接

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

diag d19ebefefdbf2bac343521fa48cab709
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.