Informix 的数据源最小要求设置
这些属性随数据库供应商对 JDBC 驱动程序实现的要求不同而有所不同。您必须对配置的每个数据源设置适当的属性。这些设置用于 Informix® 数据源。
- Informix JDBC 驱动程序
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.IfxXADataSource
ifxjdbc.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
- 使用 IBM JCC
驱动程序的 Informix
Informix IBM JCC 驱动程序是用于 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.jar
com.ibm.websphere.rsadapter.InformixJccDataStoreHelper
此提供程序需要有效的认证别名。
下列属性是必需的:- serverName - Informix 服务器的 TCP/IP 地址或主机名。
- portNumber - Informix 服务器所使用的 TCP/IP 端口号。
- databaseName - 数据源获取连接的数据库的名称。示例:Sample。
- Informix Using IBM JCC Driver (XA)
Informix IBM JCC 驱动程序 (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.jar
com.ibm.websphere.rsadapter.InformixJccDataStoreHelper
避免故障: 如果您计划使用 SQLJ 进行查询,那么此提供程序还需要驱动程序文件 ifxsqlj.jar。gotcha
此提供程序需要有效的认证别名。
下列属性是必需的:- serverName - Informix 服务器的 TCP/IP 地址或主机名。
- portNumber - Informix 服务器所使用的 TCP/IP 端口号。
- databaseName - 数据源获取连接的数据库的名称。示例:Sample。
避免故障: 如果在局部事务而不是全局事务中分发 SQL 语句,那么不能和 ANSI 数据库一起使用 InformixXA 数据源。这一方案可能发生在应用程序代码或应用程序服务器组件(如调度程序)内。如果遇到该问题,那么会记录以下消息:
gotchajava.sql.SQLException: Already in transaction. 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 驱动程序是兼容 JDBC 3.0 的 4 类 JDBC 驱动程序,提供对 Informix 数据库的访问权。
此提供程序支持下列一阶段数据源:com.ibm.db2.jcc.DB2ConnectionPoolDataSource
需要下列 JDBC 驱动程序文件:
并且,需要以下 DataStoreHelper 类:db2jcc.jar db2jcc_license_cu.jar db2jcc_license_cisuz.jar
com.ibm.websphere.rsadapter.InformixJccDataStoreHelper
此提供程序需要有效的认证别名。
下列属性是必需的:- serverName - Informix 服务器的 TCP/IP 地址或主机名。
- portNumber - Informix 服务器所使用的 TCP/IP 端口号。
- databaseName - 数据源获取连接的数据库的名称。示例:Sample。
- 使用 IBM DB2 JDBC 通用驱动程序 (XA) 的 Informix
Informix Using JDBC Driver (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.jar
com.ibm.websphere.rsadapter.InformixJccDataStoreHelper
此提供程序需要有效的认证别名。
下列属性是必需的:- serverName - Informix 服务器的 TCP/IP 地址或主机名。
- portNumber - Informix 服务器所使用的 TCP/IP 端口号。
- databaseName - 数据源获取连接的数据库的名称。示例:Sample。
避免故障: 如果在局部事务而不是全局事务中分发 SQL 语句,那么不能和 ANSI 数据库一起使用 InformixXA 数据源。这一方案可能发生在应用程序代码或应用程序服务器组件(如调度程序)内。如果遇到该问题,那么会记录以下消息:
gotchajava.sql.SQLException: Already in transaction. 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)