You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ctakes.apache.org by Zakir Saifi <za...@raxa.com> on 2019/03/05 09:41:45 UTC

Analysis Engine Process Exception while querying ctakes Service frequently

Hi all,

I using Ctakes Rest Service(a Rest Server based on Apache Ctakes) for
benchmarking using *Apache Jmeter*. As I have to use it as Rest Server to
processing many clinical Text

My Configuration for BenchMarking are as follows:
I am creating 10 users(threads) each with Ramp up period (*10s*). *That
means 1 user is created after every 1 second. *
I have loop count of *5* (Number of iteration)
There is a time delay of *500ms* between each subsequent Request ( To
simulate requests as in real-time scenarios, real-users give delays between
doing different actions.)
I am also changing the *data* with each request by using data from CSV file.

I am getting following exceptions for most* of the requests* that comes to
Ctakes Rest Sever

Exception1
org.apache.uima.analysis_engine.s: Annotator processing failed.
at
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:391)
at
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:296)
at
org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:567)
at
org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:409)
at
org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:342)
at
org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:267)
at
org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:267)
at
org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:280)
at
org.apache.ctakes.rest.service.CtakesRestController.getAnalyzedJSON(CtakesRestController.java:95)
at sun.reflect.GeneratedMethodAccessor157.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
at
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
at
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
at
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException

Exception2
05-Mar-2019 08:45:32.274 SEVERE [http-nio-8089-exec-3]
org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(275)
Exception occurred
 org.apache.uima.analysis_engine.AnalysisEngineProcessException: Annotator
processing failed.
at
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:391)
at
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:296)
at
org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:567)
at
org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:409)
at
org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:342)
at
org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:267)
at
org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:267)
at
org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:280)
at
org.apache.ctakes.rest.service.CtakesRestController.getAnalyzedJSON(CtakesRestController.java:95)
at sun.reflect.GeneratedMethodAccessor157.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
at
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
at
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
at
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException


I have recently changed the *minimum span detection to 1 *and also not
excluding any exclusion tags in my Piper files. Since then I am seeing this
errors coming more frequently. I don't think these errors are associated
with any particular type of data to goes to ctakes Service.Because if I
increase the time between the subsequent user creation and Time delay
between the subsequent call, I am not getting any exception.

I am currently running *Ctakes Rest Server* war in a Docker Container
having tomcat image with JVM Maximum Memory of* 3 GB.*  Anyone have idea
why I am getting these exception on heavy load??




Regards
Zakir Saifi

Re: Analysis Engine Process Exception while querying ctakes Service frequently [EXTERNAL]

Posted by Zakir Saifi <za...@raxa.com>.
 Hi Sean,

> Can you elaborate on this?  How are you creating the threads?  Threads or
instances?
I am using Apache JMeter for BenchMarking. Each thread in Jmeter, simulates
a real user requesting to the server under a test. If you set the number of
threads as 10. JMeter will create and simulate 10 virtual users during the
load test.

So the Ctakes Rest Service is a war deployed on the Tomcat Image of Docker.
I am using JMeter for sending multiple requests to the Rest Service for
simulating multiple users accessing the Service.
When I am sending the multiple requests on the Rest Service, for some of
the requests, I am getting following errors. But If I send them with a
delay I am not getting any error messages.

On Tue, Mar 5, 2019 at 7:02 PM Finan, Sean <Se...@childrens.harvard.edu>
wrote:

> Hi Zakir,
>
> I doubt that this has much to do with decreasing the minimum character
> size for the dictionary lookup.
>
> > Because if I increase the time between the subsequent user creation and
> Time delay between the subsequent call, I am not getting any exception.
>
> >I am creating 10 users(threads)
> Can you elaborate on this?  How are you creating the threads?  Threads or
> instances?  What is your pipeline in the rest service and is it thread safe?
>
> Sean
>
> ________________________________________
> From: Zakir Saifi <za...@raxa.com>
> Sent: Tuesday, March 5, 2019 4:41 AM
> To: dev@ctakes.apache.org
> Subject: Analysis Engine Process Exception while querying ctakes Service
> frequently [EXTERNAL]
>
> Hi all,
>
> I using Ctakes Rest Service(a Rest Server based on Apache Ctakes) for
> benchmarking using *Apache Jmeter*. As I have to use it as Rest Server to
> processing many clinical Text
>
> My Configuration for BenchMarking are as follows:
> I am creating 10 users(threads) each with Ramp up period (*10s*). *That
> means 1 user is created after every 1 second. *
> I have loop count of *5* (Number of iteration)
> There is a time delay of *500ms* between each subsequent Request ( To
> simulate requests as in real-time scenarios, real-users give delays between
> doing different actions.)
> I am also changing the *data* with each request by using data from CSV
> file.
>
> I am getting following exceptions for most* of the requests* that comes to
> Ctakes Rest Sever
>
> Exception1
> org.apache.uima.analysis_engine.s: Annotator processing failed.
> at
>
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:391)
> at
>
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:296)
> at
>
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:567)
> at
>
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:409)
> at
>
> org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:342)
> at
>
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:267)
> at
>
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:267)
> at
>
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:280)
> at
>
> org.apache.ctakes.rest.service.CtakesRestController.getAnalyzedJSON(CtakesRestController.java:95)
> at sun.reflect.GeneratedMethodAccessor157.invoke(Unknown Source)
> at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at
>
> org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
> at
>
> org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
> at
>
> org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
> at
>
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
> at
>
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
> at
>
> org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
> at
>
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
> at
>
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
> at
>
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
> at
>
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
> at
>
> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> at
>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
> at
>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
> at
>
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
> at
>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
> at
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
> at
>
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> at
>
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> at
>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
> at
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
> at
>
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
> at
>
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
> at
> org.apache.tomcat.util.net
> .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
> at
> org.apache.tomcat.util.net
> .SocketProcessorBase.run(SocketProcessorBase.java:49)
> at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at
>
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.NullPointerException
>
> Exception2
> 05-Mar-2019 08:45:32.274 SEVERE [http-nio-8089-exec-3]
>
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(275)
> Exception occurred
>  org.apache.uima.analysis_engine.AnalysisEngineProcessException: Annotator
> processing failed.
> at
>
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:391)
> at
>
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:296)
> at
>
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:567)
> at
>
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:409)
> at
>
> org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:342)
> at
>
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:267)
> at
>
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:267)
> at
>
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:280)
> at
>
> org.apache.ctakes.rest.service.CtakesRestController.getAnalyzedJSON(CtakesRestController.java:95)
> at sun.reflect.GeneratedMethodAccessor157.invoke(Unknown Source)
> at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at
>
> org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
> at
>
> org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
> at
>
> org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
> at
>
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
> at
>
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
> at
>
> org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
> at
>
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
> at
>
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
> at
>
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
> at
>
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
> at
>
> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> at
>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
> at
>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
> at
>
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
> at
>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
> at
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
> at
>
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> at
>
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> at
>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
> at
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
> at
>
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
> at
>
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
> at
> org.apache.tomcat.util.net
> .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
> at
> org.apache.tomcat.util.net
> .SocketProcessorBase.run(SocketProcessorBase.java:49)
> at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at
>
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.NullPointerException
>
>
> I have recently changed the *minimum span detection to 1 *and also not
> excluding any exclusion tags in my Piper files. Since then I am seeing this
> errors coming more frequently. I don't think these errors are associated
> with any particular type of data to goes to ctakes Service.Because if I
> increase the time between the subsequent user creation and Time delay
> between the subsequent call, I am not getting any exception.
>
> I am currently running *Ctakes Rest Server* war in a Docker Container
> having tomcat image with JVM Maximum Memory of* 3 GB.*  Anyone have idea
> why I am getting these exception on heavy load??
>
>
>
>
> Regards
> Zakir Saifi
>


