Personalización y vinculación de perfiles SQLJ con la herramienta db2sqljcustomize

Personalice y vincule los perfiles SQLJ con la herramienta db2sqljcustomize antes de instalar la aplicación SQLJ en el servidor de aplicaciones.

Antes de empezar

Para llevar a cabo esta tarea, debe tener la aplicación SQLJ que se ha desplegado, pero la aplicación no debe instalarse en el servidor de aplicaciones. Si la aplicación ya se ha instalado en el servidor de aplicaciones, tendrá que volver a instalar la aplicación tras personalizar los perfiles. También necesitará perfiles serializados para la aplicación SQLJ.
En el caso de aplicaciones SQLJ que utilicen persistencia gestionada por contenedor, puede desplegar la aplicación de dos maneras:
  • Desplegar la aplicación SQLJ en el servidor de aplicaciones. Consulte el tema sobre el despliegue de aplicaciones SQLJ que utilizan la persistencia gestionada por contenedor (CMP) para obtener más información.
  • Desplegar aplicaciones SQLJ con la herramienta ejbdeploy. Consulte el tema sobre el despliegue de aplicaciones SQLJ que utilizan persistencia gestionada por contenedor (CMP) con la herramienta ejbdeploy.
Para aplicaciones SQLJ que utilizan persistencia gestionada por bean, consulte el tema sobre el despliegue de aplicaciones SQLJ que utilizan persistencia gestionada por bean, servlets o beans de sesión.

Acerca de esta tarea

Para sacar partido de las aplicaciones SQLJ en el servidor de aplicaciones, tiene que personalizar los perfiles SQLJ. El proceso de personalización aumenta los perfiles con información que es específica de la base de datos DB2. La base de datos utiliza esta información en tiempo de ejecución. De manera predeterminada, se crean cuatro paquetes de DB2 en la base de datos: un paquete para cada nivel de aislamiento.
El servidor de aplicaciones da soporte a la personalización y la vinculación de perfiles SQLJ en la consola administrativa o mediante scripts:
  • Para obtener soporte sobre la consola administrativa, consulte el tema sobre personalización y enlace de perfiles para aplicaciones SQLJ (Structured Query Language in Java™).
  • Para obtener soporte de scripts, consulte el tema sobre el grupo de mandatos de gestión de aplicaciones para el objeto AdminTask.

