完整概要文件和 Liberty 概要文件之间的配置差异:dataSource 元素和 jdbcDriver 元素
Liberty 概要文件中 dataSource 的配置与完整概要文件中数据源的配置之间存在一些差异。
- 数据源属性的名称不同
- ifxIFX_LOCK_MODE_WAIT,在完整概要文件中是 informixLockModeWait。
- supplementalJDBCTrace,在完整概要文件中是 supplementalTrace。
- 数据源属性的值不同
- beginTranForResultSetScrollingAPIs,缺省情况下,在 Liberty 概要文件中是 true。
- beginTranForVendorAPIs,缺省情况下,在 Liberty 概要文件中是 true。
- connectionSharing,缺省情况下,在 Liberty 概要文件中是 MatchOriginalRequest。
- statementCacheSize,缺省情况下,在 Liberty 概要文件中是 10。
- 数据源的 connectionSharing 属性
- Liberty 概要文件允许将 connectionSharing 配置为 MatchOriginalRequest 或 MatchCurrentState。缺省情况下,它是 MatchOriginalRequest。
- 完整概要文件允许以更细颗粒的方式配置 connectionSharing,其中,个别连接属性可以根据原始连接请求或连接的当前状态进行匹配。在完整概要文件中,connectionSharing 是位组合,这些位表示要根据连接的当前状态进行匹配的连接属性。在完整概要文件中,值为 0 表示根据原始连接请求来匹配所有属性;值为 -1 表示根据连接的当前状态来匹配所有属性。完整概要文件的缺省值为 1,这表示根据连接的当前状态来匹配隔离级别,以及根据原始连接请求来匹配所有其他属性。
- 数据源的持续时间属性可以使用 Liberty 概要文件中的单位来选择性地指定持续时间属性。例如,
请参阅 在 server.xml 文件中配置元素,以获取 dataSource 元素的可接受时间单位和格式。省略 Liberty 概要文件中的单位等价于完整概要文件中使用的缺省单位。<dataSource id="informix" jndiName="jdbc/informix" queryTimeout="5m" ...> <properties.informix ifxIFX_LOCK_MODE_WAIT="120s" .../> </dataSource>
- JDBC 驱动程序的配置
- 在 Liberty 概要文件中,可以采用相同的方法来配置具备 XA 功能及不具备 XA 功能的数据源实现类的不同 jdbcDriver 元素。此外,还可以对两者使用单个 jdbcDriver 元素。定义多个 jdbcDriver 元素并不会导致使用不同的类装入器。在 Liberty 概要文件中,jdbcDriver 元素总是使用与这些元素一起配置的共享库的类装入器。
- 在完整概要文件中,定义了一个指向 JDBC 驱动程序 JAR、压缩文件和本机文件的 JDBC 提供程序。必须为具备 XA 功能及不具备 XA 功能的数据源实现类定义单独的 JDBC 提供程序。
对于某些常用的 JDBC 驱动程序,Liberty 概要文件会根据驱动程序 JAR 的名称来推断数据源实现类名。因此,可以省略实现类名。例如:<jdbcDriver id="Derby" libraryRef="DerbyLib"/> <library id="DerbyLib"> <fileset dir="C:/Drivers/derby" includes="derby.jar" /> </library>
使用缺省实现类的可选属性来覆盖这些类,例如 javax.sql.DataSource、javax.sql.ConnectionPoolDataSource 和 javax.sql.XADataSource。
以下示例显示如何覆盖 Liberty 概要文件所选择的缺省 javax.sql.XADataSource 和 javax.sql.ConnectionPoolDataSource 实现。
有关 jdbcDriver 元素的更多信息,请参阅 在 server.xml 文件中配置元素。<jdbcDriver id="Derby" libraryRef="DerbyLib" javax.sql.XADataSource="org.apache.derby.jdbc.EmbeddedXADataSource" javax.sql.ConnectionPoolDataSource="org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource"/> <library id="DerbyLib"> <fileset dir="C:/Drivers/derby" includes="derby.jar" /> </library>