[ 
https://issues.apache.org/jira/browse/UIMA-1127?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry Cwiklik updated UIMA-1127:
--------------------------------

    Attachment: uimaj-as-jms-UIMA-1127-patch.txt
                uimaj-as-core-UIMA-1127-patch.txt
                uimaj-as-activemq-UIMA-1127-patch.txt

When a UIMA-AS client gets a timeout while waiting for a process reply, it 
marks the internal state of a service as TimedOut. The client will send a 
GetMeta request to the service as a sort of a PING to check if the service is 
available. While the client is awaiting a reply from the PING any CASes that 
are destined for this service will be delayed and placed on a list of CASes 
pending dispatch. When the service replies to the PING, its state is reset to 
normal and  all pending CASes are immediately dispatched. When the PING times 
out its an indication that the service is no longer available. The client API 
will stop sending CASes. In case of Aggregate client, the PING timeout is 
subject to the same error handling as the GetMeta timeout. If the delegate is 
to be disabled on getMeta timeout, all CASes that were delayed and all CASes 
that are outstanding (waiting for a reply) will be sent through an Error 
Handler with explicit TimeoutException. 

> Services that timeout should be handled differently on subsequent requests
> --------------------------------------------------------------------------
>
>                 Key: UIMA-1127
>                 URL: https://issues.apache.org/jira/browse/UIMA-1127
>             Project: UIMA
>          Issue Type: Improvement
>          Components: Async Scaleout
>    Affects Versions: 2.2.2
>            Reporter: Eddie Epstein
>            Assignee: Jerry Cwiklik
>         Attachments: uimaj-as-activemq-UIMA-1127-patch.txt, 
> uimaj-as-core-UIMA-1127-patch.txt, uimaj-as-jms-UIMA-1127-patch.txt
>
>
> When a request times out, the service should be put into a "questionable" 
> state. Requests to a service in questionable state will then use a different 
> logic: first send a getMeta request with a short timeout; if the getMeta 
> succeeds, the questionable state is removed and the normal request is sent; 
> if getMeta fails, an error is returned for the request with the state 
> unchanged.
> This logic should be used for both API and aggregate clients.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to