ERRORCODE=-4499

ERRORCODE=-4499는 애플리케이션 서버가 연결 설정을 거부했음을 의미합니다.

문제점 및 증상

유형 4 JCC 드라이버를 사용하여 데이터베이스에 연결하려고 시도하지만 실패하며 다음 예외가 나타납니다.
java.sql.SQLException: [jcc][t4][2057][11264][3.53.95] The application server rejected establishment of the connection. 
An attempt was made to access a database, which was either not found or does not support transactions. ERRORCODE=-4499, SQLSTATE=08004 DSRA0010E: SQL State = 08004, Error Code = -4,499

근본적으로 연결은 실패합니다.

원인 및 솔루션

이 오류는 연결 문자열에서 DCS DB 별명 또는 데이터베이스의 로컬 별명 이름을 사용하여 연결을 시도하기 때문에 발생합니다.

솔루션은 IBM Data Server Driver for JDBC and SQLJ 유형 4 연결성을 위한 URL 형식으로 시작하며 다음과 같습니다.
"jdbc:db2://<server name>: <portnumber>/<database name>";
사용되는 유형 4 JDBC JCC 드라이버 연결 문자열에서:
  • 서버에 연결하는 경우 Db2® 서버에 연결하는 경우 <데이터베이스 이름>은 데이터베이스 서버의 대상 데이터베이스 이름이어야 하며, 클라이언트에 카탈로그화된 로컬 별칭 이름이 아니어야 합니다.
  • 서버에 연결하는 경우 Db2 for z/OS 서버에 연결하는 경우 <데이터베이스 이름>은 설치 중에 정의된 Db2 설치 중에 정의된 위치 이름입니다. Db2 위치 이름의 모든 문자는 대문자여야 합니다. IBM Data Server Driver for JDBC and SQLJ는 IBM Data Server Driver for JDBC and SQLJ 유형 4 연결성을 위해 데이터베이스 값의 소문자를 대문자로 변환하지 않습니다.
서버에서 다음 SQL문을 실행하여 location name을 찾을 수 있습니다.
SELECT CURRENT SERVER FROM SYSIBM.SYSDUMMY1;
또한 target database name은 다음 명령을 사용하여 클라이언트의 DCS 디렉토리에서 찾을 수 있습니다.
db2 list dcs directory