通常的Web应用都是无状态的连接,一般来说对于防火墙是非常友好的。但是,大多数JavaEE应用服务器都有连接池的概念。为了提高性能,应用服
务器会预先打开并保持一些和后台数据库服务器、LDAP服务器或其他服务器的连接。这些连接通常会将TCP的连接永久保持,除非发生了意外的情况。
我有几个项目发生的问题都是应用服务器和数据库之间由于安全级别的问题,设有不同的防火墙。在系统运行的时候,偶尔会发生数据库连接无法获得的错误(在系统很闲的时候)。客户怀疑应用服务器的不稳定性。
通过各种工具的分析(snoop),发现当应用服务器的数据库连接出现问题的时候,数据库这端没有任何问题,所有的Session连接都在,但是从应用服务器发过来的TCP请求没有到达数据库服务器。是中间的防火墙阻断了数据库的连接。在一个空闲的
TCP
连接上,可以很长时间没有任何的数据流,许多
TCP/IP
的初学者都对此感到惊奇。因此当数据库连接长时间不用(这种情况很常见,例如连接池中有10个连接,由于负载很小,一直只用到前几个)。一般来说,防火墙软件都会定时检查空闲的连接,并将它们阻断,来保证一些异常的中断连接被清除。
这样,我们对数
据库连接问题的原因找到了,由于空闲的数据库连接长时间不用被防火墙给阻断是主要的原因。被阻断了的数据库连接在使用的时候不会自动重新连接吗?大多数应
用服务器所使用的专业的数据库连接池都会有自动重新连接来解决这个问题。也有一些客户使用自己的连接池,或者一些简单的开源的方案,没有自动重联的功能,
导致应用不可用。
就算有的连接池能够自动重连中断的连接,也不会时时刻刻都去检查这些在连接池中的连接是否被可用。因为这种检查非常消耗时间,还会影响应用,因此会每隔几分钟检查一次。在间隔时间内发生的连接中断仍然会引起系统的错误。
另外的解决方案
就是从数据库服务器端进行配置,保证连接的畅通。例如在Oracle中可以设置SQLNET.EXPIRE_TIME小于防火墙的中断时间,就能够是
Oracle的数据库连接在没有数据交换的情况下,由服务器端自动发出探测的数据报,使得防火墙不再认为数据库连接是空闲的连接。
分享到:
相关推荐
思科设备镜像文件ios:PIX硬件防火墙
Juniper防火墙新手教程9:更改Juniper防火墙的管理端口.pdf
深信服SASE服务:下一代防火墙
Juniper防火墙新手教程9:更改Juniper防火墙的管理端口借鉴.pdf
防火墙的主要类型有:网络层防火墙、应用层防火墙、数据库防火墙;防火墙的主要类型有:网络层防火墙、应用层防火墙、数据库防火墙; 第一代防火墙技术主要在路由器上实现,后来将此安全功能独立出来专门用来实现安全...
很多老用户一直在使用我们的产品,为了让微盾:registered:防火墙做的更好,我们希望吸引更多优秀的开发人员加入,聚集更多大神的力量把微盾:registered:防火墙做得更好。 微盾:registered:防火墙 微盾:registered:...
【知识目标】 掌握:Linux防火墙的配置 【能力目标】 会使用Linux命令行工具firewall-cmd配置防火墙 【思政目标】 培养学生职业素养和安全意识
零售智简园区网络部署最佳实践(本地部署:单分支防火墙+交换机+AP组网)
数据库防火墙、数据库加密、数据库脱敏真的可用吗.docx
下一代防火墙,调查报告
您可能感兴趣的文章:常用的Oracle doc命令(收藏)Oracle 多行记录合并/连接/聚合字符串的几种方法Oracle中字符串连接的实现方法php连接oracle数据库及查询数据的方法plsql连接oracle数据库报ora 12154错
华为Web举例:防火墙直路部署,上下行连接交换
不受欢迎的来电老是响起? 试试这款工具,相信你会喜欢。 未注册的用户可使用时间大法(方法见附件)。
让大家详细了解数据库防火墙系统的好处,和数据库防火墙的应用
Sql Server数据库服务器防火墙源码 程序介绍: SystemLogAnalysis是用于暴露在公网上的数据库避免被穷举攻击做的一个小工具,使用了windows server 中的IP策略服务,多线程,不会假死,但攻击时间很长,间隔很...
Oracle数据库防火墙使用经验及数据库安全管理的思考.pdf
1.网络防火墙:包含程序对外连接提醒控制,IP和端口规则,ARP防火墙,新增加对指定进程网络数据嗅探功能。 2.主动防御:包含进程防火墙,文件保护,注册表保护 3.系统检测:包含隐藏进程和隐藏服务启动项检测,...
数据库防火墙解决方案白皮书.docx
计算机网络基础
信息安全技术基础