Informix 的数据源最低必需设置

这些属性随数据库供应商对 JDBC 驱动程序实现的要求不同而有所不同。 您必须对配置的每个数据源设置适当的属性。 这些设置适用于 Informix® 数据源。

  • Informix JDBC Driver

    Informix JDBC 驱动程序是 4 类 JDBC 驱动程序,用于提供对 Informix 数据库的 JDBC 访问。

    Informix JDBC 驱动程序支持一阶段数据源:
    com.informix.jdbcx.IfxConnectionPoolDataSource
    需要以下 JDBC 驱动程序文件:
    ifxjdbc.jar
    ifxjdbcx.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。

    • informixLockModeWait

      虽然此属性并非必需,但是它使您能够设置 Informix 软件等待锁定的秒数。 缺省情况下,Informix 代码无法立即捕获锁定时,它将抛出异常。 示例:2。

  • Informix JDBC 驱动程序 (XA)

    Informix JDBC 驱动程序 (XA) 是 4 类 JDBC 驱动程序,用于提供对 Informix 数据库的符合 XA 标准的 JDBC 访问。

    Informix JDBC 驱动程序 (XA) 支持两阶段数据源:
    com.informix.jdbcx.IfxXADataSource
    需要以下 JDBC 驱动程序文件:
    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 属性的值指定为 Yy 表示开启此属性;由于设置不区分大小写,因此这两个字符都有效。 将此属性的值指定为 Nn 表示关闭此属性。 WebSphere Application Server 将忽略所有其他值。 对此属性进行的设置将覆盖 Informix 数据库系统设置。

    • informixLockModeWait

      虽然此属性并非必需,但是它使您能够设置 Informix 软件等待锁定的秒数。 缺省情况下,Informix 代码无法立即捕获锁定时,它将抛出异常。 示例:2。

  • 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 驱动程序文件:
    db2jcc4.jar
    db2jcc_license_cu.jar
    db2jcc_license_cisuz.jar
    并且,需要以下 DataStoreHelper 类:
    com.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 驱动程序文件:
    db2jcc4.jar
    db2jcc_license_cu.jar
    db2jcc_license_cisuz.jar
    并且,需要以下 DataStoreHelper 类:
    com.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 驱动程序文件:
    db2jcc.jar
    db2jcc_license_cu.jar
    db2jcc_license_cisuz.jar
    并且,需要以下 DataStoreHelper 类:
    com.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 驱动程序文件:
    db2jcc.jar
    db2jcc_license_cu.jar
    db2jcc_license_cisuz.jar
    并且,需要以下 DataStoreHelper 类:
    com.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)