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 数据库别名或数据库的本地别名。

以 IBM Data Server Driver for JDBC and SQLJ 4 类连接的 URL 格式开头的解决方案是:
"jdbc:db2://<server name>: <portnumber>/<database name>";
在使用的 4 类 JDBC JCC 驱动程序连接字符串中:
  • 如果连接到 Db2® 服务器,那么 <database name> 应该是数据库服务器中的 目标数据库名称 ,而不应该是客户机中编目的本地别名。
  • 如果连接到 Db2 for z/OS® 服务器,那么 <database name> 是安装期间定义的 Db2 位置名。 Db2 位置名中的所有字符都必须是大写字符。 对于 IBM Data Server Driver for JDBC and SQLJ 4 类连接,IBM Data Server Driver for JDBC and SQLJ 不会将数据库值中的小写字符转换为大写字符。
可以通过在服务器上执行以下 SQL 语句找到 location name
SELECT CURRENT SERVER FROM SYSIBM.SYSDUMMY1;
还可以使用以下命令在客户机上的 DCS 目录中找到 target database name
db2 list dcs directory