动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.Oracle中PL/SQL编程对系统性能的.
.Shrink Undo表空间,释放过度占用.
.转储控制文件头.
.教你检测Oracle的可用性和表空间.
.oracle8i学习笔记(2).
.关于Oracle日期转换的一点小经验.
.Oracle PL/SQL入门之案例实践.
.oracle10g无法连接错误排除.
.oracle 中的常用命令重点展播.
.使用Windows工具管理Nt上的Oracl.
.集合和成员函数.
.DB2与Oracle数据库之间的远程复制.
.Oracle Database 10g:最佳新特性.
.ORACLE9i 的透明网关的配置.
.oracle数据库备份与恢复 a piece.
.ORACLE在HP-UX下的系列问题处理(.
.解决oracle10g安装后的中文显示乱.
.ORACLE问题,每天10问(十).
.如何查看unix下某个oracle OS的进.
.TIP 如何为表加唯一约束(保存或者.

都是防火墙惹的祸--Oracle连接老断!

发表日期:2008-2-9 |



  
      忙乎了将近两周,终于搞定了。从一开始怀疑是网络的问题,后来觉得不是,可能是应用的问题,发现很可能是数据库的问题,最后真相大白又回到原点,原来是网络防火墙在捣鬼。 行为非常诡异,怎么想也想不明白,我都没多少信心预备放弃了,没想到原因竟然如此简单。

     事情是这样的,我们开发的系统需要保持和Oracle数据库的持续连接,假如因为网络或者其它原因非正常断开的话,必须重新启动应用程序,否则将会出错无法使用。在测试环境运行很稳定,一搬到机房机架上就出现希奇的现象,第二天早上来看服务器,所有的数据库连接都断掉了,有时候白天也断,而且一个应用断的次数非凡频繁,其它应用白天不怎么断。因为我们的应用服务器网段是192.168.x.x,而数据库服务器在10.x.x.x网段,刚开始我怀疑是中间的路由器有这种问题,假如网络持续一段时间没有流量自动把网络断开。并且和网管说了这事,他说不可能有这种问题。因为我们以前做过另外一个系统也存在这种问题,似乎是这个原因,不过后来怎么解决的不是很清楚了。找知情人士了解后原来是数据库网卡的原因,从应用服务器ping数据库服务器一个晚上有几次丢包现象,换数据库服务器网卡就没事了。
        于是我们用ping -t server-IP > ping.txt 来检查网络是否有丢包现象,持续几个晚上都没有一次丢包的,网络状况非常好。我检查网卡属性的电源属性卡上有一个复选框是否答应计算机闲置时关闭该设备,默认是选中的。于是我怀疑是网卡被计算机关掉了,于是所有连接均断开了,但是白天之断开一个解释不同啊。应用程序有问题?为什么测试环境中没发现问题?有可能是某一块数据有问题,他们测试时乱调图碰到雷区了,于是我检查所有的数据,没有那种问题。真是让人费解,而且我持续ping,网卡也不可能被关闭的啊。
        有可能是某个端口关闭了,于是我们写了一个小程序,打开一个数据库连接,每隔一定时间查一下数据库,保持端口是打开的。问题依旧存在,这个小程序的连接没断,其它的全断了。

        是什么原因呢?其实现在想起来问题已经很明朗了,但是当时就是不明白怎么回事。而且那天老是打电话过来,连接又断了,上午断两次,下午又断了两次。一整天我们都没想出什么好办法,怎么会这么变态,为什么会只断掉一个?我当时怀疑是我们应用程序有点问题,在绞尽脑汁想办法怎么检测应用程序的错误。
为了检测断开的规律,我写了两个触发器,用户登陆时网一个表中插入一条记录,注销是把注销时间填入表中。后来发现根本一点用也没有,非正常退出时根本不会触发LOGOFF事件,白忙乎了!

         下班了,骑车回家,忽然想到一个办法,定时激活连接,保持活动状态看它还断不断。很多好的想法都是在我离开办公室回家的路上想出来了,在办公室怎么想也想不出来,离开办公室就想出了。第二天马上行动,果真有效,连接没有再断过。但是这样不是个办法,为什么连接一段时间不活动就会被杀掉了呢?在我们的应用程序中看不到原因,只是说连接丢失,在sqlplus中提示说end-of-file communication channel。
        今天一整天我都在网上狂找相关内容,oracle connection lost, oracle session lost,oracle session timeout等等,看到也有人碰到类似我这种情况的人,但是没有好的办法。我把Oracle net service得文档翻了一遍,看到sqlnet.ora有一个关于超时的参数SQLNET.EXPIRE_TIME简直如获至宝,后来发现原来没用。服务器端自动杀掉客户端进程的情况还可以通过Profile来实现,限制IDLE_TIME,但是我检查数据库根本没有相关的设置。

      好不轻易找到一溜很长的帖子,也是关于我这种问题的,最后他说解决了是防火墙的问题。但是以前我印象中防火墙只是针对端口的,怎么会保持某些活动连接,杀掉不活动的连接呢?后来我去网上查了查防火前的有关原理,好象它能处理到TCP/IP连接一级,也就是可以只断开某一个不活动的连接。但我还是不很确定,但是我知道在数据库服务器和应用服务器之间有防火墙,把机器搬过去的那天,能ping通数据库服务器,但是不能连数据库,后来网管把Oracle数据库的两个端口打开就可以了。
       我们找到网管,他说是有这种问题,防火墙就是这样的,假如一个连接长时间不活动就会自动杀掉的。假如不这样的话,防火墙的内存很快会用完,还说我们违反了TCP/IP的设计原则。但是没办法,我们的应用程序需要持续而稳定数据库连接,只能把我们的应用服务器放到防火墙后面去。于是他把我们的服务器跳了线,变成一个网段的,从此不再有连接断开的问题了。终于彻底解决这个问题,长舒一口气!
!!

    其实主要原因还是网络规划有问题,怎么能把我们应用服务器和数据库服务器隔开呢?   
上一篇:导出oracle数据库对象---同义词,系列,视图 人气:468
下一篇:Oracle中的临时表用法汇总 人气:546
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-9-6 Movie34电影搜索引擎 v3.0
2008-9-6 wap2.0仿帝国建站喜用 v2.0
2008-9-6 免费人才招聘网 宽屏版 v3.01
2008-9-6 喜喔喔视频采集程序 v1.0 beta
2008-9-6 ASP客户管理系统
2008-9-6 主流驿站中秋祝福程序
2008-9-6 php实现msn协议的类
2008-9-5 Coppermine Photo Gallery v1.4.
2008-9-5 清松网络日记本 v2.4
2008-8-23 Mini WinMount V0.4
2008-8-23 Vista优化大师3.11正式版
2008-8-23 Wine 1.13
2008-8-23 KlipFolio 5.0 Build 5899-80
2008-8-23 Windows Sysinternals Desktops
2008-8-23 OneTap Movies1.2破解版
2008-8-23 AnnotaterPDF阅读1.1.503 破解版
2008-8-23 SoundMeter分贝测量仪 v1.0汉化破
2008-8-23 iDrum音乐节拍1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | Html转换js | js/vbs加密 | md5加密 | 进制转换
实用工具:汉字翻译拼音 | 符号对照表 | 个税计算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号