`
yangzb
  • 浏览: 3500325 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

转载:别让防火墙中断数据库连接

阅读更多

通常的Web应用都是无状态的连接,一般来说对于防火墙是非常友好的。但是,大多数JavaEE应用服务器都有连接池的概念。为了提高性能,应用服 务器会预先打开并保持一些和后台数据库服务器、LDAP服务器或其他服务器的连接。这些连接通常会将TCP的连接永久保持,除非发生了意外的情况。

我有几个项目发生的问题都是应用服务器和数据库之间由于安全级别的问题,设有不同的防火墙。在系统运行的时候,偶尔会发生数据库连接无法获得的错误(在系统很闲的时候)。客户怀疑应用服务器的不稳定性。

通过各种工具的分析(snoop),发现当应用服务器的数据库连接出现问题的时候,数据库这端没有任何问题,所有的Session连接都在,但是从应用服务器发过来的TCP请求没有到达数据库服务器。是中间的防火墙阻断了数据库的连接。在一个空闲的 TCP 连接上,可以很长时间没有任何的数据流,许多 TCP/IP 的初学者都对此感到惊奇。因此当数据库连接长时间不用(这种情况很常见,例如连接池中有10个连接,由于负载很小,一直只用到前几个)。一般来说,防火墙软件都会定时检查空闲的连接,并将它们阻断,来保证一些异常的中断连接被清除。

这样,我们对数 据库连接问题的原因找到了,由于空闲的数据库连接长时间不用被防火墙给阻断是主要的原因。被阻断了的数据库连接在使用的时候不会自动重新连接吗?大多数应 用服务器所使用的专业的数据库连接池都会有自动重新连接来解决这个问题。也有一些客户使用自己的连接池,或者一些简单的开源的方案,没有自动重联的功能, 导致应用不可用。

就算有的连接池能够自动重连中断的连接,也不会时时刻刻都去检查这些在连接池中的连接是否被可用。因为这种检查非常消耗时间,还会影响应用,因此会每隔几分钟检查一次。在间隔时间内发生的连接中断仍然会引起系统的错误。

另外的解决方案 就是从数据库服务器端进行配置,保证连接的畅通。例如在Oracle中可以设置SQLNET.EXPIRE_TIME小于防火墙的中断时间,就能够是 Oracle的数据库连接在没有数据交换的情况下,由服务器端自动发出探测的数据报,使得防火墙不再认为数据库连接是空闲的连接。

分享到:
评论

相关推荐

    360安全防火墙拦截数据库连接处理2003版.doc

    360安全防火墙拦截数据库连接处理2003版.doc

    SQLSecure:防火墙与数据库安全技术教程.docx

    SQLSecure:防火墙与数据库安全技术教程

    思科设备镜像文件ios:PIX硬件防火墙

    思科设备镜像文件ios:PIX硬件防火墙

    Juniper防火墙新手教程9:更改Juniper防火墙的管理端口.pdf

    Juniper防火墙新手教程9:更改Juniper防火墙的管理端口.pdf

    信息安全技术基础:九大角度分析数据库安全漏洞.docx

    - 中级漏洞如CVE-2006-1871,可能导致信息泄露,轻微影响数据库性能或出现连接中断。 - 高级漏洞如CVE-2006-3702,能严重破坏数据库,甚至导致系统宕机。 3. **受影响系统**: - 漏洞与操作系统及其版本密切相关...

    数据库安全防火墙使用手册

    《数据库安全防火墙使用手册》是一本专门为数据库管理员和IT专业人士设计的实用指南,旨在帮助他们理解和有效地使用数据库安全防火墙。PDF格式的文档通常包含了详细的步骤、示例和最佳实践,以确保用户能够深入理解...

    Juniper防火墙新手教程9:更改Juniper防火墙的管理端口借鉴.pdf

    Juniper防火墙新手教程9:更改Juniper防火墙的管理端口借鉴.pdf

    数据库连接池选型

    数据库连接池是现代应用程序开发中的重要组成部分,它有效地管理和优化了数据库资源的使用,提高了系统的性能和稳定性。本文将深入探讨“数据库连接池选型”的关键知识点,主要以阿里Druid连接池为例,同时也会涉及...

    数据库连接 数据库 连接 模型

    对于远程连接,可能需要设置防火墙规则和权限,确保只有授权的用户和应用可以访问数据库。 7. 多线程环境下的连接:在多线程应用程序中,每个线程可能需要独立的数据库连接,因此需要妥善管理这些连接,避免线程间...

    操作系统安全:防火墙.pptx

    防火墙的主要类型有:网络层防火墙、应用层防火墙、数据库防火墙;防火墙的主要类型有:网络层防火墙、应用层防火墙、数据库防火墙; 第一代防火墙技术主要在路由器上实现,后来将此安全功能独立出来专门用来实现安全...

    阿里德鲁伊数据库连接池子

    阿里德鲁伊数据库连接池(Druid)是阿里巴巴开源的一款高效、强大的数据库连接池组件,它在Java开发中被广泛使用。Druid旨在提供监控、性能优化和扩展性,为应用提供稳定、高效的数据库连接管理服务。下面我们将深入...

    数据库连接池的三种实现方法

    数据库连接池是现代应用程序中管理数据库连接的重要工具,它能够有效地提高系统性能并优化资源利用率。在Java开发中,有三种常见的数据库连接池实现:DBCP(BasicDataSource)、C3P0以及阿里开源的Druid。下面将详细...

    Oracle数据库防火墙使用经验及数据库安全管理的思考.pdf

    Oracle数据库防火墙使用经验及数据库安全管理的思考 本文概括了Oracle数据库防火墙的使用经验和数据库安全管理的思考。从数据库防火墙的概念到部署模式,讨论了如何使用数据库防火墙来加强数据库访问控制和保护...

    数据库防火墙、数据库加密、数据库脱敏真的可用吗.docx

    数据库防火墙、数据库加密和数据库脱敏是针对数据库安全提出的三种主要解决方案,它们各自有着不同的功能和应用场景。 数据库防火墙是一种主动防御系统,通过分析SQL协议来实施访问控制、阻止恶意操作并进行行为...

    测试远程数据库是否连接成功

    在IT行业中,数据库是存储和管理数据的核心工具,而远程数据库连接则是实现分布式系统和跨网络数据共享的关键技术。本文将详细阐述如何测试远程数据库的连接,并探讨相关的知识点。 首先,我们要理解“远程数据库...

    零售智简园区网络部署最佳实践(本地部署:单分支防火墙+交换机+AP组网)

    零售智简园区网络部署最佳实践(本地部署:单分支防火墙+交换机+AP组网)

    数据库连接出错解决

    5. **防火墙和安全设置**:确保数据库服务器的防火墙允许来自应用程序的连接,并且数据库服务正在运行。 6. **连接池**:如果使用了连接池,可能需要调整池的大小和超时设置,以防资源耗尽或连接超时。 7. **并发...

    数据库连接加解密工具.rar

    数据库连接加解密工具是一种用于保护和管理数据库连接信息的安全软件。在IT行业中,数据库连接字符串通常包含敏感信息,如服务器地址、数据库名、用户名和密码,这些信息如果不妥善处理,可能会导致数据泄露,对企业...

    测试数据库是否连接成功.doc

    在IT行业中,数据库连接是开发过程中的重要环节,确保应用程序能够正确地与数据库进行交互。本文将详细讲解如何在MyEclipse集成开发环境中测试数据库连接,包括MySQL和SQL Server 2005。 首先,我们关注的是...

Global site tag (gtag.js) - Google Analytics