我正在使用JDBC通過DriverManager.getConnection method
連接到Informix實例,但我遇到了問題。通過DriverManager.getConnection連接到Informix很慢
DriverManager.getConnection
需要很長時間才能與Informix建立連接。我試圖解決這個問題,但迄今還沒有成功。
如何解決這個問題?
我正在使用JDBC通過DriverManager.getConnection method
連接到Informix實例,但我遇到了問題。通過DriverManager.getConnection連接到Informix很慢
DriverManager.getConnection
需要很長時間才能與Informix建立連接。我試圖解決這個問題,但迄今還沒有成功。
如何解決這個問題?
你可以編寫一個簡單的測試,顯示連接數據庫需要多長時間。 對於這樣的事情,我喜歡可以使用JDBC的Jython,它可以使用本機JDBC驅動程序,並且可以通過JDBC-ODBC橋接使用ODBC驅動程序。當然,你必須先配置這樣的ODBC連接。
這是測試程序,顯示這樣的時代:
import sys
import traceback
import time
from java.sql import DriverManager
from java.lang import Class
Class.forName("com.informix.jdbc.IfxDriver")
def test_conn(db_url, usr, passwd):
try:
t0 = time.time()
try:
db = DriverManager.getConnection(db_url, usr, passwd)
t2 = time.time()
print('%s' % (db_url))
print('%s, connection time %.03f [s]\n' % (db, (t2-t0)))
finally:
db.close()
except:
print("there were errors!")
s = traceback.format_exc()
sys.stderr.write("%s\n" % (s))
def main():
for _ in range(5):
test_conn('jdbc:informix-sqli://169.0.5.10:9088/test:informixserver=ol_t1;', 'user', 'passwd')
test_conn('jdbc:odbc:ifx_test', 'user', 'passwd')
main()
我的機器上結果表明,JDBC更快的連接,然後JDBC-ODBC橋(你必須知道,橋增加了一些時間,是不是必要的本機應用程序)。另外我的測試是在Windows上運行的,最小分辨率爲time.time()
的時間大概是15毫秒。我的結果:
jdbc:informix-sqli://169.0.5.10...
[email protected], connection time 0.015 [s]
jdbc:odbc:test
[email protected], connection time 0.047 [s]
當然有這個程序,你可以測試相同的驅動程序,但用在不同的服務器上的數據庫。
過去,我與Informix的連接問題很慢。它是ODBC/.NET。建立單連接需要一秒鐘的時間(我不記得準確),但它被NHibernate的循環調用了幾千次。解決方案是啓用連接池。 – robsosno 2013-04-19 19:04:20
問題可能是您的主機文件不包含127.0.0.1 localhost
的映射。
也可能是使用的是我對這個其他SO職位描述IPv6地址端口監聽的Informix的一個奇怪的現象: informix jdbc stuck connecting
Hi ron,請不要在冒號之前在冒號之前添加空格以提示編輯(例如http://stackoverflow.com/review/suggested-edits/13474322);有關更多信息,請參閱http://english.stackexchange.com/questions/4645/is-it-ever-correct-to-have-a-space-before-a-question-or-exclamation-mark-。 – Matt 2016-09-07 21:27:06
我不知道我是否必須開始討厭這個網站,儘管你的熱忱的答案。我把這篇文章的開頭留在這裏,太累了,無法抹去或繼續:「我更喜歡我如何選擇自己的句子,我想這不符合你似乎深深擁抱的社會標準,不要理解爲什麼你指的是「吸引低質量或垃圾郵件答案」的主觀帖子來表達你的觀點,但也許是因爲這樣做...... blahblahblah「 – ron190 2016-09-07 21:43:12
什麼是你的機器配置? – 2013-04-11 06:44:22
這就是您應該使用連接池的原因之一。 – maba 2013-04-11 06:45:33
當我們無事可做時,我們該如何幫忙?定義'長時間'。你需要多少個連接?什麼是網絡延遲?等等 – 2013-04-11 06:49:48