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
Hi,

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.

Environment:
-client:
- - 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:
- - 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
SentenceAnnotator
- - - 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,

Dietmar


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

<analysisEngineDeploymentDescription
  xmlns="http://uima.apache.org/resourceSpecifier">
  <name>SentenceAnnotator</name>
  <description>Deploys SentenceAnnotator AE</description>
  <deployment protocol="jms" provider="activemq" >
    <service>
      <inputQueue endpoint="SentenceAnnotatorQueue"
brokerURL="${defaultBrokerURL}"/>
      <topDescriptor>
         <import location="AAE_WSTokenizerSentenceAnnotator.xml"/>
      </topDescriptor>
      <analysisEngine async="true" key="SentenceAnnotator"
internalReplyQueueScaleout="1" inputQueueScaleout="1">
              <delegates>
                <analysisEngine key="SentenceAnnotator">
                  <scaleout numberOfInstances="1"/>
                </analysisEngine>
                <analysisEngine key ="WhitespaceTokenizer">
                  <scaleout numberOfInstances="1"/>
                </analysisEngine>
              </delegates>
      </analysisEngine>
    </service>
  </deployment>

Mime
View raw message