Relaciones de EJBDEPLOY – Sugerencias para la resolución de problemas
Utilice esta información para resolver problemas de EJBDEPLOY.
![[z/OS]](../images/ngzos.gif)
DB2 para z/OS Versión 7.x
DSNT408I SQLCODE = -613, ERROR: THE PRIMARY KEY OR A UNIQUE CONSTRAINT IS TOO LONG OR HAS TOO MANY COLUMNS DSNT418I SQLSTATE = 54008 SQLSTATE RETURN CODEEste 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.
- 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.
No se ha definido un tipo de correlación entre el tipo 1 y el tipo 2 de base de datosDurante 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.