在我们的生产OSB服务器中,我们经常遇到障碍。堆栈跟踪始终相同,最终使用方法:org.apache.xmlbeans.impl.store.IdentifierImpl.compareTo(Object)。
我附上有问题代码的完整堆栈跟踪。我不是一个线程愚蠢的大师,但imho真正奇怪的是,这个线程似乎不等待对象的锁定获取,因为没有锁定的指示。此外,它似乎不等待外部服务的响应。它只是在xmlbeans类中冻结。我在某处看到,由于代码增强,堆栈跟踪可能不是100%准确,所以也许胎面等待其他方法???
Environment information:
JVM:Jrockit R28.0.0-679-130297-1.6.0_17-20100312-2122-windows-x86_64Microsoft
Operating System: Windows "Longhorn" version 6.1 Service Pack 1 (Build 7601) (64-bit)
Heap size: 4,00 GB
我也有OSB在这种情况下创建的事件输出。我打开了任务控制记录,但它也表明org.apache.xmlbeans.impl.store.IdentifierImpl.compareTo方法是一个“热门”,占66.67%。
此外,当我们遇到很多问题时,我注意到垃圾收集器运行得更频繁,CPU使用率一直增加到100%。
除了某人写一个直接的解决方案之外我没有,但任何有关我如何进一步调查此事的迹象都会很棒。
####<29-10-2013 13:35:48 CET> <Error> <WebLogicServer> <KS-MA-OSBTST07> <osb_server1> <[ACTIVE] ExecuteThread: '25' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <3be3803d83405319:34eb3ef2:141fecc615d:-8000-000000000001028d> <1383050148480> <BEA-000337> <[STUCK] ExecuteThread: '24' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "688" seconds working on the request "weblogic.servlet.internal.ServletRequestImpl@4a153639[
POST /Presentation_Services/Public/MyProxy HTTP/1.1
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.3.3
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Content-Length: 914
]", which is more than the configured time (StuckThreadMaxTime) of "600" seconds. Stack trace:
Thread-124 "[STUCK] ExecuteThread: '24' for queue: 'weblogic.kernel.Default (self-tuning)'" <alive, suspended, priority=1, DAEMON> {
org.apache.xmlbeans.impl.store.IdentifierImpl.compareTo(IdentifierImpl.java:78)
weblogic.xml.query.runtime.sort.DocOrderSort.comparison(DocOrderSort.java:48)
weblogic.xml.query.runtime.sort.GeneralSort$INBComparator.compare(GeneralSort.java:297)
weblogic.xml.query.util.QSortAlgorithm.nrQuickSort3(QSortAlgorithm.java:24)
weblogic.xml.query.util.QSortAlgorithm.sort(QSortAlgorithm.java:171)
weblogic.xml.query.runtime.sort.GeneralSort.sortEverything(GeneralSort.java:325)
weblogic.xml.query.runtime.sort.GeneralSort.externalSortEverything(GeneralSort.java:421)
weblogic.xml.query.runtime.sort.GeneralSort.fetchNext(GeneralSort.java:568)
weblogic.xml.query.iterators.GenericIterator.peekNext(GenericIterator.java:161)
weblogic.xml.query.runtime.qname.InsertNamespaces.fetchNext(InsertNamespaces.java:148)
weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:102)
weblogic.xml.query.runtime.core.ExecutionWrapper.fetchNext(ExecutionWrapper.java:80)
weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:102)
org.apache.xmlbeans.impl.store.XqrlImpl$XqrlPathEngine.nextToken(XqrlImpl.java:131)
org.apache.xmlbeans.impl.store.XqrlImpl$XqrlPathEngine.next(XqrlImpl.java:142)
org.apache.xmlbeans.impl.store.Cursor._toSelection(Cursor.java:924)
org.apache.xmlbeans.impl.store.Cursor._toNextSelection(Cursor.java:920)
org.apache.xmlbeans.impl.store.Cursor._hasNextSelection(Cursor.java:908)
org.apache.xmlbeans.impl.store.Cursor.hasNextSelection(Cursor.java:2642)
org.apache.xmlbeans.impl.values.XmlObjectBase.selectPath(XmlObjectBase.java:469)
org.apache.xmlbeans.impl.values.XmlObjectBase.selectPath(XmlObjectBase.java:460)
com.bea.wli.sb.stages.expressions.xpath.XPathExprExecutor.executeXmlObject(XPathExprExecutor.java:121)
com.bea.wli.sb.stages.expressions.xpath.XPathExprExecutor.executeXmlObject(XPathExprExecutor.java:110)
stages.transform.runtime.ForEachRuntimeStep.processMessage(ForEachRuntimeStep.java:50)
com.bea.wli.sb.stages.StageMetadataImpl$WrapperRuntimeStep.processMessage(StageMetadataImpl.java:343)
com.bea.wli.sb.stages.impl.SequenceRuntimeStep.processMessage(SequenceRuntimeStep.java:31)
stages.transform.runtime.ForEachRuntimeStep.processMessage(ForEachRuntimeStep.java:50)
com.bea.wli.sb.stages.StageMetadataImpl$WrapperRuntimeStep.processMessage(StageMetadataImpl.java:343)
com.bea.wli.sb.stages.impl.SequenceRuntimeStep.processMessage(SequenceRuntimeStep.java:31)
stages.transform.runtime.ForEachRuntimeStep.processMessage(ForEachRuntimeStep.java:50)
com.bea.wli.sb.stages.StageMetadataImpl$WrapperRuntimeStep.processMessage(StageMetadataImpl.java:343)
com.bea.wli.sb.pipeline.PipelineStage.processMessage(PipelineStage.java:84)
com.bea.wli.sb.pipeline.PipelineContextImpl.execute(PipelineContextImpl.java:896)
com.bea.wli.sb.pipeline.Pipeline.processMessage(Pipeline.java:140)
com.bea.wli.sb.pipeline.PipelineContextImpl.execute(PipelineContextImpl.java:896)
com.bea.wli.sb.pipeline.PipelineNode.doRequest(PipelineNode.java:51)
com.bea.wli.sb.pipeline.Node.processMessage(Node.java:65)
com.bea.wli.sb.pipeline.PipelineContextImpl.execute(PipelineContextImpl.java:896)
com.bea.wli.sb.pipeline.Router.processMessage(Router.java:196)
com.bea.wli.sb.pipeline.MessageProcessor.processRequest(MessageProcessor.java:39)
com.bea.wli.sb.pipeline.RouterManager$1.run(RouterManager.java:593)
com.bea.wli.sb.pipeline.RouterManager$1.run(RouterManager.java:591)
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:350)
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:143)
com.bea.wli.sb.security.WLSSecurityContextService.runAs(WLSSecurityContextService.java:55)
com.bea.wli.sb.pipeline.RouterManager.processMessage(RouterManager.java:572)
com.bea.wli.sb.transports.TransportManagerImpl.receiveMessage(TransportManagerImpl.java:252)
com.bea.wli.sb.transports.local.LocalMessageContext$1.run(LocalMessageContext.java:179)
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:350)
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:143)
weblogic.security.Security.runAs(Security.java:60)
com.bea.wli.sb.transports.local.LocalMessageContext.send(LocalMessageContext.java:144)
com.bea.wli.sb.transports.local.LocalTransportProvider.sendMessageAsync(LocalTransportProvider.java:318)
sun.reflect.GeneratedMethodAccessor383.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:575)
com.bea.wli.sb.transports.Util$1.invoke(Util.java:57)
$Proxy122.sendMessageAsync(Unknown Source)
com.bea.wli.sb.transports.LoadBalanceFailoverListener.sendMessageAsync(LoadBalanceFailoverListener.java:136)
com.bea.wli.sb.transports.LoadBalanceFailoverListener.sendMessageToServiceAsync(LoadBalanceFailoverListener.java:570)
com.bea.wli.sb.transports.LoadBalanceFailoverListener.sendMessageToService(LoadBalanceFailoverListener.java:537)
com.bea.wli.sb.transports.TransportManagerImpl.sendMessageToService(TransportManagerImpl.java:505)
com.bea.wli.sb.transports.TransportManagerImpl.sendMessageAsync(TransportManagerImpl.java:409)
com.bea.wli.sb.pipeline.PipelineContextImpl.doDispatch(PipelineContextImpl.java:511)
com.bea.wli.sb.pipeline.PipelineContextImpl.dispatch(PipelineContextImpl.java:489)
stages.routing.runtime.RouteRuntimeStep.processMessage(RouteRuntimeStep.java:83)
com.bea.wli.sb.stages.StageMetadataImpl$WrapperRuntimeStep.processMessage(StageMetadataImpl.java:343)
com.bea.wli.sb.pipeline.RouteNode.doRequest(RouteNode.java:106)
com.bea.wli.sb.pipeline.Node.processMessage(Node.java:65)
com.bea.wli.sb.pipeline.PipelineContextImpl.execute(PipelineContextImpl.java:896)
com.bea.wli.sb.pipeline.Router.processMessage(Router.java:196)
com.bea.wli.sb.pipeline.MessageProcessor.processRequest(MessageProcessor.java:39)
com.bea.wli.sb.pipeline.RouterManager$1.run(RouterManager.java:593)
com.bea.wli.sb.pipeline.RouterManager$1.run(RouterManager.java:591)
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:350)
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:143)
com.bea.wli.sb.security.WLSSecurityContextService.runAs(WLSSecurityContextService.java:55)
com.bea.wli.sb.pipeline.RouterManager.processMessage(RouterManager.java:572)
com.bea.wli.sb.transports.TransportManagerImpl.receiveMessage(TransportManagerImpl.java:252)
com.bea.wli.sb.transports.http.generic.RequestHelperBase$1.run(RequestHelperBase.java:154)
com.bea.wli.sb.transports.http.generic.RequestHelperBase$1.run(RequestHelperBase.java:152)
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:350)
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:143)
com.bea.wli.sb.transports.http.generic.RequestHelperBase.securedInvoke(RequestHelperBase.java:146)
com.bea.wli.sb.transports.http.generic.RequestHelperBase.service(RequestHelperBase.java:72)
com.bea.wli.sb.transports.http.wls.HttpTransportServlet.service(HttpTransportServlet.java:106)
weblogic.servlet.FutureResponseServlet.service(FutureResponseServlet.java:24)
javax.servlet.http.HttpServlet.service(HttpServlet.java:815)
weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:224)
weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:108)
weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:206)
weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:183)
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3656)
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650)
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:308)
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:117)
weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2204)
weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2126)
weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1412)
weblogic.work.ExecuteThread.execute(ExecuteThread.java:198)
weblogic.work.ExecuteThread.run(ExecuteThread.java:165)
}