Problems may exist when EJBDeploy creates a data relationship in DB2 for z/OS Version 7.x. EJBDeploy creates a table with a composite of the two primary keys of the EJBs that are related to each other. If the composite keys are larger than 254 characters, DB2 for z/OS V7.x will not accept this relationship and the user will be conforonted with errors such as:
DSNT408I SQLCODE = -613, ERROR: THE PRIMARY KEY OR A UNIQUE CONSTRAINT IS TOO LONG OR HAS TOO MANY COLUMNS DSNT418I SQLSTATE = 54008 SQLSTATE RETURN CODEThis problem can be seen when the primary keys that are created for the two related beans have primary keys that are strings. This results in the composite being made up of 2 varchar(250) primary keys for a total of 500, which is greater than 254 maximum in DB2 for z/OS version 7.x.
Things to consider when utilizing top-down mappings to ensure you do not experience this problem:
EJBDEPLOY_JVM_OPTIONS
Set the EJBDEPLOY_JVM_OPTIONS property to override Java virtual machine (JVM) options that are passed to the code that deploys EJBs (ejbdeploy.sh). Set this property in one of the following locations: deploymentmanager/bin/setupCmdLine.sh or appServerHome/bin/setupCmdLine.sh
For example, the following command increases the heap size of the JVM for ejbdeploy.sh:
export EJBDEPLOY_JVM_OPTIONS="-Xms128m -Xmx512m"