You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@uima.apache.org by Spico Florin <sp...@gmail.com> on 2013/03/18 15:42:36 UTC
Discard already sent asynchronously CASes to UIMA AS pipeline
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
Re: Discard already sent asynchronously CASes to UIMA AS pipeline
Posted by Spico Florin <sp...@gmail.com>.
Hello!
Thank you for the response. My remote service has an
AgrregateAnalyssEngine that handles (remote and also co-located) NON CAS
Multiplier AnalysisEngine.
Thanks you very much and I look forward for fix.
Regards,
Florin
On Mon, Mar 18, 2013 at 6:11 PM, Jaroslaw Cwiklik <ui...@gmail.com> wrote:
> 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 <spicoflorin@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
> >
>
Re: Discard already sent asynchronously CASes to UIMA AS pipeline
Posted by Jaroslaw Cwiklik <ui...@gmail.com>.
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 <sp...@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
>