Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
After broker restart the top level UIMA-AS service Cas Multiplier does not recover completely. The jms listener on an input queue recovers fine, but a listener on a temp queue processing FreeCas requests does not.
The temp queue is created on a service startup. When a broker is bounced, this temp queue is no longer valid as it was created using an old broker connection. The listener on this temp queue just keeps logging rapidly filling a log. All outgoing child CASes contain a stale replyTo queue and such CASes are never freed by the service leading to an empty Cas Pool eventually.
There is no auto recovery of temp queues. A listener on a temp queue must be shutdown and instantiated again.
When a lost connection is detected, the service must:
1) invalidate its listener on a temp queue (FreeCas queue)
2) all unacknowledged child CASes that have been dispatched to a client must be automatically released.
3) a new temp queue should be created along with a listener for it.
When UIMA-AS client is unable to send FreeCas requests to a service due to a stale queue, it should log a message with a CAS Id and complete processing the CAS.