uima-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jaroslaw Cwiklik <uim...@gmail.com>
Subject Re: CollectionProcessComplete Event thrown with Outstanding CAS Count
Date Wed, 20 Jun 2012 19:32:29 GMT
Yes, I am working on the next release. Cant commit to a specific date yet.

Jerry

On Wed, Jun 20, 2012 at 3:06 PM, Thomas Ginter <thomas.ginter@utah.edu>wrote:

> Thanks Jerry.  BTW  will we be seeing a UIMA-AS 2.4.0 sometime soon?
>
> Thanks,
>
> Thomas Ginter
> 801-448-7676
> thomas.ginter@utah.edu
>
>
>
>
> On Jun 20, 2012, at 1:03 PM, Jaroslaw Cwiklik wrote:
>
> > I've checked the code and indeed this is a bug in uima-as client when
> > running with a CR. As soon as the CR
> > returns false from hasNext() the uima-as client process() method calls
> > collectionProcessComplete().
> > The fix for this is to wait until all outstanding CASes are processed
> > before calling collectionProcessComplete().
> > I will fix the trunk in a day or two.
> >
> > To deal with this problem, you can run the CR outside of uima-as client
> and
> > call either send() or sendAndReceive()
> > methods to process your CASes. Alternatively, if you want to patch 2.3.1,
> > you can modify process() method to:
> >
> > while (initialized && running ) {
> >      try {
> >         if ( (hasNext = collectionReader.hasNext()) == true) {
> >             cas = getCAS();
> >             collectionReader.getNext(cas);
> >             sendCAS(cas);
> >         } else {
> >           break;
> >         }
> >      } catch (Exception e) {
> >        e.printStackTrace();
> >      }
> >    }
> >    Object waitMonitor = new Object();
> >    if (hasNext == false ) {
> >        while( running && clientCache.size() > 0 ) {
> >            try {
> >                 // polling loop waiting for outstanding CASes to come
> back
> > from the service
> >                 synchronized(waitMonitor) {
> >                     waitMonitor.wait(100);
> >                 }
> >            } catch( Exception exx ) { }
> >        }
> >    collectionProcessingComplete();
> >    }
> >
> > Jerry
> >
> > On Thu, Jun 14, 2012 at 9:29 PM, Thomas Ginter <thomas.ginter@utah.edu
> >wrote:
> >
> >> My UIMA-AS 2.3.1 service is returning the CollectionProcessComplete
> event
> >> while there are still CAS objects outstanding.  The client log shows:
> >>
> >> INFO: Client in CollecitonProcessComplete - OutstandingCasCount=2
> >> TotalCasRequestsSentBetweenCpCs=NNNN
> >>
> >> I always seem to end up losing 2 CAS objects becuase the
> >> UimaAsynchronousEngine object stops blocking the process() method when
> the
> >> CollectionProcessComplete event is returned.  My program then called the
> >> stop() method assuming the entire collection is finished processing.
>  This
> >> is a problem because the stop() method appears to be disconnecting from
> the
> >> service before the listener can process the last two CAS objects.
> >>
> >> Is there a setting I am missing to give the client more time to handle
> >> entityProcessComplete events?  What I have found in the documentation so
> >> far refers to input queues for remote delegates only.
> >>
> >> Thanks,
> >>
> >> Thomas Ginter
> >> 801-448-7676
> >> thomas.ginter@utah.edu
> >>
> >>
> >>
> >>
> >>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message