Orion Letizi wrote:
> Jeff,
> 
> There's probably no immediate recourse for    making the server behave  
> the way you want it to in-process.

Well...we can agree to disagree on this ;-)

Geronimo must have full control over the server lifecycle to run the
server as a plugin.  Doing it out-of-process is going to be difficult at
best, is kludgey, and is going to cause a lot more code to monitor the
status of the server, as well as create a host of other problems.  I am
not currently willing to integrate the server component as a plugin
without a clean start/stop.

IMHO exiting the JVM because TC currently does not shut down in a clean
manner is just a heavy handed treatment to a problem that I believe is
going to have to be dealt with in the future.


> 
> 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.
> 

I tried using the LinkedJavaProcess and although it worked to certain
extent, I would have to write a significant amount of status checking
code.  It's simply not worth the trouble.

If we can't get this embeddable at this stage, I am willing to abandon
the server plugin and concentrate solely on the client side integration.
 We can let people start/stop Terracotta from the binary download.  Its
kind of too bad because its cool to see how the TC server starts from a
plugin...if only we could stop it ;-)

Thanks for letting me know the status.

Jeff




> --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
_______________________________________________
tc-dev mailing list
[email protected]
http://lists.terracotta.org/mailman/listinfo/tc-dev

Reply via email to