2010-09-02 78 views
2

我試圖從我的Java應用程序連接到Linux服務器上的IBM DB2 9數據庫。我正在使用db2jcc.jar(DB2通用JDBC驅動程序)。Java中的DB2連接速度非常慢

建立連接花費了大量的時間。什麼可能是錯的?我知道有很多因素可能會導致這種情況,但我想要找到根本原因。

+0

好, 我想到了。這正是我的問題 - www-01.ibm.com/support/docview.wss?uid=swg21270934。我正在與我的管理員取得聯繫以解決此問題。謝謝大家。非常感激。 - GPX 0秒前 – GPX 2010-09-02 11:54:42

+0

事實上,使用主機名稱而不是直接地址IP。連接時間大約是15秒,現在是即時的。 – fabdouglas 2012-05-18 16:24:00

+0

因此,反向主機名查找無法正常工作。通常這是一個DNS配置問題 - 現在我知道它也可能是Windows域配置問題。 – 2013-04-23 11:40:11

回答

1

首先,我會嘗試調高驅動程序的日誌級別以進行調試甚至跟蹤。這可能會讓您輕鬆查看它掛在哪裏以嘗試完成連接。你在使用log4j嗎?

+0

我沒有使用log4j。但我想我可以使用JDBC跟蹤。如果你的意思是凍結,掛起,否則 - 不。它確實連接最終。但是每一次,都需要20秒(一貫!)才能做到! – GPX 2010-09-02 09:37:55

+0

你使用什麼日誌級別?它掛什麼日誌語句? – Joel 2010-09-02 09:56:37

+0

我剛剛爲DriverManager啓用了setLogWriter方法。使用方法「getHostAddressFromIpAddr」 – GPX 2010-09-02 10:16:50

0

在客戶端和服務器端建立跟蹤。這應該允許您在下列可能的問題之間的區別:

  • 驅動程序的實現是緩慢的(接收答案,但需要較長的時間來回復)
  • 網絡上的兩端正在緩慢(週轉快,但在大間休息)
  • 數據庫正在緩慢反應(與第一,但在服務器端)
  • 有剛有很多東西來回

一旦ÿ你發現了這個問題,你必須深入挖掘才能理解爲什麼會出現這種情況。

1

檢查您的DNS配置是否100%正確。

+0

請問您能告訴我具體是怎麼做的嗎? – GPX 2010-09-02 10:56:09

0

這是因爲驅動程序反向查找IP來解析主機名,一個簡單的解決方法是將服務器和主機名添加到您的System32 \ drivers \ etc \ hosts(如果您在Windows上)文件,然後使用剛剛映射的主機名。 例如

%WINDOWS%SYSTEM32 \ DRIVERS \等\主機

128.0.0.200 DB_SERVER

然後在您的應用程序:

的jdbc:DB2:// DB_SERVER:55701/SCHEMA_NAME