본문 바로가기

Troubleshooting

[연계] SQL30090N Reason Code 31 (Federation:Wrapper)

db2 “? sql30090n”

SQL30090N  조작이 응용프로그램 실행 환경에 대해 유효하지 않습니다. 이유 코드 = "<reason-code>".

설명:

조작이 응용프로그램 실행 환경에 대해 유효하지 않습니다.  예를 들어, 명령문 또는 API에 대해 특별한 제한사항이 있는 응용프로그램(CICS와 같은 XA분산 트랜잭션 처리 환경에서 실행되는 응용프로그램,CONNECT 유형 2 연결설정으로 실행되는 응용프로그램 또는 페더레이티드 시스템 기능을 사용하여 여러 데이터 소스를 갱신하는 응용프로그램)의 조작이 유효하지 않을 수 있습니다. 조작이 거부되었습니다.

 

DB2 V9.X 에서 Oracle로의 Federation 설정할 때는 발생하지 않았었는데, V10.1에서는 Wrapper 생성 시 Linux에서는 위와 같은 오류가 발생한다.

 

나름 웹 상의 문서를 찾으면서 해결방법을 찾아보니 다음과 같이 해결이 가능하다.

 

db2set DB2LIBPATH=$LD_LIBRARY_PATH
db2set DB2ENVLIST=DB2LIBPATH

db2stop
db2start

db2 connect to 데이터베이스

db2 "create wrapper net8"

 

LD_LIBRARY_PATH는 .profile 에 설정되어야 하는 ORACLE 환경 변수이며,  운영체제에 따라 해당 변수는 다르다.

AIX 경우는 LIBPATH, HP-UX 경우는 SHLIB_PATH, Solaris와 Linux 경우는 위 변수를 사용하면 된다.