HI All,
                We are developing a web application for voice base 
communication that uses Rhino interpreter at server side (in HttpServlet) to 
run the scripts.
If we run this in some limited no of threads (1-5) then it's working fine. But 
if we increase the concurrent threads then it throws exception sometimes (4-5% 
of calls)
I am using scope object that is shared between multiple threads but a new 
context object is created for each thread.

java.lang.IllegalStateException
                at 
org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3074)
                at org.mozilla.javascript.gen.c36.call(unnamed script)
                at 
com.nuance.framework.dialogmodule.util.RhinoUtil.evalScript(RhinoUtil.java:152)
                at 
com.nuance.framework.dialogmodule.handlers.events.EventHandler.colReco(EventHandler.java:339)
                at sun.reflect.GeneratedMethodAccessor164.invoke(Unknown Source)
                at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                at java.lang.reflect.Method.invoke(Method.java:585)
                at 
com.nuance.framework.dialogmodule.util.Invoker.invokeMethod(Invoker.java:122)
                at 
com.nuance.framework.dialogmodule.handlers.events.BaseEventHandler.handleEvent(BaseEventHandler.java:172)
                at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)
                at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                at java.lang.reflect.Method.invoke(Method.java:585)
                at 
com.nuance.framework.dialogmodule.util.Invoker.invokeMethod(Invoker.java:122)
                at 
com.nuance.framework.dialogmodule.controller.BaseDMRequestProcessor.handleEvent(BaseDMRequestProcessor.java:963)
                at 
com.nuance.framework.dialogmodule.controller.DMRequestProcessor.handleDataRequests(DMRequestProcessor.java:375)
                at 
com.nuance.framework.dialogmodule.controller.DMRequestProcessor.handleRequest(DMRequestProcessor.java:129)
                at 
com.nuance.framework.controller.FrontController.executeRequestProcessor(FrontController.java:740)
                at 
com.nuance.framework.controller.FrontController.handleRequest(FrontController.java:649)
                at 
com.nuance.framework.controller.FrontController.doGet(FrontController.java:425)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
                at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
                at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
                at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
                at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
                at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
                at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
                at 
org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:500)
                at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
                at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
                at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
                at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
                at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
                at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
                at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
                at java.lang.Thread.run(Thread.java:595)
2010-04-27 17:08:56,830 | B3B4AFBC729D869815DA9408F2B3144C | 
[http-80-Processor8] | ERROR | RhinoUtil |
java.lang.IllegalStateException
                at 
org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3074)
                at 
org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:162)
                at 
org.mozilla.javascript.ScriptRuntime.evalSpecial(ScriptRuntime.java:2486)
                at 
org.mozilla.javascript.ScriptRuntime.callSpecial(ScriptRuntime.java:2338)
                at 
org.mozilla.javascript.optimizer.OptRuntime.callSpecial(OptRuntime.java:165)
                at org.mozilla.javascript.gen.c13._c1(unnamed script:1)
                at org.mozilla.javascript.gen.c13.call(unnamed script)
                at 
com.nuance.framework.dialogmodule.util.RhinoUtil.evalScript(RhinoUtil.java:152)
                at 
com.nuance.framework.dialogmodule.handlers.events.EventHandler.colReco(EventHandler.java:339)
                at sun.reflect.GeneratedMethodAccessor164.invoke(Unknown Source)
                at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                at java.lang.reflect.Method.invoke(Method.java:585)
                at 
com.nuance.framework.dialogmodule.util.Invoker.invokeMethod(Invoker.java:122)
                at 
com.nuance.framework.dialogmodule.handlers.events.BaseEventHandler.handleEvent(BaseEventHandler.java:172)
                at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)
                at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                at java.lang.reflect.Method.invoke(Method.java:585)
                at 
com.nuance.framework.dialogmodule.util.Invoker.invokeMethod(Invoker.java:122)
                at 
com.nuance.framework.dialogmodule.controller.BaseDMRequestProcessor.handleEvent(BaseDMRequestProcessor.java:963)
                at 
com.nuance.framework.dialogmodule.controller.DMRequestProcessor.handleDataRequests(DMRequestProcessor.java:375)
                at 
com.nuance.framework.dialogmodule.controller.DMRequestProcessor.handleRequest(DMRequestProcessor.java:129)
                at 
com.nuance.framework.controller.FrontController.executeRequestProcessor(FrontController.java:740)
                at 
com.nuance.framework.controller.FrontController.handleRequest(FrontController.java:649)
                at 
com.nuance.framework.controller.FrontController.doGet(FrontController.java:425)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
                at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
                at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
                at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
                at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
                at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
                at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
                at 
org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:500)
                at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
                at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
                at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
                at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
                at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
                at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
                at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
                at java.lang.Thread.run(Thread.java:595)

pls provide some help to run rhino in multi threaded environment.

Thanks & Regards
Manish Kr. Sharma


Thanks & Regards
Manish Kr. Sharma
Lead Consultant
Headstrong Services LLC | D-4. Sector-59. Noida. UP. India - 201307 |
Location: G-119 | Email - 
[email protected]<mailto:[email protected]>| 
91-120-4074000 (X) 4119


________________________________
***The information transmitted is intended only for the person or entity to 
which it is addressed and may contain confidential and/or privileged material. 
Any review,retransmission,dissemination or other use of, or taking of any 
action in reliance upon, this information by persons or entities other than the 
intended recipient is prohibited. If you received this in error, please contact 
the sender and delete the material from any computer.***
_______________________________________________
dev-tech-js-engine-rhino mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-rhino

Reply via email to