Discussion of
http://jira.jboss.com/jira/browse/JBAS-5578
Kind of an odd issue as it relates to doing something strange -- deploying a
ServiceMBeanSupport subclass via a beans.xml, and then annotating it as @JMX. The
create/start/stop/destroyService methods don't get invoked.
This comes up because I tend to try to deploy things as MC beans, but for backwards
compatibility reasons things like HASingletonController are still ServiceMBeanSupport
subclasses. So I hit weird issues. I can work around them, so not critical. But want to
bring it up in case it suggests some more fundamental problem.
Anyway, here's what I think is going on:
I think this has to do with ServiceControllerLifecycleCallback. The @JMX annotation means
this class handles starting the service. Leads to this:
ServiceControllerLifecycleCallback.install --> ServiceController.start(ObjectName)
--> ServiceController.doChange(controller, context, ControllerState.INSTALLED,
"start")
does some stuff... and then calls into ServiceMBeanSupport.start() which has this:
| if (serviceName != null && isJBossInternalLifecycleExposed)
| server.invoke(ServiceController.OBJECT_NAME, "start", new Object[]
{ serviceName }, SERVICE_CONTROLLER_SIG);
| else
| jbossInternalStart();
|
The first branch of the if test is taken and that calls
ServiceController.start(ObjectName) again (i.e. a recursive call). That call hits this
and returns:
| // If we are already started (can happen in dependencies) just return
| if (ctx.state == ServiceContext.RUNNING || ctx.state == ServiceContext.FAILED)
| {
| log.debug("Ignoring start request for service: " + ctx.objectName +
" at state " + ctx.getStateString());
| return;
| }
|
Effect of all this is the startService() method never gets invoked.
One possible solution to this is to add a way to configure the bean (a setter) such that
isJBossInternalLifecycleExposed returns false. Avoid the recursive call.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4155445#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...