Jeff, There's probably no immediate recourse for making the server behave the way you want it to in-process.
But, there are some utilities that we use in tests that make it pretty easy to control a server externally. Take a look at com.tc.objectserver.control.ExtraProcessServerControl (it's in trunk/ code/base/simulator). If you don't like the ServerControl abstraction, you can use the more general purpose tool com.tc.process.LinkedJavaProcess (it's in trunk/ code/base/common/src). Actually, as I write this, I think this is the better option. It actually ships in tc.jar, so you can compile against it. The way it works is that a spawned java process has a ping back to the parent java process and, if that parent goes away, it will kill itself. --Orion On Sep 4, 2007, at 2:17 PM, Jeff Genender wrote: > > > Tim Eck wrote: >> That JIRA is really talking about shutdown from the client (L1) >> side (as >> opposed to the terracotta server (L2) side). >> >> How does TCStop help? It's still going to end up calling >> System.exit() as >> far as I can tell -- and doesn't really jive with an embedded L2 >> server. >> > > Currently I am calling the TCServer.stop() because TCStop is calling > system.exit() - and we can't have that ;-) > > The stop() shuts down everything, but the dsoServer is still > hanging and > listening on 9510. I even wrote my own TCGeronimoServerImpl which > essentially is the same as TCServer, but I can control the the > dsoServer.stop() and quickStop() calls. Those still leave 9510 > hanging, > so it appears its something deeper. > >> Graceful shutdown of the TC server has been known to be busted for >> quite >> awhile. Seems like a good opportunity to clean that up? >> > > +1 > > Jeff > > > >> >> >>> -----Original Message----- >>> From: [EMAIL PROTECTED] [mailto:tc-dev- >>> [EMAIL PROTECTED] On Behalf Of Fiona O'Shea >>> Sent: Tuesday, September 04, 2007 12:42 PM >>> To: Gary Keim >>> Cc: [email protected] >>> Subject: Re: [tc-dev] Embedding Terracotta (Geronimo plugin) >>> >>> FYI >>> Updated: https://jira.terracotta.org/jira/browse/CDV-406 to track >> progress >>> of this issue. >>> Fiona >>> ----- Original Message ----- >>> From: "Gary Keim" <[EMAIL PROTECTED]> >>> To: [email protected] >>> Sent: Tuesday, September 4, 2007 12:17:55 PM (GMT-0800) >>> America/Los_Angeles >>> Subject: Re: [tc-dev] Embedding Terracotta (Geronimo plugin) >>> >>> Jeff, >>> >>> There are problems with graceful shutdown: >>> https://jira.terracotta.org/jira/browse/DEV-406 >>> >>> So, in DistributedObjectServer.stop you'll see that really, it won't >> stop. >>> For now, I think System.exec/TCStop is the way to go if you need >>> full >>> control. >>> >>> Gary >>> >>> ----- Original Message ----- >>> From: "Jeff Genender" <[EMAIL PROTECTED]> >>> To: <[email protected]> >>> Sent: Tuesday, September 04, 2007 10:59 AM >>> Subject: Re: [tc-dev] Embedding Terracotta (Geronimo plugin) >>> >>> >>>> Anyone have an idea? >>>> >>>> Jeff >>>> >>>> Jeff Genender wrote: >>>>> ok...I may be getting my ports mixed up...looks like its 9510 >>>>> that is >>>>> not shut down...and it is indeed the DSOServer. >>>>> >>>>> Thanks, >>>>> >>>>> >>>>> Jeff >>>>> >>>>> >>>>> Jeff Genender wrote: >>>>>> Ok...if I am not mistaken (and I may very well be)...I need the >>> ability >>>>>> to shut down the dsoServer from the TCServerImpl. I think >>>>>> this may >>> give >>>>>> me what I want... >>>>>> >>>>>> Anyone game to make this change? (Am I right in my assumption?) >>>>>> >>>>>> Thanks, >>>>>> >>>>>> Jeff >>>>>> >>>>>> Jeff Genender wrote: >>>>>>> Hi folks, >>>>>>> >>>>>>> I have made tremendous progress on the Terracotta server >>>>>>> plugin for >>>>>>> Geronimo. It installs from a repository and I can start the >>>>>>> server >>>>>>> just >>>>>>> fine within Geronimo. >>>>>>> >>>>>>> But the problem I am having now is the stop. I am unable to use >> the >>>>>>> TCStop because it does a full shutdown which ultimately ends >>>>>>> with a >>>>>>> System.exit(), which certainly is not good for embedded >>>>>>> implementations, >>>>>>> since it shuts down Geronimo too :-( >>>>>>> >>>>>>> Therefore I went to save the server object when I created it >>>>>>> and I >>> just >>>>>>> called stop() when I want to shut down the TCServer. This >>> effectively >>>>>>> stops the server on 9510, but it leaves the 9520 (JMXServer) >>>>>>> server >>>>>>> running. But I need to shut that down too. Basically, I >>>>>>> want to >> do >>>>>>> the >>>>>>> equivalent of a shutdown() without the System.exit(). >>>>>>> >>>>>>> Ideas on how to do this? >>>>>>> >>>>>>> Thanks, >>>>>>> >>>>>>> Jeff >>>>>>> _______________________________________________ >>>>>>> tc-dev mailing list >>>>>>> [email protected] >>>>>>> http://lists.terracotta.org/mailman/listinfo/tc-dev >>>>>> _______________________________________________ >>>>>> tc-dev mailing list >>>>>> [email protected] >>>>>> http://lists.terracotta.org/mailman/listinfo/tc-dev >>>>> _______________________________________________ >>>>> tc-dev mailing list >>>>> [email protected] >>>>> http://lists.terracotta.org/mailman/listinfo/tc-dev >>>> _______________________________________________ >>>> tc-dev mailing list >>>> [email protected] >>>> http://lists.terracotta.org/mailman/listinfo/tc-dev >>>> >>> _______________________________________________ >>> tc-dev mailing list >>> [email protected] >>> http://lists.terracotta.org/mailman/listinfo/tc-dev >>> >>> _______________________________________________ >>> tc-dev mailing list >>> [email protected] >>> http://lists.terracotta.org/mailman/listinfo/tc-dev >> >> _______________________________________________ >> tc-dev mailing list >> [email protected] >> http://lists.terracotta.org/mailman/listinfo/tc-dev > _______________________________________________ > tc-dev mailing list > [email protected] > http://lists.terracotta.org/mailman/listinfo/tc-dev _______________________________________________ tc-dev mailing list [email protected] http://lists.terracotta.org/mailman/listinfo/tc-dev
