解决weblogic错误:java.sql.SQLRecoverableException: IO Error: Broken pipe

首先说一下系统基础架构:java

               服务器:weblogic11g集群web

                数据库:oracle数据库Racsql

出错信息: 1.java.sql.SQLRecoverableException: Closed Connection数据库

              2.Test "SELECT 1 FROM DUAL" set up for pool "mds-soa" failed with exception: "java.sql.SQLRecoverableException: IO Error: Broken pipe"服务器

日志信息是以上两种,能够看出是输入源的问题。架构

解决思路及步骤:1.check 在weblogic的jndi中的数据源是否可以正常链接。核实之后;oracle

                       2.检查数据库服务器是否正常。检查后,发现一台数据库服务器down了。测试

                          而后检查业务数据,发现,在down以后,weblogic服务器端已经连续报了两天这种错误。spa

                          这种状况很是不符合常理;日志

                      3.咱们首先怀疑的是RAC环境安装配置有问题,没有在集群中的一台数据库down了以后及时的切换。

                         经排查,不多是这种缘由。

                      4.再次返回到weblogic集群配置中,咱们仔细检查数据源的配置,一次点击Domain->Service->Data Source->Configuration->Connection Pool

                          在Advance中,咱们发现了一个配置“Test Connections On Reserve”,其属性值为false

                           此属性的含义为:“使 WebLogic Server 可以在将链接提供给客户机以前对链接进行测试。(要求指定“测试表名称”。)此测试在响应客户机对池中的链接的 请                                                   求时将添加短期的延迟,但会确保客户机收到有效链接。MBean 属性 (不适用于应用程序模块)”

                          此时,改变改属性值为true,问题解决

 此属性若为true,则在调用jndi的方式调用数据库的时候,会首先检查“SQL SELECT 1 FROM DUAL”,若值不为null,则weblogic将会和RAC中的一台数据库服务器创建链接;若值为null,则RAC回从新分配其余的服务器。

相关文章
相关标签/搜索