On Sep 3, 2006, at 7:53 PM, Jason Dillon wrote:

Okay, I was able to get something working... though I had to use classes from geronimo-kernel... not sure how to perform the same operations with just JMX interfaces.

If anyone knows, please speak up... it would be nice to not need to use kernel classes to check a few boolean attributes on remote beans.

I still think we might want to expose fullyStarted on the kernel directly, and configure it so that its exposed as a MBean attribute, so that AbstractName and AbstractNameQuery are not needed.

IMO this would be a perversion of the geronimo architecture. What does "fully started" mean anyway? If you start with say geronimo- jetty-minimal and add cars to turn it into a full j2ee server while it is running, when exactly is it started? It certainly has nothing to do with the kernel.

When we thought about this last the best idea we could come up with is that it's "fully started" when all the modules listed in persistent configuration lists (should be persistent module lists) that are in the bootstrap or included recursively in those modules are started. Think about what happens if a module in the original PCL includes another PCL.

There used to be something to detect and wait for this in the m1 geronimo deployment plugin

thanks
david jencks


 * * *

Anyways, what I have now works well... and now geronimo:start can tell when the minimal servers are started :-)

Thanks for the hint about PersistentConfigurationList.

--jason


On Sep 3, 2006, at 6:00 AM, Aaron Mulder wrote:

I think if you get the AbstractName for the LocalAttributeManager in a
test program, there's a method on the AbstractName to get or generate
an ObjectName, and then you could use that ObjectName to access the
LocalAttributeManager (and therefore the kernelFullyStarted attribute)
via JMX.  I'm not sure that will work, but it's where I would start.
If that doesn't work, you could try invoking the
getAttribute(abstractName, attributeName) operation on the Kernel via
JMX (so you'd access the Kernel via JMX, but call an operation on it
to access the LocalAttributeManager).

FWIW, I think Daemon just loops over a Set to be fully generic -- I'm
pretty sure that in practice, the LocalAttributeManager is the one and
only PersistentConfigurationList in the server.

Thanks,
    Aaron

On 9/3/06, Jason Dillon <[EMAIL PROTECTED]> wrote:
Any idea how to actually do that?

--jason


On Sep 3, 2006, at 5:34 AM, Aaron Mulder wrote:

> I think kernelFullyStarted is a GBean attribute on only certain types > of GBeans -- I believe PersistentConfigurationList GBeans. It's set
> by Daemon.java when the startup process is complete, so it's not a
> kernel-level feature, but should still work for all practical
> purposes. I would think you'd be able to get the property from the
> LocalAttributeManager via JMX.
>
> Thanks,
>     Aaron
>
> On 9/1/06, Jason Dillon <[EMAIL PROTECTED]> wrote:
>> What is the best way to detect when the server has started using JMX?
>>
>> The ServerBehavior class in the deployment plugin has some code that
>> connects to JMX, then lists the configurations, and then takes he
>> first configuration and get the "kernelFulltStarted" attribute from >> it... but it assumes that ConfigurationManager.listConfigurations()
>> returns an array of ObjectNames, which it does not.
>>
>> I also peeked at the server's JMX tree via jconsole and I don't see >> any attribute or operation that matches up to "kernelFullyStarted". >> There is also a strange "null" element of the tree, but I will leave
>> that for another day.
>>
>> So, how can I easily check of the server has started by polling a JMX
>> attribute?
>>
>> --jason
>>




Reply via email to