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

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

        之前某应用就存在长时间不调用,再次调用时处于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。

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

目录
相关文章
|
6月前
程序退出状态
程序退出状态。
37 4
|
7月前
|
安全 Java API
为什么启动线程不直接调用run(),而要调用start(),如果调用两次start()方法会有什么后果
1位工作6年的小伙伴去某里P6一面,被问到这样一道面试题,说,为什么启动一个线程不直接调用run()方法,而要调用start()方法来启动,如果调用两次start()会有什么后果?
61 0
|
11月前
|
Python
Python多线程下调用win32com包相关问题:pywintypes.com_error: (-2147221008, ‘尚未调用 CoInitialize。‘, None, None)问题处理
Python多线程下调用win32com包相关问题:pywintypes.com_error: (-2147221008, ‘尚未调用 CoInitialize。‘, None, None)问题处理
794 0
|
Python
C调用Python的崩溃
C调用Python的崩溃
70 0
|
物联网 Linux 开发者
线程被取消的时候执行清理函数|学习笔记
快速学习线程被取消的时候执行清理函数
80 0
线程被取消的时候执行清理函数|学习笔记
|
物联网 Linux 开发者
注册线程清理函数|学习笔记
快速学习注册线程清理函数
83 0
datagruad 日常状态检查
datagruad 日常状态检查
173 0
|
SQL Windows
在执行xp_cmdshell的过程中出错,调用'LogonUserW'失败,错误代码:'1909'
在上篇文章Could not obtain information about Windows NT group/user 'xxxx\xxxx', error code 0x5里面,我介绍了SQL Server服务启动账号域账号锁定的情况下,有些Job Owner为域账号的作业执行会报错...
1299 0