Spico, both of these:

stopProducingCases()
stopProducingCases(String casReferenceId);

were meant to stop remote UIMA-AS CM from producing child CASes.

So the first question is, is your remote service (UIMA-AS pipeline) a CM?
If it is, what is the behavior that you are seeing? A hang?

If the remote service is not a CM, the above APIs will not work ( BUG).

Each UIMA-AS CM service gets a unique queue which is used to receive
notifications from the client. Non CM service does not create this queue
and thus
notifications to discard CASes are never sent. I will create JIRA to track
this bug. It should be possible for the UIMA-AS client to request the
service
to stop processing a CAS no matter if its CM or not.

Jerry C


On Mon, Mar 18, 2013 at 10:42 AM, Spico Florin <spicoflo...@gmail.com>wrote:

> Hello!
>   I have a consumer UIMA AS pipeline, and a CAS producer that is using
> UimaAsynchronousEngine  to send asynchronously CASes to UIMA. The code for
> producing (producer pipeline) the CASes is:
> UimaAsynchronousEngine uimaEEEngine;
>
>         cas = uimaEEEngine.getCAS();
>        if (cas != null) {
>
>         jcas = cas.getJCas();
>         jcas.setDocumentText(msg.get(MSG_ARTICLE_TEXT));
>
>         uimaEEEngine.sendCAS(jcas.getCas());
>       }
>
> Code for stopping the producer:
>       if (uimaEEEngine != null) {
>         uimaEEEngine.stopProducingCases();
>         uimaEEEngine.stop();
>       }
>
> Question:
>  1.When the user stops the producer, is there any possibility for UIMA AS
> pipeline to discard the sent messages from the producer?
>  2. If yes, what code (API) should I use?
>
> I look forward for your answers.
>
> Regards,
>   Florin
>

Reply via email to