Relaciones de EJBDEPLOY – Sugerencias para la resolución de problemas

Utilice esta información para resolver problemas de EJBDEPLOY.

[z/OS]

DB2 para z/OS Versión 7.x

Puede haber problemas cuando EJBDeploy crea un relación de datos en DB2 para z/OS Versión 7.x. EJBDeploy crea una tabla con una combinación de las dos claves primarias de los EJB que están relacionados entre si. Si las claves compuestas son superiores a 254 caracteres, DB2 para z/OS V7.x no aceptará esta relación y se puede producir el siguiente error:
DSNT408I
SQLCODE = -613, ERROR:  THE PRIMARY KEY OR A UNIQUE CONSTRAINT 
IS TOO LONG OR HAS TOO MANY COLUMNS                                         
DSNT418I SQLSTATE   = 54008 SQLSTATE RETURN CODE              
Este problema se puede apreciar cuando las claves primarias que se crean para los dos beans relacionados tienen claves primarias que sean series. Esto hace que la combinación esté compuesta de 2 claves primarias de varchar(250) para un total de 500, que es mayor que el máximo de 254 en DB2 para z/OS versión 7.x.
Aspectos que hay que tener en cuenta al utilizar las correlaciones descendientes para garantizar que no experimente este problema:
  • Las correlaciones descendientes funcionan como directrices y se deben revisar con el DBA.
  • Los esquemas creados en sentido descendiente por EJBDeploy están diseñados sólo para realizar pruebas y como directrices para el esquema actual solicitado. La utilización de la correlación de tipo central no presente esta problema.
  • El problema de restricción de las claves compuestas no se experimenta cuando se utiliza DB2 V8, que tiene longitudes de clave máximas de 2K.

EJBDEPLOY_JVM_ARGS:

Establezca la propiedad EJBDEPLOY_JVM_ARGS para que sobrescriba las opciones de JVM (Java Virtual Machine) que se pasan al código que despliega los EJB (ejbdeploy.sh). Establezca esta propiedad en una de las siguientes ubicaciones: gestordespliegue/bin/setupCmdLine.sh o ubicaciónInicialServidorAplic/bin/setupCmdLine.sh

Por ejemplo, a continuación se especifica que se debe generar un SQL no cualificado:

export EJBDEPLOY_JVM_ARGS="-DEJBDEPLOY_GENERATE_UNQUALIFIED_SQL=true" 

El conversor definido para la clave primaria no se invoca en su valor de clave foránea

La correlación de los campos de claves primarias para las columnas de base de datos puede utilizar un conversor para transformar los valores de las claves. Si un bean de persistencia gestionada por contenedor, CMP, utiliza un conversor para correlacionar su clave primaria y dicho bean tiene una relación en la que el bean del otro extremo contiene una clave foránea, la correlación para la clave foránea no utilizará el conversor.

Es posible que se produzca el error siguiente, indicando que el conversor definido para la clave primaria no se invoca en su valor de clave foránea. Durante la ejecución del mandato ejbDeploy, recibe el mensaje siguiente:
No se ha definido un tipo de correlación entre el tipo 1 y el tipo 2 de base de datos
Durante la ejecución, la aplicación no encuentra el bean CMP al otro extremo de la relación.

Para solucionar esta limitación, defina su propia clave foránea en la tabla de base de datos y cree una correlación que utilice el mismo conversor que se ha definido para la clave primaria en los beans enterprise del otro extremo de la relación.


Icon that indicates the type of topic Reference topic



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