EJBDEPLOY 关系 – 故障诊断提示

使用这些信息对 EJBDEPLOY 问题的信息进行故障诊断。

[z/OS]

DB2 for z/OS 版本 7.x

当 EJBDeploy 在 DB2 for z/OS V7.x 中创建数据关系时可能存在问题。EJBDeploy 创建一张表,该表带有互相关联的 EJB 的两个主键的组合。如果组合键大于 254 个字符,那么 DB2 for z/OS V7.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 CODE              
为两个相关 bean 创建的主键具有字符串的主键时,可以遇到此问题。此结果是,组合由 2 varchar (250) 主键,总计为 500 组成,这 大于 DB2 for z/OS 版本 7.x 中 254 的最大值。
当利用自顶向下映射时要考虑以下问题,以确保您不会遇到此问题:
  • 自顶向下映射是准则且必须与 DBA 一起查看。
  • 由 EJBDeploy 自顶向下创建的模式仅为测试而设计,并且作为实际模式必需的准则。中间会合映射的使用不存在此问题。
  • 当使用具有 2K 最大键长度的 DB2 V8 时,不会遇到组合键约束问题。

EJBDEPLOY_JVM_ARGS:

请设置 EJBDEPLOY_JVM_ARGS 属性,以覆盖那些传递到用于部署 EJB 的代码 (ejbdeploy.sh) 的 Java 虚拟机 (JVM) 选项。在下列其中一个位置设 置此属性: deploymentmanager/bin/setupCmdLine.sh 或 appServerHome/bin/setupCmdLine.sh

例如,以下内容指定应该生成未限定的 SQL:

export EJBDEPLOY_JVM_ARGS="-DEJBDEPLOY_GENERATE_UNQUALIFIED_SQL=true" 

未对主键的外键值调用为主键定义的转换器

主键字段至数据库列的映射可能会使用转换器来变换键值。如果容器管理的持久性 (CMP) bean 使用转换器来映射它的主键,并且该 bean 拥 有一种关系(关系中另一方的 bean 包含一个外键),那么该外键的映射不会使用该转换器。

可能会发生下列错误,表示未对主键的外键值调用为主键定义的转换器。在运行 ejbDeploy 命令期间,接收到 以下消息:
没有定义 Java datatype1 至数据库 datatype2 的类型映射
在运行时,应用程序在关系的另一方中找不到 CMP bean。

要解决此限制,可在数据库表中定义自己的外键,并在关系的另一方上创建使用为企业 Bean 的主键所定义转换器的映射。


指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rtrb_ejbdeploy390
文件名:rtrb_ejbdeploy390.html