-- 
Regards
Zakir Saifi
(Software Developer at Raxa)

Re: Analysis Engine Process Exception while querying ctakes Service frequently [EXTERNAL]

Posted by "Finan, Sean" <Se...@childrens.harvard.edu>.
Hi Zakir,

I doubt that this has much to do with decreasing the minimum character size for the dictionary lookup.

> Because if I increase the time between the subsequent user creation and Time delay between the subsequent call, I am not getting any exception.

>I am creating 10 users(threads)
Can you elaborate on this?  How are you creating the threads?  Threads or instances?  What is your pipeline in the rest service and is it thread safe?

Sean

________________________________________
From: Zakir Saifi <za...@raxa.com>
Sent: Tuesday, March 5, 2019 4:41 AM
To: dev@ctakes.apache.org
Subject: Analysis Engine Process Exception while querying ctakes Service frequently [EXTERNAL]

Hi all,

I using Ctakes Rest Service(a Rest Server based on Apache Ctakes) for
benchmarking using *Apache Jmeter*. As I have to use it as Rest Server to
processing many clinical Text

My Configuration for BenchMarking are as follows:
I am creating 10 users(threads) each with Ramp up period (*10s*). *That
means 1 user is created after every 1 second. *
I have loop count of *5* (Number of iteration)
There is a time delay of *500ms* between each subsequent Request ( To
simulate requests as in real-time scenarios, real-users give delays between
doing different actions.)
I am also changing the *data* with each request by using data from CSV file.

I am getting following exceptions for most* of the requests* that comes to
Ctakes Rest Sever

Exception1
org.apache.uima.analysis_engine.s: Annotator processing failed.
at
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:391)
at
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:296)
at
org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:567)
at
org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:409)
at
org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:342)
at
org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:267)
at
org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:267)
at
org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:280)
at
org.apache.ctakes.rest.service.CtakesRestController.getAnalyzedJSON(CtakesRestController.java:95)
at sun.reflect.GeneratedMethodAccessor157.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
at
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
at
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
at
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException

Exception2
05-Mar-2019 08:45:32.274 SEVERE [http-nio-8089-exec-3]
org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(275)
Exception occurred
 org.apache.uima.analysis_engine.AnalysisEngineProcessException: Annotator
processing failed.
at
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:391)
at
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:296)
at
org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:567)
at
org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:409)
at
org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:342)
at
org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:267)
at
org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:267)
at
org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:280)
at
org.apache.ctakes.rest.service.CtakesRestController.getAnalyzedJSON(CtakesRestController.java:95)
at sun.reflect.GeneratedMethodAccessor157.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
at
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
at
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
at
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException


I have recently changed the *minimum span detection to 1 *and also not
excluding any exclusion tags in my Piper files. Since then I am seeing this
errors coming more frequently. I don't think these errors are associated
with any particular type of data to goes to ctakes Service.Because if I
increase the time between the subsequent user creation and Time delay
between the subsequent call, I am not getting any exception.

I am currently running *Ctakes Rest Server* war in a Docker Container
having tomcat image with JVM Maximum Memory of* 3 GB.*  Anyone have idea
why I am getting these exception on heavy load??




Regards
Zakir Saifi

Re: Analysis Engine Process Exception while querying ctakes Service frequently

Posted by satyananda sahu <sa...@gmail.com>.
@RequestMapping(value = "/analyze", method = RequestMethod.POST)
   @ResponseBody
   public Map<String, List<String>> getAnalyzedJSON(@RequestBody String
analysisText) throws ServletException, IOException {
       Map<String, List<String>> resultMap = null;
       if (analysisText != null && analysisText.trim().length() > 0) {
           JCas jcas = pool.getJCas(-1);
           try {
               jcas.setDocumentText(analysisText);
               engine. .process(jcas);

//check this might help you
              *jcas.reset();*



               resultMap = formatResults(jcas);
           } catch (Exception e) {
               e.printStackTrace();
               throw new ServletException(e);
           } finally {
                pool.releaseJCas(jcas); //Releasing JCas
           }
       }
        return resultMap;
   }

check this link:
https://uima.apache.org/d/uimaj-current/apidocs/org/apache/uima/analysis_engine/AnalysisEngine.html

On Wed, Mar 6, 2019 at 3:14 PM Zakir Saifi <za...@raxa.com> wrote:

