Si el archivo JAR o EAR de entrada contiene beans CMP, la herramienta de despliegue de EJB
busca un esquema y una correlación existente que se va a utilizar cuando se genera el código de
despliegue. Si no se encuentra ningún esquema ni correlación existente, se crea el esquema y la correlación utilizando las reglas de correlación descendente.
En el enfoque de correlación descendente, ya hay beans de empresa existentes y sus diseños determinan el diseño de la base de datos. El esquema generado contiene una tabla para cada bean de entidad CMP. En estas tablas, cada columna se corresponde con un campo CMP del bean de empresa y la correlación generada asocia el campo con la columna.
Sintaxis
Utilice el mandato siguiente y los parámetros opcionales, si se proporciona el esquema y la correlación en el archivo EAR o JAR de entrada:
ejbdeploy nombre_EAR_entrada|nombre_JAR_entrada directorio_trabajo nombre_EAR_salida|nombre_JAR_salida [-bindear "opciones"] [-cp classpath]
[-codegen] [-debug] [-keep] [-ignoreErrors]
[-quiet] [-nowarn] [-noinform] [-rmic "opciones"]
[-target nombre] [-trace] [-sqlj]
Utilice el mandato siguiente y los parámetros opcionales, si el esquema y la correlación no están disponibles en el archivo EAR o JAR de entrada y es necesario el enfoque de correlación descendente:
ejbdeploy nombre_EAR_entrada|nombre_JAR_entrada directorio_trabajo nombre_EAR_salida|nombre_JAR_salida [-bindear "opciones"] [-cp classpath]
[-codegen] [-dbname "nombre"] [-dbschema "nombre"]
[-dbvendor nombre] [-debug] [-keep]
[-ignoreErrors] [-quiet] [-nowarn] [-noinform]
[-rmic "opciones"] [-35] [-40]
[-target nombre] [-trace] [-sqlj][-OCCColumn]Nota: - Las opciones -dbschema, -dbname, -dbvendor, -OCCColumn, -35 y -40 sólo se
utilizan cuando se crea una definición de base de datos en modalidad
de funcionamiento descendente.
La información de la base de datos se guarda en el documento del esquema
en el archivo JAR o EAR, lo que significa que no es necesario volver a
especificar las opciones. También significa que cuando se genera un
archivo JAR o EAR, la base de datos correcta debe estar ya definida,
porque no se puede modificar más adelante.
- Por omisión, se crea un archivo DDL (Lenguaje de definición de datos) con el programa de fondo
establecido en DB2 para Windows,
V8.1 y UNIX,
donde el ID de programa de fondo es DB2UDB_V81, cuando ejecuta el mandato ejbdeploy.
Si desea establecer otro programa de fondo de base de datos, utilice las opciones: -dbname, -dbschema y -dbvendor para especificar su opción. No obstante, sólo puede tener definido un programa de fondo. Si el archivo JAR ya contiene un programa de fondo de DB2 y especifica
-dbvendor ORACLE en la línea de mandatos, en lugar de obtener un segundo
programa de fondo, la especificación dbvendor se pasa por alto.
- ejbdeploy
- Mandato para generar código de despliegue. Si se ejecuta sin
argumentos, el mandato ejbdeploy muestra una lista de
argumentos que se pueden ejecutar con el mandato.
- nombre_JAR_entrada o
nombre_EAR_entrada
- Nombre plenamente cualificado del archivo JAR o EAR de entrada que
contiene los beans de empresa para los que desea generar el código de
despliegue; por ejemplo, c:\ejb\inputJARs\myEJBs.jar.
(Este argumento es necesario).
El
mandato ejbdeploy ya no utiliza lo que se especifica en
la classpath del sistema.En su lugar, las clases dependientes tiene que estar contenidas en un archivo JAR o
incluidas en el proceso del mandato con la opción -cp. Debe asegurarse de que
los archivos .class de las clases locales y remotas de cada bean de empresa se empaqueten en
el archivo JAR o EAR de entrada.
No incluya archivos de código fuente en el archivo JAR
o EAR de entrada. Si hay archivos de código fuente en el archivo JAR o EAR de entrada, la herramienta EJBDeploy
ejecutará un nueva generación de código antes de generar el código de despliegue. Recomendación:
elimine los archivos de código fuente o incluya todas las clases dependientes y los archivos de recursos
en la classpath. De lo contrario, esto podría producir problemas durante la nueva generación de código de la
aplicación en el servidor.
- directorio_trabajo
- Nombre del directorio en el que se almacenan los archivos temporales
necesarios para la generación del código. (Este argumento es necesario).
Si el directorio de trabajo especificado ya existía antes de ejecutar el
mandato ejbdeploy, los archivos temporales se
generan en el directorio de trabajo (como un espacio de trabajo Eclipse).
No obstante, si el directorio de trabajo no existía antes de ejecutar el
mandato, se crea el directorio y se genera dentro del mismo el espacio de
trabajo Eclipse. En ambos casos, el espacio de trabajo y todos sus archivos
se eliminan automáticamente cuando se completa la generación del código de
despliegue, a no ser que especifique la opción
-keep. (La conservación del espacio de trabajo
es útil en la determinación de problemas.)
- nombre_JAR_salida o
nombre_EAR_salida
- Nombre plenamente cualificado del archivo JAR o EAR de salida creado
por el mandato ejbdeploy que contiene las clases
generadas necesarias para el despliegue; por ejemplo:
c:\ejb\outputJARs\myEJBs.jar. (Este argumento
es necesario.) Los directorios especificados en el nombre plenamente
cualificado deben existir antes de ejecutar el mandato
ejbdeploy. (Tenga en cuenta que cuando especifica un nombre para el archivo JAR o EAR
de salida y ejecuta el mandato ejbdeploy, los
archivos JAR o EAR de salida que hubiera con el mismo nombre se
sobrescribirán sin notificación previa.)
- -cp classpath
- Si tiene previsto ejecutar el mandato ejbdeploy con archivos
JAR o EAR que dependen de otros archivos ZIP o JAR, puede utilizar la
opción -cp para especificar la classpath de los
otros archivos JAR o ZIP. Si utiliza la opción -cp,
puede especificar varios archivos ZIP o JAR como argumentos. No obstante, los nombres de archivo ZIP y JAR deben ser plenamente cualificados, estar separados por punto y coma e ir encerrados entre comillas dobles. Por ejemplo: -cp "path\miJar1.jar;path\miJar2.jar;
path\miJar3.jar"
Consejo: Es necesario especificar la ubicación de las clases de
conversor SQLJ, sqlj.zip. La vía de acceso por omisión de este archivo es
x:\java, donde x es el directorio de
instalación de DB2, por ejemplo, d:\sqllib\java\sqlj.zip en Windows.
- -codegen
- Restringe el mandato ejbdeploy a una de las
siguientes operaciones: (a) importar el código desde el archivo JAR o EAR
de entrada (b) generar el código de despliegue y (c) exportar el código
al archivo JAR o EAR de salida. No compilará el código de despliegue
generado ni ejecutará el compilador RMIC (Remote Method Invocation Compiler). Dado que el código fuente Java no se suele
exportar en el EAR o JAR de salida, este es el único modo de guardar el código generado.
- -bindear "opciones"
- Permite llenar un archivo EAR con enlaces. Este argumento se aplica sólo a los archivos EAR. También puede utilizar este mandato sin especificar ninguna opción. Las opciones deben estar separadas por un espacio, y cerradas entre comillas dobles. Por ejemplo: -bindear "xx yy zz"
Para obtener más información sobre estas opciones, consulte la documentación de
WebSphere Application Server.
- -dbname "nombre"
- Nombre de la base de datos que desea definir en el archivo DDL (Lenguaje de definición de datos) que se genera. Si el nombre de la base de datos contiene espacios, el nombre completo debe estar entre comillas dobles. Por
ejemplo: -dbname "mi base de datos"
- -dbschema "nombre"
- Nombre del esquema que desea crear. Si el nombre del esquema contiene espacios, el nombre completo debe estar entre comillas dobles. Por
ejemplo: -dbschema "mi esquema"
- -dbvendor nombre
- Nombre del proveedor de la base de datos, que se utiliza para determinar los tipos de columna de la base de datos, la información de correlación, Table.ddl y otro tipo de información. Los valores válidos de proveedor de base de datos son:
- DB2UDB_V81 (DB2 Universal Database V8.1 para Windows y UNIX)
- DB2UDB_V82 (DB2 Universal Database V8.2 para Windows y UNIX)
- DB2UDBOS390_V7 DB2 Universal Database para z/OS y OS/390,
V7)
- DB2UDBOS390_V8 (DB2 Universal Database para z/OS y OS/390,
V8)
- DB2UDBISERIES (DB2 para iSeries)
- DB2UDBISERIES_V52 (DB2 para iSeries, V5R2)
- DB2UDBISERIES_V53 (DB2 para iSeries, V5R3)
- ORACLE_V8 (Oracle, V8.0)
- ORACLE_V9I (Oracle, V9i)
- ORACLE_V10G (Oracle, V10g)
- INFORMIX_V73 (Informix Dynamic Server.2000, V7.3)
- INFORMIX_V93 (Informix Dynamic Server.2000, V9.3)
- INFORMIX_V94 (Informix Dynamic Server.2000, V9.4)
- SYBASE_V1200 (Sybase Adaptive Server Enterprise, V12.0)
- SYBASE_V1250 (Sybase Adaptive Server Enterprise, V12.5)
- MSSQLSERVER_2000 (Microsoft SQL Server 2000)
- MSSQLSERVER_V7 (Microsoft SQL Server, V7.0)
- CLOUDSCAPE_V5 (Cloudscape, V5.1)
- DERBY_V10 (Derby, V10)
Se desechan los siguientes ID de programa de fondo:
- SQL92 (1992 SQL Standard)
- SQL99 (1999 SQL Standard)
Aunque se desechan SQL92 y SQL99, las opciones SQL92 y SQL99 siguen estando
disponibles. Si se utiliza la opción SQL92 o SQL92, se genera el código SQL para Cloudscape V5.
Si determina utilizar el ID de programa de fondo SQL92 o SQL99 desechado, consulte el tema Sintaxis de consulta de EJB en SQL para ayudarle a determinar qué programa de fondo debe utilizar, en un futuro cercano, cuando
ya no estén disponibles los programas de fondo SQL92 y SQL99.
Si desea utilizar
una base de datos no compatible, consulte el tema Sintaxis de consulta de EJB en SQL para ayudarle a elegir un programa de fondo de un proveedor de base de datos que más se aproxime
a su entorno de despliegue no compatible.
Nota: - El valor por omisión es DB2UDB_V81 (DB2 para Windows, V8.1 y UNIX)
- Si se especifica -sqlj, admite DB2UDB_V82 (DB2 para Windows,
V8.2 y UNIX), DB2UDB_V81
(DB2 para Windows,
V8.1 y UNIX), DB2UDBOS390_V8 (DB2 para OS/390,
V8) y DB2UDBOS390_V7(DB2 para OS/390, V7).
- -debug
- Especifica que el código de despliegue se compilará con información de
depuración.
- -keep
- Controla la disposición de los archivos temporales creados (es decir,
el espacio de trabajo Eclipse) al ejecutar el mandato
ejbdeploy. Sin esta opción, el espacio de
trabajo Eclipse se elimina al completarse el mandato.
- -ignoreErrors
- Especifica que el proceso debe continuar, aunque se hayan detectado errores de validación.
- -quiet
- Durante la validación, suprime los mensajes de estado (pero no suprime los mensajes de error).
- -nowarn
- Durante la validación, suprime los avisos y los mensajes informativos.
- -noinform
- Durante la validación, suprime los mensajes informativos.
- -rmic "opciones"
- Permite pasar opciones RMIC a RMIC. Las opciones, que se describen en la
documentación de RMI Tools de Sun, deben estar separadas por un espacio, y cerradas entre
comillas dobles. Por ejemplo: -rmic "-nowarn
-verbose"
- -35
- Si desea utilizar para los beans de entidad CMP las reglas de correlación descendente que se utilizaron en la herramienta de despliegue de EJB que se proporcionaba con WebSphere Application Server, Versión 3.5,
especifique la opción -35.
Esto puede ser recomendable en algunas situaciones. No obstante, si no
especifica la opción -35, se utiliza una forma de
correlación descendente que es mejor que la anterior.
- -40
- Utilice las reglas de correlación descendente de WebSphere Application Server 4.0.
- -target nombre
- Especifique un entorno de ejecución de WebSphere concreto en el que desea compilar la aplicación.
Si se selecciona el objetivo de ejecución se configurará la biblioteca de JRE que se va
a utilizar, así como la classpath del proyecto que va a contener las bibliotecas de ejecución de WebSphere. Entre los nombres de servidor válidos están:
- WAS510 (WebSphere Application Server, V5.1)
- WAS502(WebSphere Application Server, V5.02)
- WAS501(WebSphere Application Server, V5.01)
- WAS500(WebSphere Application Server, V5.0)
- -trace
- Genera mensajes de progreso adicionales en la consola.
- -sqlj
Nota: Esta opción sólo es válida en beans de empresa compatibles con
la especificación 2.0.
Permite utilizar SQLJ en lugar de JDBC para hacer llamadas
a una base de datos DB2.
Con la opción -sqlj especificada, la herramienta de despliegue de EJB genera código SQLJ para que los beans CMP utilicen SQLJ para acceder a la base de datos.
También llama automáticamente al conversor SQLJ para traducir los archivos de código fuente SQLJ.
Finalmente, la herramienta de despliegue de EJB creará un script Ant para ayudarle
a personalizar fácilmente los perfiles de SQLJ. Puede ejecutar el script Ant con el perfil
para producir un paquete DB2. Estos paquetes DB2 se pueden durante la ejecución para evitar las comprobaciones
adicionales de código en tiempo de ejecución. Una vez que se ha generado
el código de despliegue para SQLJ utilizando la herramienta de despliegue
de EJB, debe ejecutar el programa de personalización de SQLJ de DB2,
db2sqljcustomize, en el archivo .ser generado, que se
encuentra en la subcarpeta de la carpeta websphere_deploy
asociada al programa de fondo de DB2. Consulte la documentación de DB2 para obtener más información sobre cómo ejecutar el programa de personalización de perfiles SQLJ de DB2 o visite la página www7b.boulder.ibm.com/dmdd/zones/java/bigpicture.html (sección SQLJ
support).
- -OCCColumn
Nota: Esta opción sólo es válida en beans de entidad CMP EJB 2.x cuando se genera la correlación descendente.
Permite añadir columnas a la tabla de base de datos relacional para la
detección de conflictos. La columna de detección de conflictos es la
columna de base de datos adicional reservada para determinar si se ha actualizado un registro.
La adición de una columna de detección de conflictos es un esquema de control de concurrencia
optimista alternativo de incluir atributos en un predicado para propósitos de acceso optimista.
Para gestionar la columna de detección de conflictos, tendrá que proporcionar su propia implementación del desencadenante de base de datos. A continuación figura el resultado de añadir una columna para la detección de conflictos: - El tipo de datos de la columna de detección de conflictos es un entero de 64 bits.
- El convenio de denominación de la columna de detección de conflictos tiene este formato:
OCC_nombre_bean
- La correlación descendente genera una columna relacional adicional. No se puede correlacionar esta columna con el bean de empresa.
Ejemplo: ejecutar el mandato ejbdeploy:
ejbdeploy AccessEmployee.ear d:\deploydir AccessEmployee_sqlj.ear -dbvendor DB2UDB_V81 -keep -sqlj -cp "e:\sqllib\java\sqlj.zip"
Explicación: Se ha instalado DB2 Universal Database (versión 8.1 para Windows y UNIX)
en e:\sqllib.
El mandato ejbdeploy toma el archivo
AccessEmployee.ear (con beans de empresa compatibles con la especificación
EJB 2.0) como entrada y produce AccessEmployee_sqlj.ear como salida. Como
se utiliza la opción -sqlj, se utiliza SQLJ en
lugar de JDBC en el código generado para realizar llamadas a DB2.
Cuando se ejecuta ejbdeploy, se crea un espacio de trabajo Eclipse en el
directorio que especifique como el directorio de trabajo:
d:\deploydir. Una vez ejecutado el mandato, el espacio de trabajo se suprime. No obstante, la opción -keep hace que
ejbdeploy finalice sin suprimir el espacio de trabajo.