以动态或静态方式对 DB2 和 Informix 使用 pureQuery

IBM® Optim™ PureQuery Runtime 是 Java™ 持久性 API (JPA) 用于访问 DB2® 和 Informix® 数据库的另一方式。IBM Optim PureQuery Runtime 支持静态结构化查询语言 (SQL)。

开始之前

要点: BatchLimit 是可配置属性。对于 DB2,缺省值为 100,对于 Informix,缺省值为 0。如果将 batchLimit 设置为 0,那么不会进行分批。为帮助应用程序获取针对 Informix 数据库后端的多机种分批,已在 persistence.xml 文件中配置 batchLimit。以下是如何将 batchLimit 设置为 100 的示例:
<property name="openjpa.jdbc.DBDictionary" value="batchLimit=100"/> 

关于此任务

OSGi 应用程序的功能部件包和 Java 持久性 API (JPA) 2.0 引入了对 IBM Optim PureQuery Runtime 2.2.0.2 及更高版本的支持。对 IBM Optim PureQuery Runtime 2.2.0.3 添加的新功能支持 Informix 和 DB2 应用程序以动态方式使用 pureQuery。

这是通过对 Java Enterprise Edition (Java EE) 环境中的数据源设置 pdqProperties 实现的。或者,对 Java Standard Edition (Java SE) 环境中的连接 URL 设置 pdqProperties。

如果未定义 pdqProperties,那么 pureQuery 以可兼容方式运行,这意味着 pdqxml 文件打包在应用程序 Java 归档 (JAR) 文件中。

有一些主题在 IBM Integrated Data Management 信息中心中引用了 pdqProperties。

过程

  1. 在 Java EE 环境中定义数据源时,应添加定制属性 pdqProperties 并将字符串值设置为有效 IBM Optim PureQuery Runtime 属性。 在下表中,显示了 executionMode(DYNAMIC) 示例以使用 pureQuery 动态方式。可指定任何有效 IBM Optim PureQuery Runtime 属性以获取动态执行。如果 pdqProperties 包含 pureQuery Xml(pdqxml-file-location) 属性,那么 IBM Optim PureQuery Runtime 会以静态方式使用它在 pdqxml 文件中找到的 SQL。此 pureQueryXML 属性包含 pdqxml 文件位置。
    注意: 假定先前针对数据库绑定了 pdqxml 文件。
    表 1. DB2 和 Informix 的 pdqProperties 设置示例. DB2 和 Informix 的 pdqProperties 设置示例
    pdqProperties= DB2 后端 Informix
    executionMode(DYNAMIC) 动态执行 动态执行
    executionMode(STATIC), pureQueryXML(c:/temp/ItemEJB.pdqxml)
    注意: executionMODE(DYNAMIC) 和 executionMode(STATIC) 是动态执行和静态执行所必需的。

    对于静态执行方式,pdqxml 文件规范遵循 IBM Optim PureQuery Runtime 文档。

    pureQueryXML(pdqxml-file-location) 是指定 pdqxml-file-location 的多种方式之一。pdqxml 文件的位置是 pdqxml 文件的路径。例如,c:/temp/ItemEJB.pdqxml。

    静态执行 不适用(已忽略)
  2. 在 Java SE 环境中,可对 connectionURL 设置 pdqProperties。可通过两种方法对 connectionURL 指定 pdqProperties:
    1. 使用 openjpa.connectionProperties 例如:
      <property name="openjpa.ConnectionProperties"
                value="DriverClassName=com.ibm.db2.jcc.DB2Driver, 
                                       Url='jdbc:db2://localhost:50000/demodb:pdqProperties=
                                           pureQueryXml(C:/wsjpa1/fvt/resources/demo.pdqxml);', 
                Username=myid, Password=secret" />
    2. 使用 openjpa.ConnectionURL。 例如:
      <property name="javax.persistence.jdbc.driver" value="com.ibm.db2.jcc.DB2Driver"/>
      <property name="javax.persistence.jdbc.url" 
                value="jdbc:db2:fvt2:pdqProperties=pureQueryXml(C:/wsjpa1/fvt/resources/demo.pdqxml);"/>
      <property name="javax.persistence.jdbc.user" value="myid"/>
      <property name="javax.persistence.jdbc.password" value="secret"/>
    注意: pureQueryXml 文件位置必须授予读/写许可权,IBM Optim PureQuery Runtime 才能更新该文件。
    注意: 定义为运行 IBM Optim PureQuery Runtime 的数据源不应与在 JDBC 中运行 SQL 的应用程序共享。
    如果对连接 URL 的数据源设置了 pdqProperties,那么即使 pdqxml 文件打包在应用程序 JAR 文件中,也会忽略该 pdqxml 文件。但是,如果未设置 pdqProperties,那么该运行时会搜索应用程序 JAR 文件中的 pdqxml 文件(这是可兼容方式)。如果发现 pdqxml 文件,那么设置为静态执行方式。否则,所有 SQL 在 JDBC 中运行。

指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tejb_pdqdynamic
文件名:tejb_pdqdynamic.html