应用长时间未调用后再次调用出现hang的情况

之前某应用就存在长时间不调用,再次调用时处于hang,等待10分钟返回3113的连接错误。今天正好同事也问了个相同的问题,也是应用长时间不调用就出现这种情况。

以前对于这种问题进行过排查,但一直未解决,针对今天的这个系统的问题,还是按照老方法检查,

1. 检查应用日志,确实长时间等待后报3113的错误。

2. 检查数据库的PROFILE中idle_time参数,此处设置的是DEFAULT的UNLIMITED,说明超时不会是由数据库用户PROFILE配置导致的。

3. 检查网络环境,因为这个应用是从一个网段访问另一个网段的数据库,咨询网络中心后,中间有一个防火墙,确实也有超时的设置,是40分钟,也就是应用连接空闲40分钟后,就会自动kill连接。

问题找到了,为了解决这个问题,其实方法也有很多:

1. 写个脚本定时调这个应用,保证40分钟内有调用,就不会出现超时的问题了。

2. 通过Oracle的一些机制自动探测数据库连接来间接保证40分钟内应用有调用。

这篇文章介绍的DCD就是一种比较不错的方法:http://sundog315.itpub.net/post/308/530331

另外老熊也有一篇非常好的文章推荐:http://www.laoxiong.net/oracle_and_firewall.html。

都是值得反复玩味体会的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值