我試圖從我的Java應用程序連接到Linux服務器上的IBM DB2 9數據庫。我正在使用db2jcc.jar
(DB2通用JDBC驅動程序)。Java中的DB2連接速度非常慢
建立連接花費了大量的時間。什麼可能是錯的?我知道有很多因素可能會導致這種情況,但我想要找到根本原因。
我試圖從我的Java應用程序連接到Linux服務器上的IBM DB2 9數據庫。我正在使用db2jcc.jar
(DB2通用JDBC驅動程序)。Java中的DB2連接速度非常慢
建立連接花費了大量的時間。什麼可能是錯的?我知道有很多因素可能會導致這種情況,但我想要找到根本原因。
首先,我會嘗試調高驅動程序的日誌級別以進行調試甚至跟蹤。這可能會讓您輕鬆查看它掛在哪裏以嘗試完成連接。你在使用log4j嗎?
在客戶端和服務器端建立跟蹤。這應該允許您在下列可能的問題之間的區別:
一旦ÿ你發現了這個問題,你必須深入挖掘才能理解爲什麼會出現這種情況。
這是因爲驅動程序反向查找IP來解析主機名,一個簡單的解決方法是將服務器和主機名添加到您的System32 \ drivers \ etc \ hosts(如果您在Windows上)文件,然後使用剛剛映射的主機名。 例如
%WINDOWS%SYSTEM32 \ DRIVERS \等\主機
128.0.0.200 DB_SERVER
然後在您的應用程序:
的jdbc:DB2:// DB_SERVER:55701/SCHEMA_NAME
好, 我想到了。這正是我的問題 - www-01.ibm.com/support/docview.wss?uid=swg21270934。我正在與我的管理員取得聯繫以解決此問題。謝謝大家。非常感激。 - GPX 0秒前 – GPX 2010-09-02 11:54:42
事實上,使用主機名稱而不是直接地址IP。連接時間大約是15秒,現在是即時的。 – fabdouglas 2012-05-18 16:24:00
因此,反向主機名查找無法正常工作。通常這是一個DNS配置問題 - 現在我知道它也可能是Windows域配置問題。 – 2013-04-23 11:40:11