Hi,

I am using lenya 2.0.2 (cocoon-2.1.12-dev) and I made some performance tests 
with jmeter utility. 50 users in the same time walking through a lenya site - 
that's my jmeter setup.
Unfortunatly, I found a bottleneck. The users (jmeter threads) freeze for a 
long time at pages that uses flow scripts. Almost all web server socket 
listener threads at this time shows the point listed below:

Thread [SocketListener0-24] (Suspended)
            FOM_JavaScriptInterpreter.setupContext(Redirector, Context, 
FOM_JavaScriptInterpreter$ThreadScope) line: 571
            FOM_JavaScriptInterpreter.callFunction(String, List, Redirector) 
line: 718
            CallFunctionNode.invoke(Environment, InvokeContext) line: 139
            
MatchNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext, String, Map) line: 47
            MatchNode.invoke(Environment, InvokeContext) line: 108
            
PipelineNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext) line: 69
            PipelineNode.invoke(Environment, InvokeContext) line: 143
            
PipelinesNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext) line: 69
            PipelinesNode.invoke(Environment, InvokeContext) line: 93
            ConcreteTreeProcessor.process(Environment, InvokeContext) line: 235
            ConcreteTreeProcessor.process(Environment) line: 177
            TreeProcessor.process(Environment) line: 254
            MountNode.invoke(Environment, InvokeContext) line: 118
            
MatchNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext, String, Map) line: 47
            MatchNode.invoke(Environment, InvokeContext) line: 108
            
PipelineNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext) line: 69
            PipelineNode.invoke(Environment, InvokeContext) line: 143
            
PipelinesNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext) line: 69
            PipelinesNode.invoke(Environment, InvokeContext) line: 93
            ConcreteTreeProcessor.process(Environment, InvokeContext) line: 235
            ConcreteTreeProcessor.process(Environment) line: 177
            TreeProcessor.process(Environment) line: 254
            Cocoon.process(Environment) line: 699
            CocoonServlet.service(HttpServletRequest, HttpServletResponse) 
line: 1154
            CocoonServlet(HttpServlet).service(ServletRequest, ServletResponse) 
line: 689
            ServletHolder.handle(ServletRequest, ServletResponse) line: 427
            WebApplicationHandler.dispatch(String, HttpServletRequest, 
HttpServletResponse, ServletHolder, int) line: 475
            WebApplicationHandler(ServletHandler).handle(String, String, 
HttpRequest, HttpResponse) line: 567
            PlusWebAppContext(HttpContext).handle(String, String, HttpRequest, 
HttpResponse) line: 1565
            PlusWebAppContext(WebApplicationContext).handle(String, String, 
HttpRequest, HttpResponse) line: 635
            PlusWebAppContext(HttpContext).handle(HttpRequest, HttpResponse) 
line: 1517
            PlusWebAppContext.handle(HttpRequest, HttpResponse) line: 158
            Server(HttpServer).service(HttpRequest, HttpResponse) line: 954
            HttpConnection.service(HttpRequest, HttpResponse) line: 814
            HttpConnection.handleNext() line: 981
            HttpConnection.handle() line: 831
            SocketListener.handleConnection(Socket) line: 244
            SocketListener(ThreadedServer).handle(Object) line: 357
            ThreadPool$PoolThread.run() line: 534


Is that synchronization in the 
org.apache.cocoon.components.flow.javascript.fom.FOM_JavaScriptInterpreter 
class important?
Could you please advise how can I solve this performance problem?

P.S. I sent the same message to cocoon dev mailing list but there is no 
response yet.

Reply via email to