[ 
https://issues.apache.org/jira/browse/XALANJ-2533?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12990563#comment-12990563
 ] 

Christophe DUVAL commented on XALANJ-2533:
------------------------------------------

Hi,

I am currently tuning a Java multithreated application which uses intensively 
XALAN/Xpath. I have a performance issue. I analyzed many java core dump during 
a test, and I saw a problem related to DTMManager.newInstance. All new thread 
executing DTMManager.newInstance try to load again the associated class, and 
causes many thread lock wait.

Class loader issue:

at java/lang/ClassLoader.loadClass(ClassLoader.java:573(Compiled Code))
at 
org/apache/xml/dtm/ObjectFactory.findProviderClass(ObjectFactory.java:506(Compiled
 Code))
at 
org/apache/xml/dtm/ObjectFactory.lookUpFactoryClass(ObjectFactory.java:217(Compiled
 Code))
at 
org/apache/xml/dtm/ObjectFactory.createObject(ObjectFactory.java:131(Compiled 
Code))
at 
org/apache/xml/dtm/ObjectFactory.createObject(ObjectFactory.java:101(Compiled 
Code))
at org/apache/xml/dtm/DTMManager.newInstance(DTMManager.java:135(Compiled Code))
at org/apache/xpath/XPathContext.(XPathContext.java:100(Compiled Code))
at com/aaa/bbb/util/xml/XMLUtil.getXObject(XMLUtil.java:1039(Compiled Code))
at com/aaa/bbb/xpathutil/XPathHelper.executeXPath(XPathHelper.java:454(Compiled 
Code))
at com/aaa/bbb/xpathutil/XPathHelper.executeXPath(XPathHelper.java:150(Compiled 
Code))
at 
com/aaa/bbb/xpathutil/XPathHelper.getNodeListFromXPath(XPathHelper.java:889(Compiled
 Code))
at 
com/aaa/bbb/xpathutil/XPathHelper.getNodeListFromXPath(XPathHelper.java:883(Compiled
 Code))
at com/aaa/bbb/workflow/WFCUtil.getDataFromTree(WFCUtil.java:1119(Compiled 
Code))
at 
com/aaa/bbb/workflow/WorkFlowContext.getDataFromTree(WorkFlowContext.java:2692(Compiled
 Code))
at 
com/aaa/bbb/workflow/WorkFlowContext.getWFContent(WorkFlowContext.java:2573(Compiled
 Code))
at 
com/aaa/bbb/workflow/WorkFlowContext.getWFContent(WorkFlowContext.java:2565(Compiled
 Code))
at 
com/aaa/bbb/workflow/WorkFlowContext.getWFContent(WorkFlowContext.java:2476(Compiled
 Code))
at 
com/swg/services/SWG_CREMSG_ServiceImpl.processData(SWG_CREMSG_ServiceImpl.java:348(Compiled
 Code))
at 
com/aaa/bbb/workflow/activity/engine/ActivityEngineHelper.invokeService(ActivityEngineHelper.java:1774(Compiled
 Code))
at 
com/aaa/bbb/workflow/activity/engine/ActivityEngineHelper.nextMainLogic(ActivityEngineHelper.java:644(Compiled
 Code))
at 
com/aaa/bbb/workflow/activity/engine/ActivityEngineHelper.next(ActivityEngineHelper.java:371(Compiled
 Code))
at 
com/aaa/bbb/workflow/queue/WorkFlowQueueListener.doWork(WorkFlowQueueListener.java:328(Compiled
 Code))
at 
com/aaa/bbb/workflow/queue/WorkFlowQueueListener.run(WorkFlowQueueListener.java:202(Compiled
 Code))
at 
com/aaa/bbb/workflow/queue/WorkFlowQueueListener.onMessage(WorkFlowQueueListener.java:163(Compiled
 Code))
at 
com/aaa/bbb/workflow/queue/WorkFlowQueueListener.onMessage(WorkFlowQueueListener.java:149(Compiled
 Code))
