Hi, Finally I found the root of the problem: the analysisenging/delegate section in the deployment descriptor.
I modified the meeting detector TAE "Deploy_MeetingDetectorTAE.xml" file: The <analysis engine> section was added without any scaleout information. Using this deployment descriptor with 100 Threads (Clients) calling the the service asynchronously leads to the blocking. I tried it with both AMQ 4.1.1 and the latest version 5.X. Here is the descriptor: -------------- <analysisEngineDeploymentDescription xmlns="http://uima.apache.org/resourceSpecifier"> <name>Meeting Detector TAE</name> <description>Deploys Meeting Detector Aggregate AE with all its delegates in the same JVM.</description> <deployment protocol="jms" provider="activemq"> <service> <inputQueue endpoint="MeetingDetectorTaeQueue" brokerURL="${defaultBrokerURL}"/> <topDescriptor> <import location="../../descriptors/tutorial/ex4/MeetingDetectorTAE.xml"/> </topDescriptor> <analysisEngine key="MeetingDetectorTae"> <delegates> <analysisEngine key="RoomNumber"> </analysisEngine> <analysisEngine key ="DateTime"> </analysisEngine> <analysisEngine key ="Meeting"> </analysisEngine> </delegates> </analysisEngine> </service> </deployment> </analysisEngineDeploymentDescription> ---------------- thx Dietmar On Wed, Dec 8, 2010 at 2:52 AM, Jaroslaw Cwiklik <[email protected]> wrote: > I've created a multi-threaded application that uses a > BaseUIMAAsynchronousEngine_impl instance per thread. Scaled this up to 100 > threads (100 clients). Ran this many times with a single instance of > RoomNumber Annotator service (from uima as examples). No hangs. Can you try > to run your application with a simple UIMA AS service like RoomNumber > Annotator. You can find the deployment descriptor for it in the > UIMA_HOME/examples/deploy/as.Its called Deploy_RoomNumberAnnotator.xml. > > > > On Tue, Dec 7, 2010 at 4:54 PM, Eddie Epstein <[email protected]> wrote: > >> 2010/12/7 Dietmar Gräbner <[email protected]>: >> > 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. >> >> FWIW, a similar multithreaded client scenario that has been used with >> no problems is to instantiate a single BaseUIMAAsynchronousEngine_impl >> with big enough casPool and have each thread call sendAndReceiveCAS() >> using the common API object. >> >> Eddie >> >
