Java中的DB2连接速度极慢

我正在尝试从我的Java应用程序连接到Linux服务器上的IBM DB2 9数据库。 我正在使用db2jcc.jar (DB2 Universal JDBC Driver)。

建立连接需要花费大量时间。 可能有什么不对? 我知道有很多因素可能导致这种情况,但我想了解根本原因。

首先,我会尝试升级驱动程序上的日志级别以进行调试甚至跟踪。 这可能会让您轻松地查看它在尝试完成连接时所处的位置。 你在用log4j吗?

检查您的DNS配置是否100%正确。

在客户端和服务器端建立跟踪。 这应该允许您区分以下可能的问题:

  • 驱动程序实现缓慢(收到答案,但需要很长时间才能回复)
  • 网络速度很慢(两端转弯很快,但两者之间有很大的中断)
  • 数据库响应缓慢(与第一个相同但在服务器端)
  • 只有很多东西来回走动

一旦找到了问题,就必须深入挖掘才能理解为什么会出现这种情况。

发生这种情况是因为驱动程序反向查找IP以解析主机名,一个简单的解决方法是将服务器和主机名添加到System32 \ drivers \ etc \ hosts(如果你在Windows上)文件,然后使用您刚刚映射的主机名。 例如

%WINDOWS%SYSTEM32 \ DRIVERS \等\主机

128.0.0.200 DB_SERVER

然后在你的申请中:

JDBC:DB2:// DB_SERVER:55701 / SCHEMA_NAME