CICS Java JDBC 中的 Db2 Native Library 加载错误?

Db2 Native Library load error in Java JDBC in CICS?

我正在尝试使用类型 2 连接在 CICS 上的 jvm 服务器上的 OSGi 包中连接到 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 中引用了包含 libdb2jcct2zos.so、ibdb2jcct2zos_64.so、libdb2jcct2zos4.so、libdb2jcct2zos4_64.so 文件的目录。

如果我尝试使用 System.load("/usr/db2/v10/jdbc/lib/libdb2jcct2zos_64.so") 在 java 程序中加载这些 DLL,我会得到

错误

"EDC5205S DLL module not found".

的答案中所述,要从 OSGi JVM 服务器使用 DB2,您需要进行一些更改:

  • 在 CICS 作业中,将 DB2 数据集添加到 STEPLIB
  • 在 JVM 配置文件中,引用 LIBPATH_SUFFIX 属性中的 DB2 库
  • 在 JVM 配置文件中,通过 OSGI_BUNDLES 属性安装 DB2 包

面临与@kushwah_a 描述的相同问题。在 CICS 启动程序的 STEPLIB 中添加了 JDBC DSN(db2hlq.SDSNLOD2)。最后,OSGI JVM 服务器从库中选择了正确的 dll(db2jcct2zos_64.so)(通常是 /usr/lpp/db2version/jdbc/lib)并建立了 JDBC 连接。