uima-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dietmar Gräbner <d.graeb...@gmail.com>
Subject UimaAS blocks when accessing a queue with multiple clients concurrently
Date Tue, 07 Dec 2010 14:50:04 GMT

I hope you can help me with a problem I am struggling with for quite a
while now.

I wrote a test client creating multiple threads. Each thread
instantiates a BaseUIMAAsynchronousEngine_impl and invokes a uima
aggregate with the sendAndReceiveCAS() call. When running the program
with e.g. 100 Threads the client gets stuck after processing X calls.

- - uses the uima  2.3.0-incubating
- - the client is a modified copy of the RunRemoteAE.java uima
provides as an example
- - no timeouts configured except MetaTimeout

- - server runs on a different machine
- - 2.3.0 with JMX configured to monitor activeMq and the Uima Services
- - Deployment Descriptor
- - - the uima service has two delegates: WhitespaceTokenizer and a
- - - no extra error handling configured (see at the end of the email)

Detailed problem description:

- The UIMA service reports in the JMX stats that all documents have
been processed. The individual delegate logs report that the process
method has been finished.
- Some of the client threads are blocked at the
AbstractQueuedSynchronizer. The others finished sucessfully.
- The Temp Queues in Active MQ still exist. Some are containing
messages and there are differences in the enqueue and dequeue counts.
- I experimented with different configuration parameters in the AS
deploment descriptor, though I don't think that this is the problem.
- Everything works fine with a primitve UIMA Service.
- I set the log settings to ALL, but couldn't find any Exceptions.

Thank you in advance.

Best regards,


the most simple descriptor I used (I also tried 1 instance per used thread):

  <description>Deploys SentenceAnnotator AE</description>
  <deployment protocol="jms" provider="activemq" >
      <inputQueue endpoint="SentenceAnnotatorQueue"
         <import location="AAE_WSTokenizerSentenceAnnotator.xml"/>
      <analysisEngine async="true" key="SentenceAnnotator"
internalReplyQueueScaleout="1" inputQueueScaleout="1">
                <analysisEngine key="SentenceAnnotator">
                  <scaleout numberOfInstances="1"/>
                <analysisEngine key ="WhitespaceTokenizer">
                  <scaleout numberOfInstances="1"/>

View raw message