> Hi @Satyananda Sahu
> Could you elaborate about how r*esetting the annotators and process
> engine*?.
> I currently releasing the JCas pool after each rest call and in case of an
> exception, I am also releasing the JCas.
>
> Here is my code. Post construct work only for the First time. Then the
> subsequent Rest calls process JCas and release after the use.
>
> @PostConstruct
>     public void init() throws ServletException {
>         LOGGER.info("Initializing analysis engine and jcas pool");
>         try {
>             final File inputFile    = FileLocator.getFile(PIPER_FILE_PATH);
>             PiperFileReader reader  = new
> PiperFileReader(inputFile.getAbsolutePath());
>             PipelineBuilder builder = reader.getBuilder();
>             AnalysisEngineDescription analysisEngineDesc =
> builder.getAnalysisEngineDesc();
>             engine =
> UIMAFramework.produceAnalysisEngine(analysisEngineDesc);
>             pool = new JCasPool(300, engine);
>         } catch (Exception e) {
>             e.printStackTrace();
>             throw new ServletException(e);
>         }
>     }
>
> @RequestMapping(value = "/analyze", method = RequestMethod.POST)
>    @ResponseBody
>    public Map<String, List<String>> getAnalyzedJSON(@RequestBody String
> analysisText) throws ServletException, IOException {
>        Map<String, List<String>> resultMap = null;
>        if (analysisText != null && analysisText.trim().length() > 0) {
>            JCas jcas = pool.getJCas(-1);
>            try {
>                jcas.setDocumentText(analysisText);
>                engine. .process(jcas);
>                resultMap = formatResults(jcas);
>            } catch (Exception e) {
>                e.printStackTrace();
>                throw new ServletException(e);
>            } finally {
>                 pool.releaseJCas(jcas); //Releasing JCas
>            }
>        }
>         return resultMap;
>    }
>
>
>
> On Wed, Mar 6, 2019 at 12:42 PM satyananda sahu <sa...@gmail.com>
> wrote:
>
> > Reset the annotators and process engine for each call and it should work
> > for you.
> >
> > Thanks,
> > Satya
> >
> > On Tue, Mar 5, 2019 at 3:12 PM Zakir Saifi <za...@raxa.com> wrote:
> >
> > > Hi all,
> > >
> > > I using Ctakes Rest Service(a Rest Server based on Apache Ctakes) for
> > > benchmarking using *Apache Jmeter*. As I have to use it as Rest Server
> to
> > > processing many clinical Text
> > >
> > > My Configuration for BenchMarking are as follows:
> > > I am creating 10 users(threads) each with Ramp up period (*10s*). *That
> > > means 1 user is created after every 1 second. *
> > > I have loop count of *5* (Number of iteration)
> > > There is a time delay of *500ms* between each subsequent Request ( To
> > > simulate requests as in real-time scenarios, real-users give delays
> > between
> > > doing different actions.)
> > > I am also changing the *data* with each request by using data from CSV
> > > file.
> > >
> > > I am getting following exceptions for most* of the requests* that comes
> > to
> > > Ctakes Rest Sever
> > >
> > > Exception1
> > > org.apache.uima.analysis_engine.s: Annotator processing failed.
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:391)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:296)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:567)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:409)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:342)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:267)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:267)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:280)
> > > at
> > >
> > >
> >
> org.apache.ctakes.rest.service.CtakesRestController.getAnalyzedJSON(CtakesRestController.java:95)
> > > at sun.reflect.GeneratedMethodAccessor157.invoke(Unknown Source)
> > > at
> > >
> > >
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> > > at java.lang.reflect.Method.invoke(Method.java:498)
> > > at
> > >
> > >
> >
> org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
> > > at
> > >
> > >
> >
> org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
> > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
> > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> > > at
> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
> > > at
> > >
> > >
> >
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
> > > at
> > >
> > >
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
> > > at
> > >
> > >
> >
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> > > at
> > >
> > >
> >
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
> > > at
> > >
> >
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
> > > at
> > >
> >
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
> > > at
> > >
> > >
> >
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
> > > at
> > >
> > >
> >
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
> > > at
> > > org.apache.tomcat.util.net
> > > .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
> > > at
> > > org.apache.tomcat.util.net
> > > .SocketProcessorBase.run(SocketProcessorBase.java:49)
> > > at
> > >
> > >
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> > > at
> > >
> > >
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> > > at
> > >
> > >
> >
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> > > at java.lang.Thread.run(Thread.java:748)
> > > Caused by: java.lang.NullPointerException
> > >
> > > Exception2
> > > 05-Mar-2019 08:45:32.274 SEVERE [http-nio-8089-exec-3]
> > >
> > >
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(275)
> > > Exception occurred
> > >  org.apache.uima.analysis_engine.AnalysisEngineProcessException:
> > Annotator
> > > processing failed.
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:391)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:296)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:567)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:409)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:342)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:267)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:267)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:280)
> > > at
> > >
> > >
> >
> org.apache.ctakes.rest.service.CtakesRestController.getAnalyzedJSON(CtakesRestController.java:95)
> > > at sun.reflect.GeneratedMethodAccessor157.invoke(Unknown Source)
> > > at
> > >
> > >
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> > > at java.lang.reflect.Method.invoke(Method.java:498)
> > > at
> > >
> > >
> >
> org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
> > > at
> > >
> > >
> >
> org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
> > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
> > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> > > at
> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
> > > at
> > >
> > >
> >
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
> > > at
> > >
> > >
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
> > > at
> > >
> > >
> >
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> > > at
> > >
> > >
> >
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
> > > at
> > >
> >
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
> > > at
> > >
> >
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
> > > at
> > >
> > >
> >
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
> > > at
> > >
> > >
> >
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
> > > at
> > > org.apache.tomcat.util.net
> > > .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
> > > at
> > > org.apache.tomcat.util.net
> > > .SocketProcessorBase.run(SocketProcessorBase.java:49)
> > > at
> > >
> > >
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> > > at
> > >
> > >
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> > > at
> > >
> > >
> >
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> > > at java.lang.Thread.run(Thread.java:748)
> > > Caused by: java.lang.NullPointerException
> > >
> > >
> > > I have recently changed the *minimum span detection to 1 *and also not
> > > excluding any exclusion tags in my Piper files. Since then I am seeing
> > this
> > > errors coming more frequently. I don't think these errors are
> associated
> > > with any particular type of data to goes to ctakes Service.Because if I
> > > increase the time between the subsequent user creation and Time delay
> > > between the subsequent call, I am not getting any exception.
> > >
> > > I am currently running *Ctakes Rest Server* war in a Docker Container
> > > having tomcat image with JVM Maximum Memory of* 3 GB.*  Anyone have
> idea
> > > why I am getting these exception on heavy load??
> > >
> > >
> > >
> > >
> > > Regards
> > > Zakir Saifi
> > >
> >
>
>
> --
> Regards
> Zakir Saifi
> (Software Developer at Raxa)
>

Re: Analysis Engine Process Exception while querying ctakes Service frequently

Posted by Zakir Saifi <za...@raxa.com>.
Hi all,

One thing I want to add to the discussion,
*I was of the assumption that I am getting the exceptions on heavy load due
to non-availability of JCas  Object.*

Then I logged the number of JCas object prior to processing the JCas. but I
am also getting the errors when the number of JCas is 98(out of total 100).

// Logs Start
Starting Ctakes Analysis
Number of Current JCases = 98
06 Mar 2019 18:20:02  INFO SentenceDetector - Starting processing.
06 Mar 2019 18:20:02  INFO TokenizerAnnotatorPTB - process(JCas) in
org.apache.ctakes.core.ae.TokenizerAnnotatorPTB
06 Mar 2019 18:20:02  INFO ContextDependentTokenizerAnnotator -
process(JCas)
06 Mar 2019 18:20:02  INFO POSTagger - process(JCas)
06 Mar 2019 18:20:02  INFO Chunker -  process(JCas)
06 Mar 2019 18:20:02  INFO ChunkAdjuster -  process(JCas)
06 Mar 2019 18:20:02  INFO ChunkAdjuster -  process(JCas)
06 Mar 2019 18:20:02  INFO AbstractJCasTermAnnotator - Finding Named
Entities ...
06 Mar 2019 18:20:02  INFO AbstractJCasTermAnnotator - Finished processing
06 Mar 2019 18:20:02  INFO ClearNLPDependencyParserAE - Dependency parser
starting with thread:http-nio-8082-exec-5
06 Mar 2019 18:20:02  INFO ClearNLPDependencyParserAE - Dependency parser
ending with thread:http-nio-8082-exec-5
06 Mar 2019 18:20:02  INFO ClearNLPSemanticRoleLabelerAE - Starting
processing ...
06 Mar 2019 18:20:02  INFO ClearNLPSemanticRoleLabelerAE - Finished
processing
06 Mar 2019 18:20:02  INFO CleartkAnalysisEngine - Assigning Attributes ...
06 Mar 2019 18:20:02  INFO CleartkAnalysisEngine - Finished Assigning
Attributes
06 Mar 2019 18:20:02  INFO AbstractJCasTermAnnotator - Finding Named
Entities ...
06 Mar 2019 18:20:02 ERROR JdbcRareWordDictionary - Operation not allowed
after ResultSet closed
06-Mar-2019 18:20:03.278 SEVERE [http-nio-8082-exec-5]
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(407)
Exception occurred
 org.apache.uima.analysis_engine.AnalysisEngineProcessException: Annotator
processing failed.
at
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:391)
at
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:296)
at
org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:567)
at
org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:409)
at
org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:342)
at
org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:267)
at
org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:267)
at
org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:280)
at
org.apache.ctakes.rest.service.CtakesRestController.getAnalyzedJSON(CtakesRestController.java:130)
at sun.reflect.GeneratedMethodAccessor786.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
at
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
at
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
at
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException

06-Mar-2019 18:20:03.280 SEVERE [http-nio-8082-exec-5]
org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(275)
Exception occurred
 org.apache.uima.analysis_engine.AnalysisEngineProcessException: Annotator
processing failed.
at
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:391)
at
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:296)
at
org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:567)
at
org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:409)
at
org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:342)
at
org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:267)
at
org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:267)
at
org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:280)
at
org.apache.ctakes.rest.service.CtakesRestController.getAnalyzedJSON(CtakesRestController.java:130)
at sun.reflect.GeneratedMethodAccessor786.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
at
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
at
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
at
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException


Release JCAs Object
Number of Current JCases = 99
// Logs end


As I increase the time between the subsequent Request. These errors get
removed. Anyone have faced this issue before.??


On Wed, Mar 6, 2019 at 5:27 PM Zakir Saifi <za...@raxa.com> wrote:

