论坛首页 综合技术论坛

系统配置导致的应用连接池连接oracle时间长的问题解决

浏览 1910 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-04-01   最后修改:2011-04-01

  最近现场工程师反馈过来,过一段时间我们提供给外部的接口(http post xml)响应速度需要1分钟甚至1分多钟,因为都是内网,考虑到在公司PC上的测试情况,基本1秒以内都能返回响应。

  因为这个实现里需要连接外部系统,从外部系统查询到数据后再到数据库做一些查询。于是在调外部系统这加了个处理时间日志,再对数据库查询加上处理时间日志。结果现场反馈过来的日志发现调外部接口开销300ms,算是正常值,而三次数据库查询第一次开销了40秒,接下来两个开销20ms,10ms,后面两都是正常值。因为这三个表的数据都不超过千条,开始怀疑是网络或数据库问题了。

  查看应用启动日志,因为使用的apache的数据源,发现自spring(实际为hibernate)日志提示开始拿sessionFactory到输出数据库版本信息,这里足足花了1分半,而在公司的PC机上仅需1-2秒。

  于是问题就转到了网络或数据库上。从应用机ping数据库机返回正常,从其它机器sqlplus连数据库也正常,将应用换机器部署后,也是正常,正肯定了应用机配置有问题。后来经另一同事提醒,现场同事将应用机的nsswitch中的dns删除后,数据库连接获取就正常了。

 

   发表时间:2011-04-02  
应用机的nsswitch中的dns为什么会造成问题呢?是否能解释一下。
0 请登录后投票
   发表时间:2011-04-02  
魔力猫咪 写道
应用机的nsswitch中的dns为什么会造成问题呢?是否能解释一下。

 

 我们修改的配置是:

hosts: files dns
将dns删除了。因为都是内网,这里会先通过hosts来解析数据库机器,但hosts中并无对应配置,所以转而使用dns反向解析,但dns也通不过,就会一直等待dns返回超时失败,这里开销了较多时间,将dns删除后即解决此问题。关于这些配置还请多查阅资料。

0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics