Hello,

I have a uima pipeline that uses uima-as 2.3.1 which has one aggregator with 
one local annotator, one remote consumer and one remote annotator. It actually 
has more components but I will get into exactly the configuration only if 
needed.
I have developed also a UIMA client for it using class: UimaAsynchronousEngine, 
method sendCas (async as far I understood) and a callback listener that waits 
for the processing to complete.

1. I have noticed that the CAS returned, in general is quite big. Is it a way 
to send, at least to the client, a CAS that does not contain all the types that 
the various annotators added? When could I remove those things from the CAS?
2. I send a text message for processing which has 48 KB - it gets processed 
successfully by the pipeline, but the pipeline fails to send a reply to the 
client. The exception that I get is:

01/21/2014 07:36:02.978 [ActiveMQ Transport:
tcp://localhost/127.0.0.1:61616] [DEBUG] org.apache.activemq.ActiveMQConnection
- Async exception with no exception listener: java.io.IOException: Frame size
of 147 MB larger than max allowed 100 MB
java.io.IOException: Frame size of 147 MB larger than max
allowed 100 MB
                at
org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:277)
~[activemq-core-5.6.0.jar:5.6.0]
                at
org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:229)
~[activemq-core-5.6.0.jar:5.6.0]
                at
org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:221)
~[activemq-core-5.6.0.jar:5.6.0]
                at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:204)
~[activemq-core-5.6.0.jar:5.6.0]
                at
java.lang.Thread.run(Thread.java:662) [na:1.6.0_30]
01/21/2014 07:36:03.093 [ActiveMQ Connection Executor:
tcp://localhost/127.0.0.1:61616] [DEBUG]
org.apache.activemq.transport.tcp.TcpTransport - Stopping transport
tcp://localhost/127.0.0.1:61616

As far as I understood, the client connects via JMS to the uima pipeline and a 
temporary reply queue gets created where the reply from the pipeline should be 
sent and then consumed by the client. After the above exception is thrown, the 
connection to the pipeline gets closed and automatically the temp queue gets 
deleted hence the client does not receive anymore the reply.

I am wondering why the error I was mentioning is not thrown while the 
aggregator sends the CAS to the consumer, because the consumer is remote, hence 
the communication between them is done through JMS queue as well, and I think 
the aggregator has a reply queue as well for the consumer...

I want to mention that I tried to increase the maxFrameSize on AMQ broker but 
without success. It seems to be a bug in AMQ 5.6 that uima as 2.3.1 is using.

Any feedback is appreciated.

Thank you,
Mihaela

Reply via email to