Marshal, Thanks for the info. I'll look into this as we enter phase 2 of our work. Maybe in combination with a look at UIMA-AS option for distributed scale-up.- Charles
> Date: Thu, 8 May 2008 16:06:59 -0400> From: [EMAIL PROTECTED]> To: > [email protected]> Subject: Re: Shutdown Vinci Server & Child > AE> > Hi Charles,> > First, you can find the source code for all vinci things > in the Apache > UIMA project - both in individual source releases, and in the > SVN > itself. There are links on the incubator.apache.org/uima home page on > > the left to the source.> > There are two parts to Vinci. One part is the > stand-alone vinci > name-server. The part you are talking about is the vinci > service > wrapper - that is used to wrap a UIMA annotator and make it into a > Vinci > service.> > The code for this wrapper is in uimaj-adapter-vinci > project in the SVN.> > In there, you will find in class > VinciAnalysisEngineService_impl, a > method, "eval". It's javadoc says:> /**> > * Main method called by the Vinci Service Layer. All requests coming > in > from clients go through> * this method. Each request comes in as a VinciFrame > and is expected > to contain a valid> * VINCI:COMMAND. Currently, two such > operations are supported: 1) > Annotate - triggers document> * analysis 2) > GetData - triggers return of the AE meta data ( descriptor)> *> * @param > [EMAIL PROTECTED] org.apache.vinci.transport.Transportable} -> * a VinciFrame > containing client request> * @return [EMAIL PROTECTED] > org.apache.vinci.transport.Transportable} - a > VinciFrame containg result > of> * performing the service> */> > If you look at the implementation code > itself, you will see that, in > addition to what the javadoc says, it looks > for a> "Shutdown" command, and if received, terminates the JVM:> > . . .> > else if (Constants.SHUTDOWN.equals(op)) {> stop();> System.exit(1);> > There > is code to send this command in the Vinci Proxy at the client. > When the > Collection Processing Complete method is called in the > framework, it > actually calls the VinciTAP class's method to shutdown. > However, it > currently passes a flag to bypass the sending of the > shutdown message for > external remote services, on the presumption that > these services might be > in use by other clients.> > You might want to have a short method that you > write that does something > like this:> > 1) from your CPE, get a list of the > Cas Processors> 2) For each Cas Processor, see if it is of the Vinci TAP kind > (this > means it is implemented as a proxy to a remote vinci service, using > the > class VinciTAP).> 3) for all those, call its shutdown method, passing > *true* as the first > argument. The second argument appears to allow sending > a collection > processing complete message to the service, or not.> > For > example, once you have a valid reference to a cas processor, you > could > write:> > // warning: untested code - but you get the idea :-)> > if ( > casProcessor instanceof NetworkCasProcessorImpl ) {> VinciTAP > vinciTextAnalysisProxy => ((NetworkCasProcessorImpl > )casProcessor).getProxy();> vinciTextAnalysisProxy.shutdown(true, > true-or-false); > // second argument controls sending> // collection > processing complete or not> }> > -Marshall> > > Charles Proefrock wrote:> > > Still no luck finding anything useful on the web to address this question. > The only hits I get are for a May 2001 paper on Vinci.> > > > Any help would > be appreciated (especially regarding VinciServer.shutdown() ... or where to > find the javadocs or source so I can look into it myself ...)> > > > Thanks,> > > > > Charles> >> >> >> > > >> From: [EMAIL PROTECTED]> To: > [email protected]> Subject: Shutdown Vinci Server & Child AE> > Date: Wed, 12 Mar 2008 17:15:19 -0400> > When I run an example UIMA Vinci > Server I can use Ctrl-C to terminate the running process. When I use Ctrl-C > the stdout indicates that VinciServer.shutdown() is called. Two questions:> > > (1) Is there a graceful/programatic way to signal the shutdown of a [remote] > Vinci Server?> (2) When VinciServer.shutdown() is called, does it call a > method on the child AE (such as destroy() ) to gracefully perform cleanup > operations? (Similar to the call to destroy() when run integrated in a CPM)> > > Thanks,> > Charles> > _________________________________________________________________> Shed those > extra pounds with MSN and The Biggest Loser!> http://biggestloser.msn.com/> > >> > > _________________________________________________________________> > > In a rush? Get real-time answers with Windows Live Messenger.> > > http://www.windowslive.com/messenger/overview.html?ocid=TXT_TAGLM_WL_Refresh_realtime_042008> > > > _________________________________________________________________ Make Windows Vista more reliable and secure with Windows Vista Service Pack 1. http://www.windowsvista.com/SP1?WT.mc_id=hotmailvistasp1banner