Procedimiento

  1. Asegúrese de que las tablas de base de datos necesarias existan, según se describe en el tema sobre despliegue de aplicaciones de acceso a datos.
  2. Transfiera los perfiles serializados al entorno en el que haya instalado la aplicación. De modo alternativo, utilice el mandato jar de Java para extraer los perfiles serializados del archivo JAR en el directorio EAR instalado.
  3. Añada la ubicación para los perfiles SQLJ y el archivo JAR de la aplicación a la variable classpath del entorno.
  4. Asegúrese de que las tablas de base de datos necesarias existan, según se describe en el tema sobre despliegue de aplicaciones de acceso a datos.
  5. Opcional: Si la aplicación no se ejecuta en un entorno en clúster, puede utilizar el script Ant para que la personalización resulte más sencilla. Si ejecuta una personalización de SQLJ de proceso por lotes contra un archivo EAR mediante la herramienta ejbdeploy, la herramienta genera un script Ant denominado nombre_aplicación.ear.xml. Puede utilizar este archivo de script para ejecutar el programa de personalización de DB2 contra los perfiles serializados en todos los archivos JAR de enterprise bean JAR del archivo EAR asociado. El script actualiza el archivo JAR de cada enterprise bean con un perfil serializado y sustituye los archivos JAR del archivo EAR existente por las versiones modificadas.
    [AIX Solaris HP-UX Linux Windows]La herramienta es:
    • [AIX][HP-UX][Solaris][Linux]ws_ant
    • [Windows]ws_ant.bat
    1. Cambie los valores del URL de la base de datos y las propiedades de usuario y contraseña de base de datos en ejbdeploy.sqlj.properties. Este archivo es un archivo común a todos los scripts Ant que se generan mediante el mandato ejbdeploy. El script ejbdeploy.sqlj.properties define las propiedades globales de:
      • El URL de la base de datos: db.url
      • El usuario: db.user
      • La contraseña: db.password
      El script Ant utiliza las propiedades de URL, usuario y contraseña de perfil serializado para personalizar el perfil. De forma predeterminada, las propiedades del perfil serializado se crean a partir de propiedades globales.
    2. Ejecute el script Ant especificando el destino properties. Por ejemplo:
      ws_ant -buildfile nombre_aplicación.ear.xml properties
      Este script crea el archivo de propiedades, nombre_aplicación.ear.properties. El archivo nombre_aplicación.ear.properties contiene las propiedades que especifican los nombres predeterminados de los paquetes que corresponden a cada perfil serializado del archivo EAR. A continuación se muestra un ejemplo de archivo de propiedades:
      url.MyEJB1.jar.DB2UDBNT_V8_1=jdbc:db2://localhost:50000/MyDB1
      user.MyEJB1.jar.DB2UDBNT_V8_1=dbuser
      password.MyEJB1.jar.DB2UDBNT_V8_1=dbpassword
      pkg.MyEJB1.jar.DB2UDBNT_V8_1=TEST
      url.MyEJB2.jar.DB2UDBNT_V8_1=jdbc:db2://localhost:50000/MyDB2
      user.MyEJB2.jar.DB2UDBNT_V8_1=dbuser  
      password.MyEJB2.jar.DB2UDBNT_V8_1=dbpassword
      pkg.MyEJB2.jar.DB2UDBNT_V8_1=WORK
    3. Utilice DB2 Control Center para identificar los paquetes instalados en la base de datos. El programa de personalización de SQLJ de DB2 requiere un URL de base de datos de tipo 4 con el formato:
      jdbc:db2://nombre_host:puerto/nombre_base_datos
      También requiere un usuario y una contraseña. El valor del puerto es 50000, a menos que lo haya modificado cuando ha instalado DB2.
    4. Cambie los nombres que utiliza el archivo de script para asegurarse de que ningún perfil de personalización entra en conflicto con los nombres de paquetes existentes en la base de datos. De manera predeterminada, los scripts Ant que se generan para los diferentes archivos EAR utilizan los mismos nombres de paquetes y sobregrabarán los paquetes existentes a menos que modifique los nombres. Los paquetes sobregrabados pueden ocasionar errores en tiempo de ejecución.

      DB2 utiliza los primeros siete caracteres del nombre de paquete. El programa de personalización de DB2 utiliza este nombre para crear cuatro paquetes en la base de datos. Por ejemplo, si especifica el nombre TEST, el programa de personalización de DB2 creará los paquetes llamados TEST1, TEST2, TEST3 y TEST4:

    5. Ejecute el script Ant. El script Ant actualiza el archivo EAR original con los perfiles serializados modificados.
      Avoid trouble Avoid trouble: Verifique que la variable classpath contenga en archivo db2jcc.jar. Este archivo se debe haber añadido a la variable de entorno classpath durante la instalación de DB2 V8 FixPak1 1. gotcha
      Un mandato Ant de ejemplo tiene el aspecto siguiente:
      ws_ant -Dwork.dir=tmp 
             -Dscript.property.file=other.properties
             -buildfile nombre_aplicación.ear.xml
      donde:
      • -buildfile especifica el archivo XML que se va a crear.
      • -Dscript.property.file especifica un archivo de propiedades distinto. Este parámetro es opcional. Si desea que el script Ant utilice otro archivo en lugar de nombre_aplicación.ear.properties, especifique la propiedad Dscript.property.file cuando ejecute el script.
      • -Dwork.dir especifica un directorio de trabajo temporal para el script. El script creará y suprimirá los archivos y subdirectorios de este directorio. Si el directorio de trabajo contiene archivos y directorios con el mismo nombre que los archivos y directorios que utiliza el script, éste borrará o sobregrabará los archivos y directorios. Este script crea y utiliza un directorio denominado tmp como su directorio de trabajo.
    6. Continúe instalando la aplicación en el servidor de aplicaciones..
  6. Ejecute la herramienta db2sqljcustomize para personalizar los perfiles SQLJ que correspondan al archivo JAR de cada enterprise bean. Cuando genera el código de despliegue, se crean los perfiles serializados (archivos con extensión .ser) que son específicos de la aplicación. Estos perfiles existen en el mismo directorio que los archivos SQLJ y deben personalizarse según el entorno para poderse utilizar. Cuando ejecuta el programa de personalización de SQLJ de DB2 en perfiles serializados, crea SQL estático en la base de datos que DB2 utilizará durante la ejecución. La fase de personalización crea cuatro paquetes de base de datos que contienen SQL estático, uno para cada nivel de aislamiento.
    1. Opcional: Considere la posibilidad de utilizar la herramienta de personalización para habilitar la colocación en memoria caché de contexto para las conexiones de orígenes de datos de la aplicación. El fixpack 6 de DB2 V8.1 proporciona la nueva opción de colocación en memoria caché con la herramienta db2sqljcustomize denominada db2optimize. Puede ejecutar esta opción si la aplicación utiliza el contexto de conexión explícito, en lugar del contexto por omisión.
      Avoid trouble Avoid trouble:
      • El soporte de colocación en memoria caché de contexto de SQLJ exige el controlador de DB2 con IBM® o la Versión 2.2 o posterior del controlador de JDBC de DB2 Universal con el APAR PQ87786 aplicado.
      • Si desea habilitar el almacenamiento en memoria caché de contexto para una aplicación o un bean BMP que almacene en memoria caché las conexiones entre los límites de las transacciones, no puede utilizar conexiones que se puedan compartir. Utilice el patrón obtener/utilizar/cerrar de uso de conexiones cuando invoque la opción db2optimize o se producirá una excepción de objeto cerrado. El código siguiente muestra un ejemplo de uso de conexión incorrecto para almacenamiento en memoria caché de contexto:
        utx.begin(); 
             cons =ds.getConnection( 
             request.getParameter("db.user"), 
             request.getParameter("db.password"));         
                 cmctx1 = new CM_context(cons);                       
                 #sql [cmctx1] {DELETE FROM cmtest WHERE id=1};     
         utx.commit(); 
               //La sentencia siguiente verifica el resultado: 
                 #sql [cmctx1] cursor1 = {SELECT id, name FROM cmtest WHERE id=1};
        En este caso, la sentencia Select obtiene una excepción de objeto cerrado. Para impedir que la excepción se produzca, cierre la conexión antes de confirmar la transacción. A continuación, obtenga una nueva conexión y un nuevo contexto antes de ejecutar la sentencia Select.
      gotcha
      En el ejemplo de código siguiente se ofrece una demostración de la sintaxis adecuada para ejecutar la opción en el perfil serializado:
      sqlj -db2optimize SQLJTransactionTest.sqlj
      db2sqljcustomize -url jdbc:db2://localhost:50000/nombre_bd -user NOMBRE_USUARIO -password CONTRASEÑA
      SQLJTransactionTest_SJProfile0.ser
    2. Ejecute la herramienta db2sqljcustomize para personalizar los perfiles SQLJ. Después de ejecutar correctamente el mandato db2sqljcustomize, existirán perfiles personalizados en el directorio desde el que emite el mandato. Si ejecuta el mandato db2sqljcustomize desde el directorio que contiene perfiles serializados que no se han personalizado, las versiones personalizadas sobregrabarán las versiones anteriores que tengan los mismos nombres.
      La sintaxis recomendada para ejecutar el mandato db2sqljcustomize es:
      db2sqljcustomize -url
      URL_JDBC -user NOMBRE_USUARIO  -password
      CONTRASEÑA 
      [-rootpkgname NOMBRE_PAQUETE]
      PERFIL_SERIALIZADO1
      PERFIL_SERIALIZADO2
      ...
      donde:
      • URL_JDBC es el URL de JDBC que se utiliza para acceder al sistema DB2 donde residen las tablas.
      • NOMBRE_USUARIO es un nombre de usuario válido para el sistema DB2 donde residen las tablas.
      • CONTRASEÑA es la contraseña del nombre de usuario especificado.
      • NOMBRE_PAQUETE es un nombre de miembro PDS (conjunto de datos particionado) con una longitud máxima de siete caracteres. Cada uno de los cuatros paquetes creados por el personalizador de perfiles comienza por este nombre al que se añade al final un número del 1 al 4. Si sólo personaliza un perfil serializado, este valor toma por omisión un nombre de perfil serializado abreviado y el parámetro -rootpkgname no es necesario. Si personaliza más de un perfil serializado con el mismo mandato, no hay ningún valor predeterminado y es necesario el parámetro -rootpkgname.
      • PERFIL_SERIALIZADO_Nº es el nombre del perfil serializado que está personalizando.
        • Para personalizar más de un perfil serializado con el mismo mandato, enumere varios archivos, separados por espacios.
        • Como alternativa, puede especificar el parámetro -rootpkgname para personalizar más de un perfil serializado con el mismo mandato.
      Nota: Las opciones siguientes proporcionan más control sobre el proceso de personalización.
      • -automaticbind yes especifica que se ejecute el programa de personalización de SQLJ de DB2 contra los perfiles serializados para crear SQL estático en la base de datos que la base de datos utilizará en tiempo de ejecución. La fase de personalización crea cuatro paquetes de base de datos que contienen SQL estático, uno para cada nivel de aislamiento.
      • -onlinecheck NO and -bindoptions "VALIDATE RUN" especifica valores para evitar errores durante una personalización de perfiles y garantiza una personalización satisfactoria.
  7. Actualice el archivo JAR para los enterprise beans con los perfiles serializados.
  8. Utilice el mandato jar para sustituir los perfiles serializados en el archivo JAR con los perfiles personalizados.
    Avoid trouble Avoid trouble: Los archivos personalizados deben colocarse en una ubicación que forme parte de la variable classpath de la aplicación, y deben existir antes que los perfiles serializados del archivo JAR. Si decide sustituir los perfiles serializados del archivo JAR, mantenga la estructura de directorios en la que existen los perfiles.gotcha
  9. Empaquete el archivo JAR para el enterprise bean, los servlets y los perfiles serializados en un archivo archivador de empresa (EAR).
  10. Instale la aplicación en el servidor de aplicaciones.
    Avoid trouble Avoid trouble: No seleccione Desplegar enterprise beans durante el proceso de instalación de aplicaciones en la consola administrativa. Si vuelve a desplegar los beans de empresa desde la consola administrativa, perderá los cambios de personalización que haya efectuado.gotcha

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=tdat_sqljcustwithtool
File name: tdat_sqljcustwithtool.html