Informix 的数据源最低必需设置
这些属性随数据库供应商对 JDBC 驱动程序实现的要求不同而有所不同。 您必须对配置的每个数据源设置适当的属性。 这些设置适用于 Informix® 数据源。
- Informix JDBC Driver
Informix JDBC 驱动程序是 4 类 JDBC 驱动程序,用于提供对 Informix 数据库的 JDBC 访问。
Informix JDBC 驱动程序支持一阶段数据源:
需要以下 JDBC 驱动程序文件:com.informix.jdbcx.IfxConnectionPoolDataSource
需要以下 DataStoreHelper 类:ifxjdbc.jar ifxjdbcx.jar
需要有效的认证别名。com.ibm.websphere.rsadapter.InformixDataStoreHelper需要以下属性:- serverName
服务器上 Informix 实例的名称。 示例:ol_myserver。
- portNumber
实例所侦听的端口。 示例:1526。
- ifxIFXHOST
运行您所要连接的 Informix 数据库的机器的 IP 地址或主机名。 示例:myserver.mydomain.com。
要支持 IPv6:在 AIX 和 Solaris 上,带有修订包 1 的 IBM Informix Dynamic Server 10.00 支持 IPv6 标准。 要使用其中一个 Informix 发行版对 WebSphere Application Server 连接启用 IPv6,请对 ifxIFXHOST 属性输入完整的 IPv6 主机名。
- databaseName
数据源从中获取连接的数据库的名称。 示例:Sample。
- informixLockModeWait
虽然此属性并非必需,但是它使您能够设置 Informix 软件等待锁定的秒数。 缺省情况下,Informix 代码无法立即捕获锁定时,它将抛出异常。 示例:2。
- serverName
- Informix JDBC 驱动程序 (XA)
Informix JDBC 驱动程序 (XA) 是 4 类 JDBC 驱动程序,用于提供对 Informix 数据库的符合 XA 标准的 JDBC 访问。
Informix JDBC 驱动程序 (XA) 支持两阶段数据源:
需要以下 JDBC 驱动程序文件:com.informix.jdbcx.IfxXADataSourceifxjdbc.jar ifxjdbcx.jar要使用 SQLJ:如果您计划使用 SQLJ 来执行查询,那么此提供程序还需要驱动程序文件 ifxsqlj.jar。
需要以下 DataStoreHelper 类:com.ibm.websphere.rsadapter.InformixDataStoreHelper需要有效的认证别名。
需要以下属性:- serverName
服务器上 Informix 实例的名称。 示例:ol_myserver。
- portNumber
实例所侦听的端口。 示例:1526。
- ifxIFXHOST
运行您所要连接的 Informix 数据库的机器的 IP 地址或主机名。 示例:myserver.mydomain.com。
要支持 IPv6:在 AIX 和 Solaris 上,带有修订包 1 的 IBM Informix Dynamic Server 10.00 支持 IPv6 标准。 要使用其中一个 Informix 发行版对 WebSphere Application Server 连接启用 IPv6,请对 ifxIFXHOST 属性输入完整的 IPv6 主机名。
- databaseName
数据源从中获取连接的数据库的名称。 示例:Sample。
- ifxIFX_XASPEC
当多个用户访问同一个数据库时,请开启此属性。 激活此属性将在同一个全局事务标识中强制执行 XA 事务的紧密耦合,并要求各个事务共享锁定空间。
这些参数有助于在存在多个客户机请求时避免发生事务管理错误。
将 ifxIFX_XASPEC 属性的值指定为 Y 或 y 表示开启此属性;由于设置不区分大小写,因此这两个字符都有效。 将此属性的值指定为 N 或 n 表示关闭此属性。 WebSphere Application Server 将忽略所有其他值。 对此属性进行的设置将覆盖 Informix 数据库系统设置。
- informixLockModeWait
虽然此属性并非必需,但是它使您能够设置 Informix 软件等待锁定的秒数。 缺省情况下,Informix 代码无法立即捕获锁定时,它将抛出异常。 示例:2。
- serverName
- Informix 使用 IBM JCC 驱动程序
Informix IBM JCC Driver 是 Informix 的一阶段落实提供程序,它使用 IBM Data Server Driver for JDBC and SQLJ。 IBM 数据服务器驱动程序符合 JDBC 4.0 标准,并且是下一代通用 JCC 驱动程序。
您可以在 V7.0 及更高版本的节点中配置此提供程序。
支持下列一阶段数据源:com.ibm.db2.jcc.DB2ConnectionPoolDataSource需要下列 JDBC 驱动程序文件:
并且,需要以下 DataStoreHelper 类:db2jcc4.jar db2jcc_license_cu.jar db2jcc_license_cisuz.jarcom.ibm.websphere.rsadapter.InformixJccDataStoreHelper此提供程序需要有效的认证别名。
以下是必需属性:- serverName - Informix 服务器的 TCP/IP 地址或主机名。
- portNumber - Informix 服务器所使用的 TCP/IP 端口号。
- databaseName - 数据源获取连接的数据库的名称。 示例:Sample。
- 使用 IBM JCC 驱动程序 (XA) 的 Informix
Informix IBM JCC Driver (XA) 是 Informix 的两阶段落实提供程序,它使用 IBM Data Server Driver for JDBC and SQLJ。 IBM 数据服务器驱动程序符合 JDBC 4.0 标准,并且是下一代通用 JCC 驱动程序。
您可以在 V7.0 及更高版本的节点中配置此提供程序。
支持下列两阶段数据源:com.ibm.db2.jcc.DB2XADataSource需要下列 JDBC 驱动程序文件:
并且,需要以下 DataStoreHelper 类:db2jcc4.jar db2jcc_license_cu.jar db2jcc_license_cisuz.jarcom.ibm.websphere.rsadapter.InformixJccDataStoreHelper避免麻烦: 如果计划将 SQLJ 用于查询,那么此提供程序还需要驱动程序文件ifxsqlj.jar。此提供程序需要有效的认证别名。
以下是必需属性:- serverName - Informix 服务器的 TCP/IP 地址或主机名。
- portNumber - Informix 服务器所使用的 TCP/IP 端口号。
- databaseName - 数据源获取连接的数据库的名称。 示例:Sample。
避免麻烦: 如果在本地事务而不是全局事务中发出 SQL 语句,那么不能将 Informix XA 数据源与 ANSI 数据库配合使用。 这一方案可能发生在应用程序代码或应用程序服务器组件(如调度程序)内。 如果遇到该问题,那么会记录以下消息:java.sql.SQLException: 已在事务中。 at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:398) at com.informix.jdbc.IfxSqli.a(IfxSqli.java:3247) at com.informix.jdbc.IfxSqli.E(IfxSqli.java:3556) at com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2382) at com.informix.jdbcx.IfxXASqli.receiveMessage(IfxXASqli.java:120) at com.informix.jdbc.IfxSqli.X(IfxSqli.java:7926) at com.informix.jdbc.IfxSqli.a(IfxSqli.java:854) at com.informix.jdbc.IfxSqli.executeCommand(IfxSqli.java:749) at com.informix.jdbc.IfxResultSet.b(IfxResultSet.java:293) at com.informix.jdbc.IfxStatement.c(IfxStatement.java:1269) at com.informix.jdbc.IfxStatement.b(IfxStatement.java:423) at com.informix.jdbc.IfxStatement.executeUpdate(IfxStatement.java:277) at com.informix.jdbc.IfxSqliConnect.setTransactionIsolation(IfxSqliConnect.java:2565)要避免此问题,请注意以下事项:- 切换到非 ANSI 数据库。
- 如果应用程序触发错误,请更新应用程序,使其总是运行在全局事务中。
- 使用 IBM DB2 JDBC 通用驱动程序的 Informix
Informix JDBC Driver 是符合 JDBC 3.0 的类型 4 JDBC 驱动程序,提供对 Informix 数据库的访问。
此提供程序支持下列一阶段数据源:com.ibm.db2.jcc.DB2ConnectionPoolDataSource需要下列 JDBC 驱动程序文件:
并且,需要以下 DataStoreHelper 类:db2jcc.jar db2jcc_license_cu.jar db2jcc_license_cisuz.jarcom.ibm.websphere.rsadapter.InformixJccDataStoreHelper此提供程序需要有效的认证别名。
以下是必需属性:- serverName - Informix 服务器的 TCP/IP 地址或主机名。
- portNumber - Informix 服务器所使用的 TCP/IP 端口号。
- databaseName - 数据源获取连接的数据库的名称。 示例:Sample。
- 使用 IBM DB2 JDBC 通用驱动程序 (XA) 的 Informix
Informix 使用 JDBC 驱动程序 (XA) 是符合 JDBC 3.0 的类型 4 JDBC 驱动程序,提供对 Informix 数据库的符合 XA 的 JDBC 访问权。
此提供程序支持下列两阶段数据源:com.ibm.db2.jcc.DB2XADataSource需要下列 JDBC 驱动程序文件:
并且,需要以下 DataStoreHelper 类:db2jcc.jar db2jcc_license_cu.jar db2jcc_license_cisuz.jarcom.ibm.websphere.rsadapter.InformixJccDataStoreHelper此提供程序需要有效的认证别名。
以下是必需属性:- serverName - Informix 服务器的 TCP/IP 地址或主机名。
- portNumber - Informix 服务器所使用的 TCP/IP 端口号。
- databaseName - 数据源获取连接的数据库的名称。 示例:Sample。
避免麻烦: 如果在本地事务而不是全局事务中发出 SQL 语句,那么不能将 Informix XA 数据源与 ANSI 数据库配合使用。 这一方案可能发生在应用程序代码或应用程序服务器组件(如调度程序)内。 如果遇到该问题,那么会记录以下消息:java.sql.SQLException: 已在事务中。 at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:398) at com.informix.jdbc.IfxSqli.a(IfxSqli.java:3247) at com.informix.jdbc.IfxSqli.E(IfxSqli.java:3556) at com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2382) at com.informix.jdbcx.IfxXASqli.receiveMessage(IfxXASqli.java:120) at com.informix.jdbc.IfxSqli.X(IfxSqli.java:7926) at com.informix.jdbc.IfxSqli.a(IfxSqli.java:854) at com.informix.jdbc.IfxSqli.executeCommand(IfxSqli.java:749) at com.informix.jdbc.IfxResultSet.b(IfxResultSet.java:293) at com.informix.jdbc.IfxStatement.c(IfxStatement.java:1269) at com.informix.jdbc.IfxStatement.b(IfxStatement.java:423) at com.informix.jdbc.IfxStatement.executeUpdate(IfxStatement.java:277) at com.informix.jdbc.IfxSqliConnect.setTransactionIsolation(IfxSqliConnect.java:2565)