ITPub博客

首页 > 数据库 > Oracle > Dead Connection Detection(DCD)

Dead Connection Detection(DCD)

原创 Oracle 作者:killdata 时间:2014-09-15 23:14:14 0 删除 编辑
Oracle DCD(死连接检测)是从SQL*NET 2.1开始出现的功能,包括Oracle Net8和Oracle NET。
主要功能:
当服务端侦测到连接异常中断,并且会话为dead session时,DCD将要释放与它相关的所有资源(例如回滚事务,释放lock、latch、memory)。
适用场景:
客户端已经power down,但是与session的连接并没有断开,典型的网络与PC客户端应用的问题。
配置DCD:
通过sqlnet.ora文件里SQLNET.EXPIRE_TIME进行配置
当连接被建立时,SQL*Net读取参数文件的设置,在服务端初始化DCD。时间间隔设置为sqlnet.ora文件里SQLNET.EXPIRE_TIME对应的非零值(单位:分钟)。
当达到超过SQLNET.EXPIRE_TIME对应的时间时,服务端的SQL*NET会发送一个探针包(probe packet)到客户端(如果使用db link,连接的目标端构成服务端)。
这里的"探针"本质上是个空包,不会表示任何SQL*NET级别的数据,它仅在底层协议上创建了数据流。
当连接仍然是active时,探针被丢弃,定时器机制( timer mechanism)被重置。如果client被异常终止,服务器端将会接受一个错误。SQL*Net将要通知系统释放掉相关资源。
监控DCD:
最好的方式是server trace:
TRACE_LEVEL_SERVER=16
TRACE_DIRECTORY_SERVER=
在sqlnet.ora中加入如上的参数,生成的trace文件是以svr_.trc形式命名的。

8i之前版本:
 osntns: Enabling dead connection detection (1 min) 

从8i开始:
  nstimini: entry 
  nstimig: entry 
  nstimig: normal exit 
  nstimini: initializing NLTM in asynchronous mode 
  nstimini: normal exit 
  nstimstart: entry

从9.2.0.4.0版本开始,探针信息在trace文件中看不到了,可以通过网络工具进行抓包分析获得,也可通过strace命令等。

具体监控方式可参考395505.1和438923.1


参考文章:
151972.1
395505.1
438923.1

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29843794/viewspace-1270352/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: rman备份脚本
下一篇: windows常用cmd命令
请登录后发表评论 登录
全部评论

注册时间:2014-09-03

  • 博文量
    30
  • 访问量
    49276