> @Satyananda Sahu, But release JCas is also doing the same
>
> public synchronized void releaseJCas(JCas aJCas) {
>     // make sure this CAS actually belongs to this pool and is checked out
>     if (!mAllInstances.contains(aJCas) || mFreeInstances.contains(aJCas)) {
>       UIMAFramework.getLogger(CLASS_NAME).logrb(Level.WARNING,
> CLASS_NAME.getName(), "releaseJCas",
>               LOG_RESOURCE_BUNDLE, "UIMA_return_jcas_to_pool__WARNING");
>     } else {
>       // reset CAS
>       aJCas.reset();
>       // Add the CAS to the end of the free instances List
>       mFreeInstances.add(aJCas);
>     }
>
>     // Notify any threads waiting on this object
>     notifyAll();
>   }
>
>
> On Wed, Mar 6, 2019 at 5:22 PM satyananda sahu <sa...@gmail.com>
> wrote:
>
>> @RequestMapping(value = "/analyze", method = RequestMethod.POST)
>>    @ResponseBody
>>    public Map<String, List<String>> getAnalyzedJSON(@RequestBody String
>> analysisText) throws ServletException, IOException {
>>        Map<String, List<String>> resultMap = null;
>>        if (analysisText != null && analysisText.trim().length() > 0) {
>>            JCas jcas = pool.getJCas(-1);
>>            try {
>>                jcas.setDocumentText(analysisText);
>>                engine. .process(jcas);
>>
>>
>>
>>                resultMap = formatResults(jcas);
>> //check this might help you
>>               *jcas.reset();*
>>
>>
>>            } catch (Exception e) {
>>                e.printStackTrace();
>>                throw new ServletException(e);
>>            } finally {
>>                 pool.releaseJCas(jcas); //Releasing JCas
>>            }
>>        }
>>         return resultMap;
>>    }
>>
>> check this link:
>>
>> https://uima.apache.org/d/uimaj-current/apidocs/org/apache/uima/analysis_engine/AnalysisEngine.html
>>
>>
>> On Wed, Mar 6, 2019 at 3:14 PM Zakir Saifi <za...@raxa.com> wrote:
>>
>> > Hi @Satyananda Sahu
>> > Could you elaborate about how r*esetting the annotators and process
>> > engine*?.
>> > I currently releasing the JCas pool after each rest call and in case of
>> an
>> > exception, I am also releasing the JCas.
>> >
>> > Here is my code. Post construct work only for the First time. Then the
>> > subsequent Rest calls process JCas and release after the use.
>> >
>> > @PostConstruct
>> >     public void init() throws ServletException {
>> >         LOGGER.info("Initializing analysis engine and jcas pool");
>> >         try {
>> >             final File inputFile    =
>> FileLocator.getFile(PIPER_FILE_PATH);
>> >             PiperFileReader reader  = new
>> > PiperFileReader(inputFile.getAbsolutePath());
>> >             PipelineBuilder builder = reader.getBuilder();
>> >             AnalysisEngineDescription analysisEngineDesc =
>> > builder.getAnalysisEngineDesc();
>> >             engine =
>> > UIMAFramework.produceAnalysisEngine(analysisEngineDesc);
>> >             pool = new JCasPool(300, engine);
>> >         } catch (Exception e) {
>> >             e.printStackTrace();
>> >             throw new ServletException(e);
>> >         }
>> >     }
>> >
>> > @RequestMapping(value = "/analyze", method = RequestMethod.POST)
>> >    @ResponseBody
>> >    public Map<String, List<String>> getAnalyzedJSON(@RequestBody String
>> > analysisText) throws ServletException, IOException {
>> >        Map<String, List<String>> resultMap = null;
>> >        if (analysisText != null && analysisText.trim().length() > 0) {
>> >            JCas jcas = pool.getJCas(-1);
>> >            try {
>> >                jcas.setDocumentText(analysisText);
>> >                engine. .process(jcas);
>> >                resultMap = formatResults(jcas);
>> >            } catch (Exception e) {
>> >                e.printStackTrace();
>> >                throw new ServletException(e);
>> >            } finally {
>> >                 pool.releaseJCas(jcas); //Releasing JCas
>> >            }
>> >        }
>> >         return resultMap;
>> >    }
>> >
>> >
>> >
>> > On Wed, Mar 6, 2019 at 12:42 PM satyananda sahu <
>> satyananda123@gmail.com>
>> > wrote:
>> >
>> > > Reset the annotators and process engine for each call and it should
>> work
>> > > for you.
>> > >
>> > > Thanks,
>> > > Satya
>> > >
>> > > On Tue, Mar 5, 2019 at 3:12 PM Zakir Saifi <za...@raxa.com>
>> wrote:
>> > >
>> > > > Hi all,
>> > > >
>> > > > I using Ctakes Rest Service(a Rest Server based on Apache Ctakes)
>> for
>> > > > benchmarking using *Apache Jmeter*. As I have to use it as Rest
>> Server
>> > to
>> > > > processing many clinical Text
>> > > >
>> > > > My Configuration for BenchMarking are as follows:
>> > > > I am creating 10 users(threads) each with Ramp up period (*10s*).
>> *That
>> > > > means 1 user is created after every 1 second. *
>> > > > I have loop count of *5* (Number of iteration)
>> > > > There is a time delay of *500ms* between each subsequent Request (
>> To
>> > > > simulate requests as in real-time scenarios, real-users give delays
>> > > between
>> > > > doing different actions.)
>> > > > I am also changing the *data* with each request by using data from
>> CSV
>> > > > file.
>> > > >
>> > > > I am getting following exceptions for most* of the requests* that
>> comes
>> > > to
>> > > > Ctakes Rest Sever
>> > > >
>> > > > Exception1
>> > > > org.apache.uima.analysis_engine.s: Annotator processing failed.
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:391)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:296)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:567)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:409)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:342)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:267)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:267)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:280)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.ctakes.rest.service.CtakesRestController.getAnalyzedJSON(CtakesRestController.java:95)
>> > > > at sun.reflect.GeneratedMethodAccessor157.invoke(Unknown Source)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> > > > at java.lang.reflect.Method.invoke(Method.java:498)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
>> > > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
>> > > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>> > > > at
>> > org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
>> > > > at
>> > > >
>> > >
>> >
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
>> > > > at
>> > > >
>> > >
>> >
>> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
>> > > > at
>> > > > org.apache.tomcat.util.net
>> > > > .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
>> > > > at
>> > > > org.apache.tomcat.util.net
>> > > > .SocketProcessorBase.run(SocketProcessorBase.java:49)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>> > > > at java.lang.Thread.run(Thread.java:748)
>> > > > Caused by: java.lang.NullPointerException
>> > > >
>> > > > Exception2
>> > > > 05-Mar-2019 08:45:32.274 SEVERE [http-nio-8089-exec-3]
>> > > >
>> > > >
>> > >
>> >
>> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(275)
>> > > > Exception occurred
>> > > >  org.apache.uima.analysis_engine.AnalysisEngineProcessException:
>> > > Annotator
>> > > > processing failed.
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:391)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:296)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:567)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:409)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:342)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:267)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:267)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:280)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.ctakes.rest.service.CtakesRestController.getAnalyzedJSON(CtakesRestController.java:95)
>> > > > at sun.reflect.GeneratedMethodAccessor157.invoke(Unknown Source)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> > > > at java.lang.reflect.Method.invoke(Method.java:498)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
>> > > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
>> > > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>> > > > at
>> > org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
>> > > > at
>> > > >
>> > >
>> >
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
>> > > > at
>> > > >
>> > >
>> >
>> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
>> > > > at
>> > > > org.apache.tomcat.util.net
>> > > > .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
>> > > > at
>> > > > org.apache.tomcat.util.net
>> > > > .SocketProcessorBase.run(SocketProcessorBase.java:49)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>> > > > at
>> > > >
>> > > >
>> > >
>> >
>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>> > > > at java.lang.Thread.run(Thread.java:748)
>> > > > Caused by: java.lang.NullPointerException
>> > > >
>> > > >
>> > > > I have recently changed the *minimum span detection to 1 *and also
>> not
>> > > > excluding any exclusion tags in my Piper files. Since then I am
>> seeing
>> > > this
>> > > > errors coming more frequently. I don't think these errors are
>> > associated
>> > > > with any particular type of data to goes to ctakes Service.Because
>> if I
>> > > > increase the time between the subsequent user creation and Time
>> delay
>> > > > between the subsequent call, I am not getting any exception.
>> > > >
>> > > > I am currently running *Ctakes Rest Server* war in a Docker
>> Container
>> > > > having tomcat image with JVM Maximum Memory of* 3 GB.*  Anyone have
>> > idea
>> > > > why I am getting these exception on heavy load??
>> > > >
>> > > >
>> > > >
>> > > >
>> > > > Regards
>> > > > Zakir Saifi
>> > > >
>> > >
>> >
>> >
>> > --
>> > Regards
>> > Zakir Saifi
>> > (Software Developer at Raxa)
>> >
>>
>
>
> --
> Regards
> Zakir Saifi
> (Software Developer at Raxa)
>


