0

在我们的生产 OSB 服务器中,我们经常遇到卡住的踏板。堆栈跟踪始终相同,并以方法结束:org.apache.xmlbeans.impl.store.IdentifierImpl.compareTo(Object)。

我附上了有问题的代码的完整堆栈跟踪。我不是线程愚蠢的大师,但恕我直言,真正奇怪的是,这个线程似乎并没有等待对象的锁获取,因为没有锁的迹象。此外,它似乎不等待外部服务的响应。它只是冻结在 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)
    }
4

0 回答 0