EJBDEPLOY 관계 문제점 해결 팁

이 정보를 사용하여 EJBDEPLOY 정보 문제점을 해결할 수 있습니다.

[z/OS]

DB2 for z/OS 버전 7.x

EJBDeploy가 DB2 for z/OS 버전 7.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에 대해 작성된 1차 키에 문자열 1차 키가 있는 경우 발생할 수 있습니다. 이 경우, 총계 500에 대한 두 개의 varchar(250) 1차 키로 구성되는 복합 키가 작성되며 이 키는 DB2 for z/OS 버전 7.x의 254 최대값보다 큽니다.
하향식 맵핑을 활용하여 이 문제점이 발생하지 않도록 하는 데 고려해야 할 사항:
  • 하향식 맵핑은 가이드 라인이며 DBA와 상의해야 합니다.
  • EJBDeploy에 의해 하향식으로 작성되는 스키마는 테스트 및 필요한 실제 스키마에 대한 가이드라인용으로만 설계됩니다. meet-in-the-middle 맵핑의 사용에서는 이 문제점이 발생하지 않습니다.
  • 최대 키 길이가 2K인 DB2 V8을 사용할 경우 복합 키 제한조건 문제점이 발생하지 않습니다.

EJBDEPLOY_JVM_ARGS:

EJBDEPLOY_JVM_ARGS 특성을 설정하여, EJB를 배치하는 코드(ejbdeploy.sh)로 전달되는 JVM(Java Virtual Machine) 옵션을 대체하십시오. 이 특성은 deploymentmanager/bin/setupCmdLine.sh 또는 appServerHome/bin/setupCmdLine.sh에 설정하십시오.

예를 들어, 다음은 규정되지 않은 SQL이 생성되어야 함을 지정합니다.

export EJBDEPLOY_JVM_ARGS="-DEJBDEPLOY_GENERATE_UNQUALIFIED_SQL=true" 

1차 키에 정의된 변환기는 외부 키 값에서 호출되지 않습니다.

데이터베이스 열에 1차 키 필드의 맵핑은 변환기를 사용하여 키 값을 변환할 수 있습니다. CMP(container-managed persistence) Bean이 변환기를 사용하여 1차 키를 맵핑하고 Bean에 다른 끝의 Bean이 외부 키를 보유하는 관계가 있는 경우 외부 키에 대한 맵핑은 변환기를 사용하지 않습니다.

1차 키에 정의된 변환기가 외부 키 값에서 호출되지 않았음을 표시하는 오류가 발생할 수 있습니다. ejbDeploy 명령 실행 중에 다음 메시지를 수신합니다.
No type mapping defined for Java datatype1 to Database datatype2
런타임 중에 애플리케이션은 관계의 다른 끝에서 CMP Bean을 찾지 못합니다.

이 제한사항을 극복하려면 데이터베이스 테이블에 자체 외부 키를 정의하고 관계의 다른 끝에 있는 엔터프라이즈 Bean의 1차 키에 정의된 것과 동일한 변환기를 사용하는 맵핑을 작성하십시오.


주제 유형을 표시하는 아이콘 참조 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rtrb_ejbdeploy390
파일 이름:rtrb_ejbdeploy390.html