at com/aaa/bbb/workflow/queue/wfTransporter.run(wfTransporter.java:354(Compiled 
Code))
at 
com/aaa/bbb/workflow/queue/BasicExecutor$Worker.run(BasicExecutor.java:517(Compiled
 Code))
at java/lang/Thread.run(Thread.java:801(Compiled Code))

Waiting for Monitor Lock on 
com/aaa/bbb/ldr/DynamicClassLoader@700F5470/700F547C issue (one example):

HAR.2035844.Thread (com/aaa/bbb/ldr/DynamicClassLoader@700F5470/700F547C)
HAR.2035834.Thread (com/aaa/bbb/ldr/DynamicClassLoader@700F5470/700F547C)
HAR.2036928.Thread (com/aaa/bbb/ldr/DynamicClassLoader@700F5470/700F547C)
WFE.2036925.Thread (com/aaa/bbb/ldr/DynamicClassLoader@700F5470/700F547C)
HAR.2036915.Thread (com/aaa/bbb/ldr/DynamicClassLoader@700F5470/700F547C)
WFE.2036475.Thread (com/aaa/bbb/ldr/DynamicClassLoader@700F5470/700F547C)
HAR.2036473.Thread (com/aaa/bbb/ldr/DynamicClassLoader@700F5470/700F547C)
WFE.2036466.Thread (com/aaa/bbb/ldr/DynamicClassLoader@700F5470/700F547C)
HAR.2035843.Thread (com/aaa/bbb/ldr/DynamicClassLoader@700F5470/700F547C)
HAR.2036471.Thread (com/aaa/bbb/ldr/DynamicClassLoader@700F5470/700F547C)
WFE.2036474.Thread (com/aaa/bbb/ldr/DynamicClassLoader@700F5470/700F547C)
WFE.2036467.Thread (com/aaa/bbb/ldr/DynamicClassLoader@700F5470/700F547C)
WFE.2036431.Thread (com/aaa/bbb/ldr/DynamicClassLoader@700F5470/700F547C)
WFE.2035835.Thread (com/aaa/bbb/ldr/DynamicClassLoader@700F5470/700F547C)
HAR.2035837.Thread (com/aaa/bbb/ldr/DynamicClassLoader@700F5470/700F547C)
WFE.2035831.Thread (com/aaa/bbb/ldr/DynamicClassLoader@700F5470/700F547C)
HAR.2035839.Thread (com/aaa/bbb/ldr/DynamicClassLoader@700F5470/700F547C)
HAR.2036929.Thread (com/aaa/bbb/ldr/DynamicClassLoader@700F5470/700F547C)
WFE.2035854.Thread (com/aaa/bbb/ldr/DynamicClassLoader@700F5470/700F547C)
HAR.2035838.Thread (com/aaa/bbb/ldr/DynamicClassLoader@700F5470/700F547C)
WFE.2036408.Thread (com/aaa/bbb/ldr/DynamicClassLoader@700F5470/700F547C)

Could you please help me? Why DTMManager class is not cached for all threads? 
Have you got a solution regarding XALAN setting or code?

> DTMManager.newInstance issue in a java multithreaded application: excessive 
> ClassLoader, threads lock wait, no cache
> --------------------------------------------------------------------------------------------------------------------
>
>                 Key: XALANJ-2533
>                 URL: https://issues.apache.org/jira/browse/XALANJ-2533
>             Project: XalanJ2
>          Issue Type: Bug
>      Security Level: No security risk; visible to anyone(Ordinary problems in 
> Xalan projects.  Anybody can view the issue.) 
>          Components: DTM
>         Environment: AIX 5.3, JDK 1.5 (last fix), XALAN 2.7.0
>            Reporter: Christophe DUVAL
>


-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-dev-unsubscr...@xml.apache.org
For additional commands, e-mail: xalan-dev-h...@xml.apache.org

Reply via email to