Java weblogic可以';我不能处理任何请求
最近,我们的weblogic在启动几个小时后经常挂起,当它挂起时,它无法处理任何请求 我们看到线程转储,大多数线程都在这样做:Java weblogic可以';我不能处理任何请求,java,oracle,jakarta-ee,weblogic,Java,Oracle,Jakarta Ee,Weblogic,最近,我们的weblogic在启动几个小时后经常挂起,当它挂起时,它无法处理任何请求 我们看到线程转储,大多数线程都在这样做: "[ACTIVE] ExecuteThread: '195' for queue: 'weblogic.kernel.Default (self-tuning)'" - Thread t@5932 java.lang.Thread.State: RUNNABLE at java.util.Hashtable.get(Hashtable.java:
"[ACTIVE] ExecuteThread: '195' for queue: 'weblogic.kernel.Default (self-tuning)'" - Thread t@5932
java.lang.Thread.State: RUNNABLE
at java.util.Hashtable.get(Hashtable.java:335)
at java.util.Properties.getProperty(Properties.java:774)
at java.lang.System.getProperty(System.java:630)
at oracle.net.nl.NVPair.<init>(Unknown Source)
at oracle.net.nl.NVFactory._readNVPair(Unknown Source)
at oracle.net.nl.NVFactory._readNVList(Unknown Source)
at oracle.net.nl.NVFactory._readNVList(Unknown Source)
at oracle.net.nl.NVFactory._readNVList(Unknown Source)
at oracle.net.nl.NVFactory._readNVPair(Unknown Source)
at oracle.net.nl.NVFactory.createNVPair(Unknown Source)
at oracle.net.nt.TcpNTAdapter.<init>(Unknown Source)
at oracle.net.nt.ConnOption.getNT(Unknown Source)
at oracle.net.nt.ConnOption.connect(Unknown Source)
at oracle.net.nt.ConnStrategy.execute(Unknown Source)
at oracle.net.resolver.AddrResolution.resolveAndExecute(Unknown Source)
at oracle.net.ns.NSProtocol.establishConnection(Unknown Source)
at oracle.net.ns.NSProtocol.connect(Unknown Source)
at oracle.jdbc.ttc7.TTC7Protocol.connect(TTC7Protocol.java:1774)
at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:215)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:362)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:536)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:328)
at weblogic.jdbc.common.internal.ConnectionEnvFactory.makeConnection(ConnectionEnvFactory.java:300)
at weblogic.jdbc.common.internal.ConnectionEnvFactory.createResource(ConnectionEnvFactory.java:204)
at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1057)
at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:982)
at weblogic.common.resourcepool.ResourcePoolImpl.reserveResourceInternal(ResourcePoolImpl.java:371)
at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:294)
at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:284)
at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:466)
at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:357)
at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:83)
at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:96)
at weblogic.jdbc.pool.Driver.connect(Driver.java:150)
at weblogic.jdbc.jts.Driver.getNonTxConnection(Driver.java:647)
at weblogic.jdbc.jts.Driver.connect(Driver.java:137)
at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:359)
at com.xx.core.database.Database.connect(Database.java:187)
at com.xx.core.database.Database.connect(Database.java:148)
at com.xx.core.database.Database.newInstance(Database.java:816)
at com.xx.DatabaseProvider.getDatabase(DatabaseProvider.java:10)
at com.xx.Tools.getDatabase(Tools.java:91)
at com.xx.PopInfo.doGet(PopInfo.java:179)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.anychart.servlet.ResourceFilter.doFilter(ResourceFilter.java:53)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3212)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1983)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1890)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1344)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
“[ACTIVE]ExecuteThread:'195'用于队列:'weblogic.kernel.Default(自调优)'”—线程t@5932
java.lang.Thread.State:可运行
位于java.util.Hashtable.get(Hashtable.java:335)
位于java.util.Properties.getProperty(Properties.java:774)
位于java.lang.System.getProperty(System.java:630)
位于oracle.net.nl.NVPair。(来源未知)
在oracle.net.nl.NVFactory上。\u readNVPair(未知源)
在oracle.net.nl.NVFactory上。\u readNVList(未知源)
在oracle.net.nl.NVFactory上。\u readNVList(未知源)
在oracle.net.nl.NVFactory上。\u readNVList(未知源)
在oracle.net.nl.NVFactory上。\u readNVPair(未知源)
位于oracle.net.nl.NVFactory.createNVPair(未知源)
位于oracle.net.nt.TcpNTAdapter。(来源未知)
位于oracle.net.nt.connpoption.getNT(未知源)
位于oracle.net.nt.ConnOption.connect(未知源)
在oracle.net.nt.ConnStrategy.execute(未知源)
位于oracle.net.resolver.AddrResolution.resolveAndExecute(未知源)
在oracle.net.ns.NSProtocol.establishConnection上(未知源)
位于oracle.net.ns.NSProtocol.connect(未知源)
位于oracle.jdbc.ttc7.TTC7Protocol.connect(TTC7Protocol.java:1774)
位于oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:215)
位于oracle.jdbc.driver.OracleConnection(OracleConnection.java:362)
位于oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:536)
位于oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:328)
位于weblogic.jdbc.common.internal.ConnectionEnvFactory.makeConnection(ConnectionEnvFactory.java:300)
位于weblogic.jdbc.common.internal.ConnectionEnvFactory.createResource(ConnectionEnvFactory.java:204)
在weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1057)
在weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:982)
在weblogic.common.resourcepool.ResourcePoolImpl.ReserverResourceInternal(ResourcePoolImpl.java:371)
在weblogic.common.resourcepool.ResourcePoolImpl.ReserverSource(ResourcePoolImpl.java:294)
在weblogic.common.resourcepool.ResourcePoolImpl.ReserverSource(ResourcePoolImpl.java:284)
位于weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:466)
位于weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:357)
位于weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:83)
位于weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:96)
位于weblogic.jdbc.pool.Driver.connect(Driver.java:150)
位于weblogic.jdbc.jts.Driver.getNonExconnection(Driver.java:647)
位于weblogic.jdbc.jts.Driver.connect(Driver.java:137)
位于weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:359)
位于com.xx.core.database.database.connect(database.java:187)
位于com.xx.core.database.database.connect(database.java:148)
位于com.xx.core.database.database.newInstance(database.java:816)
位于com.xx.DatabaseProvider.getDatabase(DatabaseProvider.java:10)
位于com.xx.Tools.getDatabase(Tools.java:91)
在com.xx.PopInfo.doGet(PopInfo.java:179)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
位于weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)
位于weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)
位于weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
位于weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
位于weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
位于com.anychart.servlet.ResourceFilter.doFilter(ResourceFilter.java:53)
位于weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
在weblogic.servlet.internal.WebAppServletContext$servleinvocationAction.run(WebAppServletContext.java:3212)
位于weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
位于weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
位于weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1983)
位于weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1890)
位于weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1344)
在weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
在weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
通过这个stacktrace,似乎所有这些线程都在等待获得数据库连接,但是当我们看到oracle时,我们看到了很多非活动的jdbc连接。为什么有这么多线程在等待连接,但同时数据库有这么多不活动的jdbc连接,我们如何解决这个问题,请帮助我们,谢谢。从堆栈跟踪中可以看出,在访问系统属性时,由于死锁,这些线程处于死锁状态。您可以更改jdbc驱动程序并重试吗。我不确定从哪个jar文件中使用了类oracle.net.nl.NVPair。当我从两个JAR中检查oracle.net.nl.NVPair的源代码时,我看到的唯一对系统属性的引用是
private String\u linesep=system.getProperty(“line.separator”)代码>。这与您在oracle.net.nl.NVPair上的堆栈跟踪相匹配(未知源代码)
当然只是猜测(基本上没有信息)