Tipps zur Fehlerbehebung bei EJBDEPLOY-Beziehungen
Verwenden Sie diese Informationen für die Behebung von EJBDEPLOY-Problemen.
![[z/OS]](../images/ngzos.gif)
DB2 for z/OS Version 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 CODEDieser Fehler tritt auf, wenn die Primärschlüssel, die für die zwei zugehörigen Beans erstellt werden, Primärschlüssel in Form von Zeichenfolgen besitzen. Das führt dazu, dass das Kompositum aus zwei varchar-Primärschlüsseln (je 250 Zeichen) gebildet wird und somit eine Länge von insgesamt 500 Zeichen hat. Die für DB2 for z/OS Version 7.x zulässige Gesamtlänge von 254 Zeichen wird damit überschritten.
- Top-down-Zuordnungen stellen eine Richtlinie dar und müssen mit DBA überprüft werden.
- Schemata, die von EJBDeploy nach dem Top-down-Muster erstellt wurden, sind nur für Testzwecke und als Richtlinie für das tatsächlich erforderliche Schema vorgesehen. Die Verwendung von Meet-in-the-Middle-Zuordnungen verursachen diesen Fehler nicht.
- Die beschriebene Einschränkung bei der Verwendung zusammengesetzter Schlüssel tritt bei DB2 Version 8, das eine maximale Schlüssellänge von 2K verwendet, nicht auf.
EJBDEPLOY_JVM_ARGS:
Setzen Sie die Eigenschaft EJBDEPLOY_JVM_ARGS, um JVM-Optionen zu überschreiben, die an den Code übergeben werden, der EJBs implementiert (ejbdeploy.sh). Definieren Sie diese Eigenschaft in der Datei deploymentmanager/bin/setupCmdLine.sh oder appServerHome/bin/setupCmdLine.sh.
Beispielsweise legen die folgenden Angaben fest, dass nicht qualifizierte ("unqualified") SQL generiert werden soll:
export EJBDEPLOY_JVM_ARGS="-DEJBDEPLOY_GENERATE_UNQUALIFIED_SQL=true"
Der für den Primärschlüssel definierte Umsetzer wird nicht für den Fremdschlüsselwert aufgerufen
Für die Zuordnung von Primärschlüsselfeldern zu Datenbankspalten kann ein Umsetzer für die Konvertierung der Schlüsselwerte verwendet werden. Wenn eine CMP-Bean einen Umsetzer für die Zuordnung seines Primärschlüssels verwendet und diese Bean eine Beziehung hat, in der die Bean am anderen Ende einen Fremdschlüssel enthält, wird für die Fremdschlüsselzuordnung der Umsetzer nicht verwendet.
No type mapping defined for Java datatype1 to Database datatype2Die Anwendung kann zur Laufzeit die CMP-Bean am anderen Ende der Beziehung nicht finden.
Sie können diese Einschränkung umgehen, indem Sie einen eigenen Fremdschlüssel in der Datenbanktabelle definieren und eine Zuordnung erstellen, die denselben Umsetzer verwendet, der für den Primärschlüssel in den Enterprise-Beans am anderen Ende der Beziehung definiert ist.