为什么我的weblogic过一段时间就会将连接池全部重建,导致所有客户端访问卡死(十几二十秒)。
有三台应用服务器,连一个数据库,三台应用服务器都有这现象,但不是同时发生(某一台应用服务器连接池全部重建,导致卡死的时候,其他两台应用服务器访问正常。)应用服务器操作系统:Windows Server 2003 R2 Standard Edition SP2
数据库服务器操作系统:Windows Server 2003 R2 Enterprise X64 Edition SP2
内存、cpu资源都没有耗尽,应用和数据库服务器cpu使用率都较低,应用服务器内存占用50%左右,数据库服务器内存占用75%左右。weblogic版本:
Console Release Build
8.1.6.0
Server Release Build
8.1.6.0
Server BuildWebLogic Server
8.1 SP6 Wed Jun 21 08:18:55 PDT 2006 781680
All Server Product Versions
WebLogic Server 8.1 SP6 Wed Jun 21 08:18:55 PDT 2006 781680
WebLogic XMLX Module 8.1 SP6 Wed Jun 21 08:18:55 PDT 2006 781680 Sqlserver数据库版本:
Microsoft SQL Server Management Studio 9.00.5000.00
Microsoft Analysis Services 客户端工具 2005.090.5000.00
Microsoft 数据访问组件 (MDAC) 2000.086.3959.00 (srv03_sp2_rtm.070216-1710)
Microsoft MSXML 2.6 3.0 6.0
Microsoft Internet Explorer 6.0.3790.3959
Microsoft .NET Framework 2.0.50727.42
操作系统 5.2.3790日志:####<2011-12-3 上午09时48分10秒 CST> <Error> <HTTP> <mysvr> <myserver> <ExecuteThread: '85' for queue: 'weblogic.kernel.Default'> <<WLS Kernel>> <> <BEA-101017> <[ServletContext(id=2723444,name=defaultroot,context-path=/defaultroot)] Root cause of ServletException.
javax.servlet.jsp.JspException: Input/output error: java.net.SocketException: socket write error: Connection reset by peer.
at org.apache.struts.util.ResponseUtils.writePrevious(ResponseUtils.java:186)
at org.apache.struts.taglib.logic.IterateTag.doAfterBody(IterateTag.java:400)
at jsp_servlet._comm_mail.__mail_innermailsearch._jspService(__mail_innermailsearch.java:1353)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:370)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:107)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:225)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at com.whir.common.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:93)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:7049)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3732)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '66' for queue: 'weblogic.kernel.Default'> <<anonymous>> <> <BEA-001068> <Connection for pool "MyJDBC Connection Pool" created.>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '78' for queue: 'weblogic.kernel.Default'> <<anonymous>> <> <BEA-001068> <Connection for pool "MyJDBC Connection Pool" created.>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '78' for queue: 'weblogic.kernel.Default'> <<anonymous>> <> <BEA-001132> <Initialized statement cache of size "5" for connection in pool "MyJDBC Connection Pool".>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '66' for queue: 'weblogic.kernel.Default'> <<anonymous>> <> <BEA-001132> <Initialized statement cache of size "5" for connection in pool "MyJDBC Connection Pool".>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '41' for queue: 'weblogic.kernel.Default'> <admin> <BEA1-48620971A704B4F312AD> <BEA-001068> <Connection for pool "MyJDBC Connection Pool" created.>
####<2011-12-3 上午09时48分10秒 CST> <Info> <Common> <mysvr> <myserver> <ExecuteThread: '78' for queue: 'weblogic.kernel.Default'> <<anonymous>> <> <BEA-000628> <Created "10" resources for pool "MyJDBC Connection Pool", out of which "10" are available and "0" are unavailable.>
####<2011-12-3 上午09时48分10秒 CST> <Info> <Common> <mysvr> <myserver> <ExecuteThread: '64' for queue: 'weblogic.kernel.Default'> <admin> <BEA1-48600971A704B4F312AD> <BEA-000628> <Created "10" resources for pool "MyJDBC Connection Pool", out of which "10" are available and "0" are unavailable.>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '98' for queue: 'weblogic.kernel.Default'> <admin> <> <BEA-001132> <Initialized statement cache of size "5" for connection in pool "MyJDBC Connection Pool".>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '92' for queue: 'weblogic.kernel.Default'> <<anonymous>> <> <BEA-001068> <Connection for pool "MyJDBC Connection Pool" created.>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '92' for queue: 'weblogic.kernel.Default'> <<anonymous>> <> <BEA-001132> <Initialized statement cache of size "5" for connection in pool "MyJDBC Connection Pool".>
####<2011-12-3 上午09时48分10秒 CST> <Info> <Common> <mysvr> <myserver> <ExecuteThread: '46' for queue: 'weblogic.kernel.Default'> <admin> <> <BEA-000628> <Created "10" resources for pool "MyJDBC Connection Pool", out of which "10" are available and "0" are unavailable.>
####<2011-12-3 上午09时48分10秒 CST> <Info> <Common> <mysvr> <myserver> <ExecuteThread: '87' for queue: 'weblogic.kernel.Default'> <<anonymous>> <> <BEA-000628> <Created "10" resources for pool "MyJDBC Connection Pool", out of which "10" are available and "0" are unavailable.>
####<2011-12-3 上午09时48分10秒 CST> <Info> <Common> <mysvr> <myserver> <ExecuteThread: '92' for queue: 'weblogic.kernel.Default'> <<anonymous>> <> <BEA-000628> <Created "10" resources for pool "MyJDBC Connection Pool", out of which "10" are available and "0" are unavailable.>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '11' for queue: 'weblogic.kernel.Default'> <admin> <> <BEA-001068> <Connection for pool "MyJDBC Connection Pool" created.>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '11' for queue: 'weblogic.kernel.Default'> <admin> <> <BEA-001132> <Initialized statement cache of size "5" for connection in pool "MyJDBC Connection Pool".>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '71' for queue: 'weblogic.kernel.Default'> <admin> <> <BEA-001068> <Connection for pool "MyJDBC Connection Pool" created.>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '71' for queue: 'weblogic.kernel.Default'> <admin> <> <BEA-001132> <Initialized statement cache of size "5" for connection in pool "MyJDBC Connection Pool".>
有三台应用服务器,连一个数据库,三台应用服务器都有这现象,但不是同时发生(某一台应用服务器连接池全部重建,导致卡死的时候,其他两台应用服务器访问正常。)应用服务器操作系统:Windows Server 2003 R2 Standard Edition SP2
数据库服务器操作系统:Windows Server 2003 R2 Enterprise X64 Edition SP2
内存、cpu资源都没有耗尽,应用和数据库服务器cpu使用率都较低,应用服务器内存占用50%左右,数据库服务器内存占用75%左右。weblogic版本:
Console Release Build
8.1.6.0
Server Release Build
8.1.6.0
Server BuildWebLogic Server
8.1 SP6 Wed Jun 21 08:18:55 PDT 2006 781680
All Server Product Versions
WebLogic Server 8.1 SP6 Wed Jun 21 08:18:55 PDT 2006 781680
WebLogic XMLX Module 8.1 SP6 Wed Jun 21 08:18:55 PDT 2006 781680 Sqlserver数据库版本:
Microsoft SQL Server Management Studio 9.00.5000.00
Microsoft Analysis Services 客户端工具 2005.090.5000.00
Microsoft 数据访问组件 (MDAC) 2000.086.3959.00 (srv03_sp2_rtm.070216-1710)
Microsoft MSXML 2.6 3.0 6.0
Microsoft Internet Explorer 6.0.3790.3959
Microsoft .NET Framework 2.0.50727.42
操作系统 5.2.3790日志:####<2011-12-3 上午09时48分10秒 CST> <Error> <HTTP> <mysvr> <myserver> <ExecuteThread: '85' for queue: 'weblogic.kernel.Default'> <<WLS Kernel>> <> <BEA-101017> <[ServletContext(id=2723444,name=defaultroot,context-path=/defaultroot)] Root cause of ServletException.
javax.servlet.jsp.JspException: Input/output error: java.net.SocketException: socket write error: Connection reset by peer.
at org.apache.struts.util.ResponseUtils.writePrevious(ResponseUtils.java:186)
at org.apache.struts.taglib.logic.IterateTag.doAfterBody(IterateTag.java:400)
at jsp_servlet._comm_mail.__mail_innermailsearch._jspService(__mail_innermailsearch.java:1353)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:370)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:107)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:225)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at com.whir.common.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:93)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:7049)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3732)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '66' for queue: 'weblogic.kernel.Default'> <<anonymous>> <> <BEA-001068> <Connection for pool "MyJDBC Connection Pool" created.>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '78' for queue: 'weblogic.kernel.Default'> <<anonymous>> <> <BEA-001068> <Connection for pool "MyJDBC Connection Pool" created.>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '78' for queue: 'weblogic.kernel.Default'> <<anonymous>> <> <BEA-001132> <Initialized statement cache of size "5" for connection in pool "MyJDBC Connection Pool".>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '66' for queue: 'weblogic.kernel.Default'> <<anonymous>> <> <BEA-001132> <Initialized statement cache of size "5" for connection in pool "MyJDBC Connection Pool".>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '41' for queue: 'weblogic.kernel.Default'> <admin> <BEA1-48620971A704B4F312AD> <BEA-001068> <Connection for pool "MyJDBC Connection Pool" created.>
####<2011-12-3 上午09时48分10秒 CST> <Info> <Common> <mysvr> <myserver> <ExecuteThread: '78' for queue: 'weblogic.kernel.Default'> <<anonymous>> <> <BEA-000628> <Created "10" resources for pool "MyJDBC Connection Pool", out of which "10" are available and "0" are unavailable.>
####<2011-12-3 上午09时48分10秒 CST> <Info> <Common> <mysvr> <myserver> <ExecuteThread: '64' for queue: 'weblogic.kernel.Default'> <admin> <BEA1-48600971A704B4F312AD> <BEA-000628> <Created "10" resources for pool "MyJDBC Connection Pool", out of which "10" are available and "0" are unavailable.>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '98' for queue: 'weblogic.kernel.Default'> <admin> <> <BEA-001132> <Initialized statement cache of size "5" for connection in pool "MyJDBC Connection Pool".>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '92' for queue: 'weblogic.kernel.Default'> <<anonymous>> <> <BEA-001068> <Connection for pool "MyJDBC Connection Pool" created.>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '92' for queue: 'weblogic.kernel.Default'> <<anonymous>> <> <BEA-001132> <Initialized statement cache of size "5" for connection in pool "MyJDBC Connection Pool".>
####<2011-12-3 上午09时48分10秒 CST> <Info> <Common> <mysvr> <myserver> <ExecuteThread: '46' for queue: 'weblogic.kernel.Default'> <admin> <> <BEA-000628> <Created "10" resources for pool "MyJDBC Connection Pool", out of which "10" are available and "0" are unavailable.>
####<2011-12-3 上午09时48分10秒 CST> <Info> <Common> <mysvr> <myserver> <ExecuteThread: '87' for queue: 'weblogic.kernel.Default'> <<anonymous>> <> <BEA-000628> <Created "10" resources for pool "MyJDBC Connection Pool", out of which "10" are available and "0" are unavailable.>
####<2011-12-3 上午09时48分10秒 CST> <Info> <Common> <mysvr> <myserver> <ExecuteThread: '92' for queue: 'weblogic.kernel.Default'> <<anonymous>> <> <BEA-000628> <Created "10" resources for pool "MyJDBC Connection Pool", out of which "10" are available and "0" are unavailable.>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '11' for queue: 'weblogic.kernel.Default'> <admin> <> <BEA-001068> <Connection for pool "MyJDBC Connection Pool" created.>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '11' for queue: 'weblogic.kernel.Default'> <admin> <> <BEA-001132> <Initialized statement cache of size "5" for connection in pool "MyJDBC Connection Pool".>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '71' for queue: 'weblogic.kernel.Default'> <admin> <> <BEA-001068> <Connection for pool "MyJDBC Connection Pool" created.>
####<2011-12-3 上午09时48分10秒 CST> <Info> <JDBC> <mysvr> <myserver> <ExecuteThread: '71' for queue: 'weblogic.kernel.Default'> <admin> <> <BEA-001132> <Initialized statement cache of size "5" for connection in pool "MyJDBC Connection Pool".>
at jsp_servlet._comm_mail.__mail_innermailsearch._jspService(__mail_innermailsearch.java:1353)
看日志,似乎和你的某功能有关。似乎有个mail_innermailsearch.jsp的东东,里面用了struts的html:logic 标签,这个地方是有问题的,请检查,是否循环体过大了
at org.apache.struts.util.ResponseUtils.writePrevious(ResponseUtils.java:186)
at org.apache.struts.taglib.logic.IterateTag.doAfterBody(IterateTag.java:400)
at jsp_servlet._comm_mail.__mail_innermailsearch._jspService(__mail_innermailsearch.java:1353)再根据socket write error: Connection reset by peer.
http://hi.baidu.com/suofang/blog/item/5bd0fed3be6512d3a9ec9a3b.html
其中一种可能的原因是 服务器接受的连接数超过了其承载量
我一直刷新监控页面,Idle Threads一直维持在190左右,然后突然页面就死了,等到半分钟左右恢复正常后,Idle Threads是0,也就是说瞬间Threads就被占满了。这可能是什么情况引起的呢?
Weblogic设置保存的HTTP操作日志文件大小是5m,当日志满了,生成新的日志文件时,会导致日志写等待(猜测),从而导致Weblogic线程瞬间占满,系统卡死。感谢各位热心的朋友。