我正在使用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