Relations EJBDEPLOY - Conseils de résolution des incidents

Ces informations permettent d'identifier et de résoudre les incidents EJBDEPLOY.

[z/OS]

DB2 pour z/OS Version 7.x

Des incidents peuvent survenir lorsque EJBDeploy crée une relation de données dans DB2 pour z/OS Version 7.x. EJBDeploy crée une table dotée d'un composite des deux clés primaires d'EJB liées l'une à l'autre. Si les clés composites comportent plus de 254 caractères, DB2 for z/OS V7.x n'accepte pas cette relation et l'erreur suivante peut survenir :
DSNT408I SQLCODE = -613, ERREUR :  LA PREMIERE CLE OU UNE CONTRAINTE D'UNICITE 
EST TROP LONGUE OU POSSEDE TROP DE COLONNES                                         
DSNT418I SQLSTATE   = CODE RETOUR SQLSTATE 54008              
Ce problème peut être constaté lorsque les clés primaires créées pour les deux beans liés possèdent des clés primaires qui sont des chaînes. Ceci résulte en un composite composé de 2 clés primaires varchar(250) pour un total de 500, ce qui est supérieur à la limite fixée à 254 dans DB2 pour z/OS version 7.x.
Eléments à prendre en compte lors de l'utilisation de mappages descendants afin de ne pas rencontrer ce problème :
  • Les mappages descendants sont des instructions qui doivent être vérifiées avec le DBA.
  • Les 'descendants' créés par des schémas EJBDeploy sont uniquement conçus pour des tests, et comme instruction pour le schéma réel requis. L'utilisation du mappage 'avec rapprochement à mi-parcours' ne présente pas cet inconvénient.
  • La contrainte liée aux clés composées n'existe pas lorsque DB2 V8 est utilisé, car il possède des clés d'une longueur maximale de 2K.

EJBDEPLOY_JVM_ARGS :

Indiquez la propriété EJBDEPLOY_JVM_ARGS afin de remplacer les options de la machine virtuelle Java transmises au code qui déploie les EJB (ejbdeploy.sh). Définissez cette propriété dans l'un des emplacements suivants : deploymentmanager/bin/setupCmdLine.sh ou appServerHome/bin/setupCmdLine.sh

Par exemple, la commande suivante indique qu'un élément SQL non qualifié doit être généré :

export EJBDEPLOY_JVM_ARGS="-DEJBDEPLOY_GENERATE_UNQUALIFIED_SQL=true" 

Le convertisseur défini pour la clé primaire n'est pas appelé à l'aide de la valeur de sa clé externe

Le mappage des zones de clés primaires vers des colonnes de base de données peut utiliser un convertisseur pour transformer les valeurs de clés. Si un bean de persistance gérée par conteneur (CMP) utilise un convertisseur pour mapper sa clé primaire, et que ce bean possède une relation dans laquelle le bean qui se trouve à l'autre extrémité contient une clé externe, le mappage de la clé externe n'utilisera pas le convertisseur.

Les erreurs suivantes peuvent survenir, ce qui indique que le convertisseur défini pour la clé primaire n'est pas appelée à partir de la valeur de sa clé externe. Pendant l'exécution de la commande ejbDeploy, vous recevrez le message suivant :
Aucun mappage de type défini pour Java datatype1 vers Database datatype2
Pendant l'exécution, l'application ne trouve pas le bean CMP à l'autre extrémité de la relation.

Pour contourner cette limitation, définissez votre propre clé externe dans la table d'une base de données, et créez un mappage qui utilise le même convertisseur que celui de la clé primaire des beans enterprise situés à l'autre extrémité de sa relation.


Icône indiquant le type de rubrique Rubrique de référence



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rtrb_ejbdeploy390
Nom du fichier : rtrb_ejbdeploy390.html