2017-01-13 6 views
1

유형 2 연결을 사용하는 CICS의 jvm 서버에서 OSGi 번들로 DB2에 연결하려고하는데 아래 오류가 발생합니다.CICS의 Java JDBC에서 Db2 네이티브 라이브러리로드 오류가 발생 했습니까?

com.ibm.db2.jcc.am.SqlException: Failure in loading native library db2jcct2zos_64, java.lang.UnsatisfiedLinkError: db2jcct2zos_64 (Not found in java.library.path): ERRORCODE=-4472, SQLSTATE=null

난은 OSGi의 JVM 프로파일에 LIBPATH_SUFFIX에있는 파일 libdb2jcct2zos4_64.so libdb2jcct2zos4.so, ibdb2jcct2zos_64.so의 libdb2jcct2zos.so 들어있는 디렉토리를 언급했다.

내가 System.load를 사용하여 자바 프로그램에서 이러한 DLL을로드하려고하면

("는/usr/DB2/V10/JDBC/lib 디렉토리/libdb2jcct2zos_64.so"), 나는

"EDC5205S DLL module not found".

답변

0

으로의 오류 은 CICS 작업에서

  • STEPLIB
  • 에서에 DB2 데이터 세트를 추가, 상기 question you asked yesterday에 대한 대답에 언급, 당신은은 OSGi JVM 서버에서 DB2를 사용하기 위해 필요한 많은 변화가있다 DB2 라이브러리를 참조하는 JVM 프로파일 LIBPATH_SUFFIX @kushwah_a에 의해 기재된 방법과 동일한 문제에 직면 OSGI_BUNDLES 속성
+0

실제로 환경 문제가 발생했으며 오류가 발생하지 않아서 지역의 steplib을 변경해야했습니다. 아래 오류가 나타납니다. com.ibm.db2.jcc.am.SqlSyntaxErrorException : [jcc] [5003] [12311] [3.69.56] T2zOS 예외 : [jcc] [T2zos] T2zosConnection.flowConnect : execConnect : 1425 : DB2 엔진 SQL 오류, SQLCODE = -922, SQLSTATE = 42505, 오류 토큰 = PLAN ACCESS; 00F30034 ERRORCODE = -922, SQLSTATE = 42505 다음 Java 코드를 사용하여 DB2에 연결 –

+0

jdbcURL = "jdbc : default : connection"; \t \t { \t \t \t 연결 = DriverManager.getConnection (jdbcURL); \t \t \t connection.setAutoCommit (false); \t \t} 캐치 (예외 : SQLException 전자) { \t \t \t System.out에 \t \t \t \t \t .println ("연결을 받고에서의 SQLException 예외"); \t \t \t e.printStackTrace(); \t \t \t throw e; \t \t –

+0

해당 코드를 검색하면 JDBC를 실행하는 사용자에게 지정된 DB2 계획을 사용할 권한이 없거나 계획이 존재하지 않아 실패한 것을 알게됩니다. 사용 된 계획을 변경하는 f}에 대한 예제는 https://www.ibm.com/support/knowledgecenter/SSEPEK_12.0.0/java/src/tpc/imjcc_r0052040.html의 'planName'등록 정보를 참조하거나 사용자 계획에 대한 권한이있다. –

0

통해 DB2 번들 설치는 JVM 프로파일

  • 때문이다. CICS 시작 프로시 듀어의 STEPLIB에 JDBC DSN (db2hlq.SDSNLOD2)을 추가했습니다. 마지막으로 OSGI JVM 서버는 lib (보통/usr/lpp/db2version/jdbc/lib)에서 적절한 dll (db2jcct2zos_64.so)을 선택하고 JDBC 연결을 설정합니다.