-- 
Regards
Zakir Saifi
(Software Developer at Raxa)

Re: Analysis Engine Process Exception while querying ctakes Service frequently

Posted by Zakir Saifi <za...@raxa.com>.
@Satyananda Sahu, But release JCas is also doing the same

public synchronized void releaseJCas(JCas aJCas) {
    // make sure this CAS actually belongs to this pool and is checked out
    if (!mAllInstances.contains(aJCas) || mFreeInstances.contains(aJCas)) {
      UIMAFramework.getLogger(CLASS_NAME).logrb(Level.WARNING,
CLASS_NAME.getName(), "releaseJCas",
              LOG_RESOURCE_BUNDLE, "UIMA_return_jcas_to_pool__WARNING");
    } else {
      // reset CAS
      aJCas.reset();
      // Add the CAS to the end of the free instances List
      mFreeInstances.add(aJCas);
    }

    // Notify any threads waiting on this object
    notifyAll();
  }


On Wed, Mar 6, 2019 at 5:22 PM satyananda sahu <sa...@gmail.com>
wrote:

> @RequestMapping(value = "/analyze", method = RequestMethod.POST)
>    @ResponseBody
>    public Map<String, List<String>> getAnalyzedJSON(@RequestBody String
> analysisText) throws ServletException, IOException {
>        Map<String, List<String>> resultMap = null;
>        if (analysisText != null && analysisText.trim().length() > 0) {
>            JCas jcas = pool.getJCas(-1);
>            try {
>                jcas.setDocumentText(analysisText);
>                engine. .process(jcas);
>
>
>
>                resultMap = formatResults(jcas);
> //check this might help you
>               *jcas.reset();*
>
>
>            } catch (Exception e) {
>                e.printStackTrace();
>                throw new ServletException(e);
>            } finally {
>                 pool.releaseJCas(jcas); //Releasing JCas
>            }
>        }
>         return resultMap;
>    }
>
> check this link:
>
> https://uima.apache.org/d/uimaj-current/apidocs/org/apache/uima/analysis_engine/AnalysisEngine.html
>
>
> On Wed, Mar 6, 2019 at 3:14 PM Zakir Saifi <za...@raxa.com> wrote:
>
> > Hi @Satyananda Sahu
> > Could you elaborate about how r*esetting the annotators and process
> > engine*?.
> > I currently releasing the JCas pool after each rest call and in case of
> an
> > exception, I am also releasing the JCas.
> >
> > Here is my code. Post construct work only for the First time. Then the
> > subsequent Rest calls process JCas and release after the use.
> >
> > @PostConstruct
> >     public void init() throws ServletException {
> >         LOGGER.info("Initializing analysis engine and jcas pool");
> >         try {
> >             final File inputFile    =
> FileLocator.getFile(PIPER_FILE_PATH);
> >             PiperFileReader reader  = new
> > PiperFileReader(inputFile.getAbsolutePath());
> >             PipelineBuilder builder = reader.getBuilder();
> >             AnalysisEngineDescription analysisEngineDesc =
> > builder.getAnalysisEngineDesc();
> >             engine =
> > UIMAFramework.produceAnalysisEngine(analysisEngineDesc);
> >             pool = new JCasPool(300, engine);
> >         } catch (Exception e) {
> >             e.printStackTrace();
> >             throw new ServletException(e);
> >         }
> >     }
> >
> > @RequestMapping(value = "/analyze", method = RequestMethod.POST)
> >    @ResponseBody
> >    public Map<String, List<String>> getAnalyzedJSON(@RequestBody String
> > analysisText) throws ServletException, IOException {
> >        Map<String, List<String>> resultMap = null;
> >        if (analysisText != null && analysisText.trim().length() > 0) {
> >            JCas jcas = pool.getJCas(-1);
> >            try {
> >                jcas.setDocumentText(analysisText);
> >                engine. .process(jcas);
> >                resultMap = formatResults(jcas);
> >            } catch (Exception e) {
> >                e.printStackTrace();
> >                throw new ServletException(e);
> >            } finally {
> >                 pool.releaseJCas(jcas); //Releasing JCas
> >            }
> >        }
> >         return resultMap;
> >    }
> >
> >
> >
> > On Wed, Mar 6, 2019 at 12:42 PM satyananda sahu <satyananda123@gmail.com
> >
> > wrote:
> >
> > > Reset the annotators and process engine for each call and it should
> work
> > > for you.
> > >
> > > Thanks,
> > > Satya
> > >
> > > On Tue, Mar 5, 2019 at 3:12 PM Zakir Saifi <za...@raxa.com>
> wrote:
> > >
> > > > Hi all,
> > > >
> > > > I using Ctakes Rest Service(a Rest Server based on Apache Ctakes) for
> > > > benchmarking using *Apache Jmeter*. As I have to use it as Rest
> Server
> > to
> > > > processing many clinical Text
> > > >
> > > > My Configuration for BenchMarking are as follows:
> > > > I am creating 10 users(threads) each with Ramp up period (*10s*).
> *That
> > > > means 1 user is created after every 1 second. *
> > > > I have loop count of *5* (Number of iteration)
> > > > There is a time delay of *500ms* between each subsequent Request ( To
> > > > simulate requests as in real-time scenarios, real-users give delays
> > > between
> > > > doing different actions.)
> > > > I am also changing the *data* with each request by using data from
> CSV
> > > > file.
> > > >
> > > > I am getting following exceptions for most* of the requests* that
> comes
> > > to
> > > > Ctakes Rest Sever
> > > >
> > > > Exception1
> > > > org.apache.uima.analysis_engine.s: Annotator processing failed.
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:391)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:296)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:567)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:409)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:342)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:267)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:267)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:280)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.ctakes.rest.service.CtakesRestController.getAnalyzedJSON(CtakesRestController.java:95)
> > > > at sun.reflect.GeneratedMethodAccessor157.invoke(Unknown Source)
> > > > at
> > > >
> > > >
> > >
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> > > > at java.lang.reflect.Method.invoke(Method.java:498)
> > > > at
> > > >
> > > >
> > >
> >
> org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
> > > > at
> > > >
> > > >
> > >
> >
> org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
> > > > at
> > > >
> > > >
> > >
> >
> org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
> > > > at
> > > >
> > > >
> > >
> >
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
> > > > at
> > > >
> > > >
> > >
> >
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
> > > > at
> > > >
> > > >
> > >
> >
> org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
> > > > at
> > > >
> > > >
> > >
> >
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
> > > > at
> > > >
> > > >
> > >
> >
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
> > > > at
> > > >
> > > >
> > >
> >
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
> > > > at
> > > >
> > > >
> > >
> >
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
> > > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
> > > > at
> > > >
> > > >
> > >
> >
> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
> > > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> > > > at
> > org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
> > > > at
> > > >
> > >
> >
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
> > > > at
> > > >
> > >
> >
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
> > > > at
> > > > org.apache.tomcat.util.net
> > > > .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
> > > > at
> > > > org.apache.tomcat.util.net
> > > > .SocketProcessorBase.run(SocketProcessorBase.java:49)
> > > > at
> > > >
> > > >
> > >
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> > > > at
> > > >
> > > >
> > >
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> > > > at java.lang.Thread.run(Thread.java:748)
> > > > Caused by: java.lang.NullPointerException
> > > >
> > > > Exception2
> > > > 05-Mar-2019 08:45:32.274 SEVERE [http-nio-8089-exec-3]
> > > >
> > > >
> > >
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(275)
> > > > Exception occurred
> > > >  org.apache.uima.analysis_engine.AnalysisEngineProcessException:
> > > Annotator
> > > > processing failed.
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:391)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:296)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:567)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:409)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:342)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:267)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:267)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:280)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.ctakes.rest.service.CtakesRestController.getAnalyzedJSON(CtakesRestController.java:95)
> > > > at sun.reflect.GeneratedMethodAccessor157.invoke(Unknown Source)
> > > > at
> > > >
> > > >
> > >
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> > > > at java.lang.reflect.Method.invoke(Method.java:498)
> > > > at
> > > >
> > > >
> > >
> >
> org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
> > > > at
> > > >
> > > >
> > >
> >
> org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
> > > > at
> > > >
> > > >
> > >
> >
> org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
> > > > at
> > > >
> > > >
> > >
> >
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
> > > > at
> > > >
> > > >
> > >
> >
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
> > > > at
> > > >
> > > >
> > >
> >
> org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
> > > > at
> > > >
> > > >
> > >
> >
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
> > > > at
> > > >
> > > >
> > >
> >
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
> > > > at
> > > >
> > > >
> > >
> >
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
> > > > at
> > > >
> > > >
> > >
> >
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
> > > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
> > > > at
> > > >
> > > >
> > >
> >
> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
> > > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> > > > at
> > org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
> > > > at
> > > >
> > >
> >
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
> > > > at
> > > >
> > >
> >
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
> > > > at
> > > > org.apache.tomcat.util.net
> > > > .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
> > > > at
> > > > org.apache.tomcat.util.net
> > > > .SocketProcessorBase.run(SocketProcessorBase.java:49)
> > > > at
> > > >
> > > >
> > >
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> > > > at
> > > >
> > > >
> > >
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> > > > at java.lang.Thread.run(Thread.java:748)
> > > > Caused by: java.lang.NullPointerException
> > > >
> > > >
> > > > I have recently changed the *minimum span detection to 1 *and also
> not
> > > > excluding any exclusion tags in my Piper files. Since then I am
> seeing
> > > this
> > > > errors coming more frequently. I don't think these errors are
> > associated
> > > > with any particular type of data to goes to ctakes Service.Because
> if I
> > > > increase the time between the subsequent user creation and Time delay
> > > > between the subsequent call, I am not getting any exception.
> > > >
> > > > I am currently running *Ctakes Rest Server* war in a Docker Container
> > > > having tomcat image with JVM Maximum Memory of* 3 GB.*  Anyone have
> > idea
> > > > why I am getting these exception on heavy load??
> > > >
> > > >
> > > >
> > > >
> > > > Regards
> > > > Zakir Saifi
> > > >
> > >
> >
> >
> > --
> > Regards
> > Zakir Saifi
> > (Software Developer at Raxa)
> >
>


