Utilización de pureQuery en modalidad dinámica frente a la modalidad estática para DB2 e Informix

El uso de IBM® Optim PureQuery Runtime es otra forma para que la API Java™ Persistence API (JPA) acceda a las bases de datos DB2 e Informix. IBM Optim PureQuery Runtime soporta el lenguaje de consulta estructurado (SQL) estático.

Antes de empezar

Importante: BatchLimit es una propiedad configurable. El valor predeterminado para DB2 es 100 y para Informix el valor predeterminado es 0. Si define batchLimit en 0, no se produce el proceso por lotes. Para que una aplicación obtenga un proceso por lotes heterogéneo para el base de datos Informix del programa de fondo, batchLimit se configura en el archivo persistence.xml. Un ejemplo de cómo definir batchLimit en 100 es el siguiente:
<property name="openjpa.jdbc.DBDictionary" value="batchLimit=100"/> 

Acerca de esta tarea

El paquete de características para aplicaciones OSGi y la API Java Persistence API (JPA) 2.0 han introducido soporte para IBM Optim PureQuery Runtime 2.2.0.2 y posterior. La nueva característica añadida para IBM Optim PureQuery Runtime 2.2.0.3 soporta Informix y las aplicaciones DB2 para utilizar pureQuery en la modalidad DINÁMICA.

Esto se consigue configurando pdqProperties en el origen de datos en el entorno Java Enterprise Edition (Java EE). O bien, definiendo pdqProperties en el URL de conexión en el entorno Java Standard Edition (Java SE).

Si pdqProperties no está definido, pureQuery se ejecuta en la modalidad compatible, que significa que el archivo pdqxml se empaqueta en los archivos JAR (archivador Java) de la aplicación.

Existen varios temas que hacen referencia a pdqProperties en el Information Center de IBM Integrated Data Management.

Procedimiento

  1. Al definir un origen de datos en un entorno Java EE, añada una propiedad personalizada pdqProperties y defina un valor de serie en una propiedad IBM Optim PureQuery Runtime válida. En la tabla siguiente, se muestra un ejemplo de executionMode(DYNAMIC) para utilizar la modalidad dinámica de pureQuery. Se puede especificar una cualquier propiedad válida de IBM Optim PureQuery Runtime para obtener la ejecución dinámica. Si pdqProperties contiene la propiedad pureQuery Xml(ubicación-archivo-pdqxml), IBM Optim PureQuery Runtime utiliza el SQL en la modalidad ESTÁTICA que se encuentra en el archivo pdqxml. Esta propiedad pureQueryXML contiene la ubicación del archivo pdqxml.
    Atención: Se da por supuesto que el archivo pdqxml se ha enlazado previamente en la base de datos.
    Tabla 1. Ejemplos de valores de pdqProperties para DB2 e Informix. Ejemplos de valores de pdqProperties para DB2 e Informix
    pdqProperties= DB2 de fondo Informix
    executionMode(DYNAMIC) ejecución dinámica ejecución dinámica
    executionMode(STATIC),pureQueryXML(c:/temp/ItemEJB.pdqxml)
    Atención: Son necesarios executionMODE(DYNAMIC) y executionMode(STATIC) para las ejecuciones dinámica y estática.

    Para la modalidad de ejecución estática, la especificación del archivo pdqxml sigue la documentación de IBM Optim PureQuery Runtime.

    pureQueryXML(ubicación-archivo-pdqxml) es una de muchas formas para especificar la ubicación-archivo-pdqxml. La ubicación del archivo pdqxml es la vía de acceso del archivo pdqxml. Por ejemplo, c:/temp/ItemEJB.pdqxml.

    ejecución estática ND (se ignora)
  2. En un entorno de Java SE, pdqProperties se puede definir en el connectionURL. Existen dos formas para especificar pdqProperties en connectionURL:
    1. Utilice openjpa.connectionProperties Por ejemplo:
      <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. Utilice openjpa.ConnectionURL. Por ejemplo:
      <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"/>
    Atención: La ubicación del archivo pureQueryXml debe otorgar permisos de lectura-escritura para que IBM Optim PureQuery Runtime actualice el archivo.
    Atención: El origen de datos que se ha definido para ejecutar IBM Optim PureQuery Runtime no debe estar compartido con aplicaciones que ejecutan el SQL en JDBC.
    Si pdqProperties está definido en el origen de datos de un URL de conexión, aunque el archivo pdqxml esté empaquetado dentro del archivo JAR de la aplicación, se ignora el archivo pdqxml. Sin embargo, si no se define pdqProperties, el tiempo de ejecución busca el archivo pdqxml que está en el archivo JAR de la aplicación (es decir, la modalidad compatible). Si se encuentra el archivo pdqxml, el valor es la modalidad de ejecución STATIC (ESTÁTICA). De lo contrario, todos los SQL se ejecutan en JDBC.

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tejb_pdqdynamic
File name: tejb_pdqdynamic.html