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>