-- 
Regards
Zakir Saifi
(Software Developer at Raxa)

Re: Analysis Engine Process Exception while querying ctakes Service frequently

Posted by satyananda sahu <sa...@gmail.com>.
@RequestMapping(value = "/analyze", method = RequestMethod.POST)
   @ResponseBody
   public Map<String, List<String>> getAnalyzedJSON(@RequestBody String
analysisText) throws ServletException, IOException {
       Map<String, List<String>> resultMap = null;
       if (analysisText != null && analysisText.trim().length() > 0) {
           JCas jcas = pool.getJCas(-1);
           try {
               jcas.setDocumentText(analysisText);
               engine. .process(jcas);



               resultMap = formatResults(jcas);
//check this might help you
              *jcas.reset();*


           } catch (Exception e) {
               e.printStackTrace();
               throw new ServletException(e);
           } finally {
                pool.releaseJCas(jcas); //Releasing JCas
           }
       }
        return resultMap;
   }

check this link:
https://uima.apache.org/d/uimaj-current/apidocs/org/apache/uima/analysis_engine/AnalysisEngine.html


On Wed, Mar 6, 2019 at 3:14 PM Zakir Saifi <za...@raxa.com> wrote:

> Hi @Satyananda Sahu
> Could you elaborate about how r*esetting the annotators and process
> engine*?.
> I currently releasing the JCas pool after each rest call and in case of an
> exception, I am also releasing the JCas.
>
> Here is my code. Post construct work only for the First time. Then the
> subsequent Rest calls process JCas and release after the use.
>
> @PostConstruct
>     public void init() throws ServletException {
>         LOGGER.info("Initializing analysis engine and jcas pool");
>         try {
>             final File inputFile    = FileLocator.getFile(PIPER_FILE_PATH);
>             PiperFileReader reader  = new
> PiperFileReader(inputFile.getAbsolutePath());
>             PipelineBuilder builder = reader.getBuilder();
>             AnalysisEngineDescription analysisEngineDesc =
> builder.getAnalysisEngineDesc();
>             engine =
> UIMAFramework.produceAnalysisEngine(analysisEngineDesc);
>             pool = new JCasPool(300, engine);
>         } catch (Exception e) {
>             e.printStackTrace();
>             throw new ServletException(e);
>         }
>     }
>
> @RequestMapping(value = "/analyze", method = RequestMethod.POST)
>    @ResponseBody
>    public Map<String, List<String>> getAnalyzedJSON(@RequestBody String
> analysisText) throws ServletException, IOException {
>        Map<String, List<String>> resultMap = null;
>        if (analysisText != null && analysisText.trim().length() > 0) {
>            JCas jcas = pool.getJCas(-1);
>            try {
>                jcas.setDocumentText(analysisText);
>                engine. .process(jcas);
>                resultMap = formatResults(jcas);
>            } catch (Exception e) {
>                e.printStackTrace();
>                throw new ServletException(e);
>            } finally {
>                 pool.releaseJCas(jcas); //Releasing JCas
>            }
>        }
>         return resultMap;
>    }
>
>
>
> On Wed, Mar 6, 2019 at 12:42 PM satyananda sahu <sa...@gmail.com>
> wrote:
>
> > Reset the annotators and process engine for each call and it should work
> > for you.
> >
> > Thanks,
> > Satya
> >
> > On Tue, Mar 5, 2019 at 3:12 PM Zakir Saifi <za...@raxa.com> wrote:
> >
> > > Hi all,
> > >
> > > I using Ctakes Rest Service(a Rest Server based on Apache Ctakes) for
> > > benchmarking using *Apache Jmeter*. As I have to use it as Rest Server
> to
> > > processing many clinical Text
> > >
> > > My Configuration for BenchMarking are as follows:
> > > I am creating 10 users(threads) each with Ramp up period (*10s*). *That
> > > means 1 user is created after every 1 second. *
> > > I have loop count of *5* (Number of iteration)
> > > There is a time delay of *500ms* between each subsequent Request ( To
> > > simulate requests as in real-time scenarios, real-users give delays
> > between
> > > doing different actions.)
> > > I am also changing the *data* with each request by using data from CSV
> > > file.
> > >
> > > I am getting following exceptions for most* of the requests* that comes
> > to
> > > Ctakes Rest Sever
> > >
> > > Exception1
> > > org.apache.uima.analysis_engine.s: Annotator processing failed.
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:391)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:296)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:567)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:409)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:342)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:267)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:267)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:280)
> > > at
> > >
> > >
> >
> org.apache.ctakes.rest.service.CtakesRestController.getAnalyzedJSON(CtakesRestController.java:95)
> > > at sun.reflect.GeneratedMethodAccessor157.invoke(Unknown Source)
> > > at
> > >
> > >
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> > > at java.lang.reflect.Method.invoke(Method.java:498)
> > > at
> > >
> > >
> >
> org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
> > > at
> > >
> > >
> >
> org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
> > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
> > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> > > at
> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
> > > at
> > >
> > >
> >
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
> > > at
> > >
> > >
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
> > > at
> > >
> > >
> >
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> > > at
> > >
> > >
> >
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
> > > at
> > >
> >
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
> > > at
> > >
> >
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
> > > at
> > >
> > >
> >
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
> > > at
> > >
> > >
> >
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
> > > at
> > > org.apache.tomcat.util.net
> > > .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
> > > at
> > > org.apache.tomcat.util.net
> > > .SocketProcessorBase.run(SocketProcessorBase.java:49)
> > > at
> > >
> > >
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> > > at
> > >
> > >
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> > > at
> > >
> > >
> >
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> > > at java.lang.Thread.run(Thread.java:748)
> > > Caused by: java.lang.NullPointerException
> > >
> > > Exception2
> > > 05-Mar-2019 08:45:32.274 SEVERE [http-nio-8089-exec-3]
> > >
> > >
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(275)
> > > Exception occurred
> > >  org.apache.uima.analysis_engine.AnalysisEngineProcessException:
> > Annotator
> > > processing failed.
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:391)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:296)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:567)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:409)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:342)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:267)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:267)
> > > at
> > >
> > >
> >
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:280)
> > > at
> > >
> > >
> >
> org.apache.ctakes.rest.service.CtakesRestController.getAnalyzedJSON(CtakesRestController.java:95)
> > > at sun.reflect.GeneratedMethodAccessor157.invoke(Unknown Source)
> > > at
> > >
> > >
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> > > at java.lang.reflect.Method.invoke(Method.java:498)
> > > at
> > >
> > >
> >
> org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
> > > at
> > >
> > >
> >
> org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
> > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
> > > at
> > >
> > >
> >
> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
> > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> > > at
> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
> > > at
> > >
> > >
> >
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
> > > at
> > >
> > >
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
> > > at
> > >
> > >
> >
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> > > at
> > >
> > >
> >
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> > > at
> > >
> > >
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
> > > at
> > >
> >
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
> > > at
> > >
> >
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
> > > at
> > >
> > >
> >
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
> > > at
> > >
> > >
> >
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
> > > at
> > > org.apache.tomcat.util.net
> > > .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
> > > at
> > > org.apache.tomcat.util.net
> > > .SocketProcessorBase.run(SocketProcessorBase.java:49)
> > > at
> > >
> > >
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> > > at
> > >
> > >
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> > > at
> > >
> > >
> >
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> > > at java.lang.Thread.run(Thread.java:748)
> > > Caused by: java.lang.NullPointerException
> > >
> > >
> > > I have recently changed the *minimum span detection to 1 *and also not
> > > excluding any exclusion tags in my Piper files. Since then I am seeing
> > this
> > > errors coming more frequently. I don't think these errors are
> associated
> > > with any particular type of data to goes to ctakes Service.Because if I
> > > increase the time between the subsequent user creation and Time delay
> > > between the subsequent call, I am not getting any exception.
> > >
> > > I am currently running *Ctakes Rest Server* war in a Docker Container
> > > having tomcat image with JVM Maximum Memory of* 3 GB.*  Anyone have
> idea
> > > why I am getting these exception on heavy load??
> > >
> > >
> > >
> > >
> > > Regards
> > > Zakir Saifi
> > >
> >
>
>
> --
> Regards
> Zakir Saifi
> (Software Developer at Raxa)
>

