geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rex Wang <>
Subject Re: How to detect status of server instance?
Date Wed, 18 Aug 2010 04:43:25 GMT
2010/8/18 Kevan Miller <>

> On Aug 17, 2010, at 4:45 AM, Delos wrote:
> >
> > For some reasons, we often need to know if there is a running server
> instance. By establishing a connection to a specific port such as 1099,  we
> may get the status of server. However, the method doesn't work if default
> port number is changed, especially in multi-instances scenario. In
> multi-instances scenario, we hope to know if any instance is running.
> I think we'd better do a better job of defining some requirements. I'm not
> sure I understand precisely what you're trying to accomplish. Some off-hand
> thoughts:
> 1) Users want to know when a server is up and running and ready to process
> user requests (at least that's what users have asked me for, in the past).
> So, the fact that a process has been started is probably not sufficient
> 2) I think most users will want information on a specific server, not *any*
> server
> 3) If determining the proper port to be used is a problem (and I think we
> should make this simpler), then the problem applies to any command
> stop-server, wait-for-server, deploy, list-modules, etc.

wait-for-server might be a good way to address the problem, however it is a
gsh command in 2.1.x
Shall we resume the command in deploytool for 3.0?


> >
> > Below is my thoughts about the solution. Any comments or suggestions,
> please feel free to tell me. It will be appreciated if any better solution
> could be provided.
> >
> > Possible solution:
> >
> > We may create flag file for each instance and lock the file with
> FileChannel.lock()  when a server instance is starting up. It will be
> unlocked and deleted when the server is stopped. Unlocking will be
> automatically done when JVM exits; deleting the file can be done in shutdown
> hook in FrameworkLauncher.launch().
> >
> > In this way, if any flag file has been locked, we may deduce that there
> is at least one running server instance; if no locked files found, we may
> think all server instances are stopped. We can put all the flag files in a
> same directory for us to track.
> It's been a while since I looked at similar issues, but I'm not very
> trusting about how much work a Java process can be guaranteed to perform on
> shutdown. Normal shutdown situations work fine. But what happens when the
> JVM catches an abnormal signal and just exits? I'd want to see thorough
> testing of any file locking/file deleting technique (especially if
> appropriate file manipulation was required to start/restart the server).
> --kevan

Lei Wang (Rex)
rwonly AT

View raw message