Oracle数据库连接极慢

3
我有一个远程Linux服务器,我想使用ojdbc7库连接到另一台服务器上的Oracle数据库。
当我尝试直接从我的Windows PC使用相同的客户端和ojdbc7库连接到数据库时,连接时间合理。
现在,当我想通过我的Linux服务器连接时,连接时间极慢。连接后,执行正常。
我已经阅读了关于添加"-Djava.security.egd=file:/dev/urandom"(如此帖子)的内容,但没有任何反应。
我该怎么做才能解决从Linux建立连接时的延迟问题?

2
有人已经编辑掉了你对“破英语”的道歉(顺便说一句,你并没有使用破英语),但我想花一点时间告诉你,你的英语很好,你表达得很清楚,如果你没有提到,我不会知道你不是以英语为母语的。同样适用于所有在这里(和网络上其他地方)的非英语为母语的人 - 你们做得比我们许多人在尝试用你们的母语交流时要好得多。谢谢。 - Bob Jarvis - Слава Україні
在同一台服务器上,gpp... sqlplus连接需要多长时间? - Kris Rice
有很多可能导致这种延迟。我建议使用抓包工具,例如Wireshark,分析您的Linux机器和数据库服务器之间的网络流量。当研究其输出时,您很可能会发现一个单独的交互需要40秒钟,或者更可能的是没有得到答复,在40秒后超时。 - Ralf Kleberhoff
感谢您的回复。不幸的是,服务器上没有sqlplus,我们无法在那里安装它:/ - mmezi
考虑到你所面临的所有限制,我怀疑你是否能够解决它。最好让系统管理员来查看你的问题。我注意到你正在连接1525端口。我很久以前就没有见过这个端口号了。但既然它在你的电脑上工作正常,那就没关系了。你能比较一下服务器和你的电脑上的“java -version”吗? - Gerard H. Pille
显示剩余5条评论
2个回答

0

谢谢您的回复。我也尝试过了,但是没有任何改变。 - mmezi
你能在你的问题中添加 "ls -l /dev/urandom" 的输出吗? - Gerard H. Pille

0

我注意到你正在使用版本12.1.0.1。

有一个Oracle bug,JDBC连接可能需要过长的时间,因为发送的数据需要监听器为每个连接执行DNS查找,这似乎对某些原因非常慢。

该bug已在12.2中修复,并且针对12.1.0.2有一个反向移植的修复(补丁)。

同时,尝试让你的Linux管理员通过调整该服务器上的DNS查找过程来解决问题。例如,调整/etc/resolv.conf或启用名称服务缓存守护程序。我不是真正的Linux管理专家,所以无法帮助您。但基于问题和您使用的版本,那就是我会寻找的地方。


我回去查了一下那个错误编号。它是18369949号错误。看起来在JDBC驱动程序的12.1.0.2版本中已经修复了这个问题。所以,你可以通过更新JDBC驱动程序(至少到12.1.0.2版本,最好是12.2)来解决它。 - Matthew McPeak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接