【问题标题】:DB2 connection issue while upgrading to Java 11升级到 Java 11 时出现 DB2 连接问题
【发布时间】:2021-03-02 05:51:10
【问题描述】:

从 Java 7 升级到 11 时,连接到 DB2 时出现以下异常。使用休眠 ORM 与 DB2 连接,它使用 Java 7 但不是 Java 11。

org.hibernate.exception.GenericJDBCException: could not execute query
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126)
    at org.hibernate.loader.Loader.doList(Loader.java:2554)
    at org.hibernate.loader.Loader.doList(Loader.java:2537)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2367)
    at org.hibernate.loader.Loader.list(Loader.java:2362)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:496)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:387)
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:229)
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1260)
**Caused by: com.ibm.db2.jcc.am.SqlException: [jcc][t4][1037][12307][3.58.82] Exception occurred during DECFLOAT conversion. See attached Throwable for details. ERRORCODE=-4220, SQLSTATE=null**

**Caused by: com.ibm.db2.jcc.a.a: [jcc][converters][606][13302]Decfloat conversion requires JDK1.5** 

【问题讨论】:

  • 这看起来不像是连接问题。它缺少细节。您有错误消息中所需的 SDK 吗?

标签: java db2 java-11


【解决方案1】:

您的异常文本显示您正在使用 db2jcc.jar 的旧版本,版本 [3.58.82]。这来自 IBM 不再支持的 Db2 v9.7 fp1。

首先在您的开发和测试环境中,按照提供的here 升级到版本 4.28.11(或更高版本)的db2jcc4.jar 然后重试。

如果您要连接到大型机数据库 ( Db2-for-Z/OS ),那么您将需要执行以下操作之一来处理许可:

  • 使用 db2jcc_license_cisuz.jar 文件的相关版本(从您的 Passport Advantage 站点管理员或有帮助的 Z/OS 版 Db2 DBA 获取,他们会知道目标系统的版本和访问它的方式。

  • 或者,如果您的站点具有 Db2-connect 的无限编辑许可证,那么请让您的 DBA 运行 db2connectactivatetool。

  • 或通过预先存在的 Db2-connect 网关进行连接(在这种情况下,您的客户端环境中不需要许可证文件)。

如果数据库托管在 Linux/Unix/Windows 上,则不需要该许可证文件。

【讨论】:

    【解决方案2】:

    谢谢。

    使用最新版本的 db2jcc4.jar 后出现异常

    org.apache.tomcat.dbcp.dbcp.SQLNestedException: 无法创建 PoolableConnectionFactory ([jcc][t4][10509][13454][4.27.25] 与数据服务器的连接失败。IBM Data Server for JDBC and SQLJ 许可证无效 或没有为 DB2 for z/OS 子系统激活。如果您直接连接到 数据服务器并使用 DB2 Connect Unlimited Edition for System z,执行 通过运行许可证激活工具包中的激活程序来激活步骤。
    如果您使用任何其他版本的 DB2 Connect,请获取许可文件, db2jcc_license_cisuz.jar,来自许可证激活工具包,并按照安装 在类路径中包含许可证文件的说明。 ERRORCODE=-4230, SQLSTATE=42968)

    最新版本是否需要许可证 jar 文件?

    【讨论】:

      猜你喜欢
      • 2021-09-21
      • 2023-01-12
      • 1970-01-01
      • 1970-01-01
      • 2011-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多