12.3.2. 创建 XA 数据源
您可以使用管理 CLI 或管理控制台创建 XA 数据源。
使用管理控制台定义 XA 数据源
-
导航到 Configuration
Subsystems Datasources & Drivers Datasources。 - 单击添加(+)按钮,然后选择 Add XA Datasource。
- 它打开 Add XA Datasource 向导,您可以在其中选择数据源类型并点击 Next。这会为您的数据库创建一个模板。向导的以下页面预先填充了特定于所选数据源的值。这使得数据源创建过程变得简单。
- 您可以在 Test Connection 页面上测试您的连接,然后完成数据源创建过程。
- 检查详情,再单击 Finish 以创建数据源。
使用管理 CLI 定义 XA 数据源
XA 数据源可以使用 the xa-data-source add management
CLI 命令来定义。
在受管域中,您将需要指定要使用的配置文件。根据管理 CLI 命令的格式,您将在命令前面使用 /profile=PROFILE_NAME
,或者传递 --profile=PROFILE_NAME
参数。
- 如果您还没有这样做,请安装相应的 JDBC 驱动程序并将其注册为核心模块。
使用 the
xa-data-source add
命令定义数据源,并指定适当的参数值。xa-data-source add --name=XA_DATASOURCE_NAME --jndi-name=JNDI_NAME --driver-name=DRIVER_NAME --xa-datasource-class=XA_DATASOURCE_CLASS --xa-datasource-properties={"ServerName"=>"HOST_NAME","DatabaseName"=>"DATABASE_NAME"}
有关这些参数值的提示,请参见下面的 Datasource Parameters 部分。
设置 XA 数据源属性.
定义 XA 数据源时至少需要一个 XA 数据源属性,或者在上一步中添加数据源时会收到错误。在定义 XA 数据源时未设置的任何属性都可以在之后单独设置。
设置服务器名称。
/subsystem=datasources/xa-data-source=XA_DATASOURCE_NAME/xa-datasource-properties=ServerName:add(value=HOST_NAME)
设置数据库名称。
/subsystem=datasources/xa-data-source=XA_DATASOURCE_NAME/xa-datasource-properties=DatabaseName:add(value=DATABASE_NAME)
具体示例,请参阅支持的数据库的 Datasource 配置示例。
数据源参数
- jndi-name
-
数据源的 JNDI 名称必须以
java:/ 或 java
:jboss/
开头。例如,java:jboss/datasources/ExampleDS
. - driver-name
驱动程序名称值取决于 JDBC 驱动程序是作为核心模块安装的还是 JAR 部署。
- 对于核心模块,驱动程序名称值将是其注册时为 JDBC 驱动程序提供的名称。
对于 JAR 部署,如果其
/META-INF/services/java.sql.Driver
文件中仅列出一个类,则驱动程序名称是 JAR 的名称。如果列出了多个类,则值为JAR_NAME + "_
" +DRIVER_CLASS_NAME
+ "_" +MAJOR_VERSION
+ "_" +MINOR_VERSION
,例如:mysql-connector-java-5.1.36-bin.jar_com.mysql.cj.jdbc.Driver_5_1
.部署 JDBC JAR 时,您还可以查看 JBoss EAP 服务器日志中的驱动程序名称。
WFLYJCA0018: Started Driver service with driver-name = mysql-connector-java-5.1.36-bin.jar_com.mysql.cj.jdbc.Driver_5_1
- xa-datasource-class
-
指定
javax.sql.XADataSource 类的 JDBC 驱动程序实施的 XA
数据源类。 - xa-datasource-properties
- 定义 XA 数据源时至少需要一个 XA 数据源属性,否则在尝试添加时会收到错误。其他属性也可以在定义后添加到 XA 数据源中。
有关所有可用数据源属性的完整列表,请参阅 Datasource Attributes 部分。