Re: Analysis Engine Process Exception while querying ctakes Service frequently

Posted by Zakir Saifi <za...@raxa.com>.
Hi @Satyananda Sahu
Could you elaborate about how r*esetting the annotators and process engine*?.
I currently releasing the JCas pool after each rest call and in case of an
exception, I am also releasing the JCas.

Here is my code. Post construct work only for the First time. Then the
subsequent Rest calls process JCas and release after the use.

@PostConstruct
    public void init() throws ServletException {
        LOGGER.info("Initializing analysis engine and jcas pool");
        try {
            final File inputFile    = FileLocator.getFile(PIPER_FILE_PATH);
            PiperFileReader reader  = new
PiperFileReader(inputFile.getAbsolutePath());
            PipelineBuilder builder = reader.getBuilder();
            AnalysisEngineDescription analysisEngineDesc =
builder.getAnalysisEngineDesc();
            engine =
UIMAFramework.produceAnalysisEngine(analysisEngineDesc);
            pool = new JCasPool(300, engine);
        } catch (Exception e) {
            e.printStackTrace();
            throw new ServletException(e);
        }
    }

@RequestMapping(value = "/analyze", method = RequestMethod.POST)
   @ResponseBody
   public Map<String, List<String>> getAnalyzedJSON(@RequestBody String
analysisText) throws ServletException, IOException {
       Map<String, List<String>> resultMap = null;
       if (analysisText != null && analysisText.trim().length() > 0) {
           JCas jcas = pool.getJCas(-1);
           try {
               jcas.setDocumentText(analysisText);
               engine. .process(jcas);
               resultMap = formatResults(jcas);
           } catch (Exception e) {
               e.printStackTrace();
               throw new ServletException(e);
           } finally {
                pool.releaseJCas(jcas); //Releasing JCas
           }
       }
        return resultMap;
   }



On Wed, Mar 6, 2019 at 12:42 PM satyananda sahu <sa...@gmail.com>
wrote:

> Reset the annotators and process engine for each call and it should work
> for you.
>
> Thanks,
> Satya
>
> On Tue, Mar 5, 2019 at 3:12 PM Zakir Saifi <za...@raxa.com> wrote:
>
> > Hi all,
> >
> > I using Ctakes Rest Service(a Rest Server based on Apache Ctakes) for
> > benchmarking using *Apache Jmeter*. As I have to use it as Rest Server to
> > processing many clinical Text
> >
> > My Configuration for BenchMarking are as follows:
> > I am creating 10 users(threads) each with Ramp up period (*10s*). *That
> > means 1 user is created after every 1 second. *
> > I have loop count of *5* (Number of iteration)
> > There is a time delay of *500ms* between each subsequent Request ( To
> > simulate requests as in real-time scenarios, real-users give delays
> between
> > doing different actions.)
> > I am also changing the *data* with each request by using data from CSV
> > file.
> >
> > I am getting following exceptions for most* of the requests* that comes
> to
> > Ctakes Rest Sever
> >
> > Exception1
> > org.apache.uima.analysis_engine.s: Annotator processing failed.
> > at
> >
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:391)
> > at
> >
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:296)
> > at
> >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:567)
> > at
> >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:409)
> > at
> >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:342)
> > at
> >
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:267)
> > at
> >
> >
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:267)
> > at
> >
> >
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:280)
> > at
> >
> >
> org.apache.ctakes.rest.service.CtakesRestController.getAnalyzedJSON(CtakesRestController.java:95)
> > at sun.reflect.GeneratedMethodAccessor157.invoke(Unknown Source)
> > at
> >
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> > at java.lang.reflect.Method.invoke(Method.java:498)
> > at
> >
> >
> org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
> > at
> >
> >
> org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
> > at
> >
> >
> org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
> > at
> >
> >
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
> > at
> >
> >
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
> > at
> >
> >
> org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
> > at
> >
> >
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
> > at
> >
> >
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
> > at
> >
> >
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
> > at
> >
> >
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
> > at
> >
> >
> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
> > at
> >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
> > at
> >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> > at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> > at
> >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> > at
> >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> > at
> >
> >
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
> > at
> >
> >
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
> > at
> >
> >
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
> > at
> >
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
> > at
> >
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
> > at
> >
> >
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> > at
> >
> >
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> > at
> >
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
> > at
> >
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
> > at
> >
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
> > at
> >
> >
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
> > at
> >
> >
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
> > at
> > org.apache.tomcat.util.net
> > .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
> > at
> > org.apache.tomcat.util.net
> > .SocketProcessorBase.run(SocketProcessorBase.java:49)
> > at
> >
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> > at
> >
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> > at
> >
> >
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> > at java.lang.Thread.run(Thread.java:748)
> > Caused by: java.lang.NullPointerException
> >
> > Exception2
> > 05-Mar-2019 08:45:32.274 SEVERE [http-nio-8089-exec-3]
> >
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(275)
> > Exception occurred
> >  org.apache.uima.analysis_engine.AnalysisEngineProcessException:
> Annotator
> > processing failed.
> > at
> >
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:391)
> > at
> >
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:296)
> > at
> >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:567)
> > at
> >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:409)
> > at
> >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:342)
> > at
> >
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:267)
> > at
> >
> >
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:267)
> > at
> >
> >
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:280)
> > at
> >
> >
> org.apache.ctakes.rest.service.CtakesRestController.getAnalyzedJSON(CtakesRestController.java:95)
> > at sun.reflect.GeneratedMethodAccessor157.invoke(Unknown Source)
> > at
> >
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> > at java.lang.reflect.Method.invoke(Method.java:498)
> > at
> >
> >
> org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
> > at
> >
> >
> org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
> > at
> >
> >
> org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
> > at
> >
> >
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
> > at
> >
> >
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
> > at
> >
> >
> org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
> > at
> >
> >
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
> > at
> >
> >
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
> > at
> >
> >
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
> > at
> >
> >
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
> > at
> >
> >
> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
> > at
> >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
> > at
> >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> > at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> > at
> >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> > at
> >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> > at
> >
> >
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
> > at
> >
> >
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
> > at
> >
> >
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
> > at
> >
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
> > at
> >
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
> > at
> >
> >
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> > at
> >
> >
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> > at
> >
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
> > at
> >
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
> > at
> >
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
> > at
> >
> >
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
> > at
> >
> >
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
> > at
> > org.apache.tomcat.util.net
> > .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
> > at
> > org.apache.tomcat.util.net
> > .SocketProcessorBase.run(SocketProcessorBase.java:49)
> > at
> >
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> > at
> >
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> > at
> >
> >
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> > at java.lang.Thread.run(Thread.java:748)
> > Caused by: java.lang.NullPointerException
> >
> >
> > I have recently changed the *minimum span detection to 1 *and also not
> > excluding any exclusion tags in my Piper files. Since then I am seeing
> this
> > errors coming more frequently. I don't think these errors are associated
> > with any particular type of data to goes to ctakes Service.Because if I
> > increase the time between the subsequent user creation and Time delay
> > between the subsequent call, I am not getting any exception.
> >
> > I am currently running *Ctakes Rest Server* war in a Docker Container
> > having tomcat image with JVM Maximum Memory of* 3 GB.*  Anyone have idea
> > why I am getting these exception on heavy load??
> >
> >
> >
> >
> > Regards
> > Zakir Saifi
> >
>


-- 
Regards
Zakir Saifi
(Software Developer at Raxa)

Re: Analysis Engine Process Exception while querying ctakes Service frequently

Posted by satyananda sahu <sa...@gmail.com>.
Reset the annotators and process engine for each call and it should work
for you.

Thanks,
Satya

On Tue, Mar 5, 2019 at 3:12 PM Zakir Saifi <za...@raxa.com> wrote:

> Hi all,
>
> I using Ctakes Rest Service(a Rest Server based on Apache Ctakes) for
> benchmarking using *Apache Jmeter*. As I have to use it as Rest Server to
> processing many clinical Text
>
> My Configuration for BenchMarking are as follows:
> I am creating 10 users(threads) each with Ramp up period (*10s*). *That
> means 1 user is created after every 1 second. *
> I have loop count of *5* (Number of iteration)
> There is a time delay of *500ms* between each subsequent Request ( To
> simulate requests as in real-time scenarios, real-users give delays between
> doing different actions.)
> I am also changing the *data* with each request by using data from CSV
> file.
>
> I am getting following exceptions for most* of the requests* that comes to
> Ctakes Rest Sever
>
> Exception1
> org.apache.uima.analysis_engine.s: Annotator processing failed.
> at
>
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:391)
> at
>
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:296)
> at
>
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:567)
> at
>
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:409)
> at
>
> org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:342)
> at
>
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:267)
> at
>
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:267)
> at
>
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:280)
> at
>
> org.apache.ctakes.rest.service.CtakesRestController.getAnalyzedJSON(CtakesRestController.java:95)
> at sun.reflect.GeneratedMethodAccessor157.invoke(Unknown Source)
> at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at
>
> org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
> at
>
> org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
> at
>
> org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
> at
>
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
> at
>
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
> at
>
> org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
> at
>
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
> at
>
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
> at
>
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
> at
>
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
> at
>
> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> at
>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
> at
>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
> at
>
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
> at
>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
> at
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
> at
>
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> at
>
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> at
>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
> at
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
> at
>
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
> at
>
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
> at
> org.apache.tomcat.util.net
> .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
> at
> org.apache.tomcat.util.net
> .SocketProcessorBase.run(SocketProcessorBase.java:49)
> at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at
>
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.NullPointerException
>
> Exception2
> 05-Mar-2019 08:45:32.274 SEVERE [http-nio-8089-exec-3]
>
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(275)
> Exception occurred
>  org.apache.uima.analysis_engine.AnalysisEngineProcessException: Annotator
> processing failed.
> at
>
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:391)
> at
>
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:296)
> at
>
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:567)
> at
>
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:409)
> at
>
> org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:342)
> at
>
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:267)
> at
>
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:267)
> at
>
> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:280)
> at
>
> org.apache.ctakes.rest.service.CtakesRestController.getAnalyzedJSON(CtakesRestController.java:95)
> at sun.reflect.GeneratedMethodAccessor157.invoke(Unknown Source)
> at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at
>
> org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
> at
>
> org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
> at
>
> org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
> at
>
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
> at
>
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
> at
>
> org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
> at
>
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
> at
>
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
> at
>
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
> at
>
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
> at
>
> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> at
>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
> at
>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
> at
>
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
> at
>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
> at
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
> at
>
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> at
>
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> at
>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
> at
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
> at
>
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
> at
>
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
> at
> org.apache.tomcat.util.net
> .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
> at
> org.apache.tomcat.util.net
> .SocketProcessorBase.run(SocketProcessorBase.java:49)
> at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at
>
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.NullPointerException
>
>
> I have recently changed the *minimum span detection to 1 *and also not
> excluding any exclusion tags in my Piper files. Since then I am seeing this
> errors coming more frequently. I don't think these errors are associated
> with any particular type of data to goes to ctakes Service.Because if I
> increase the time between the subsequent user creation and Time delay
> between the subsequent call, I am not getting any exception.
>
> I am currently running *Ctakes Rest Server* war in a Docker Container
> having tomcat image with JVM Maximum Memory of* 3 GB.*  Anyone have idea
> why I am getting these exception on heavy load??
>
>
>
>
> Regards
> Zakir Saifi
>