[jboss-dev-forums] [Design of POJO Server] - ServiceController unregistering
adrian@jboss.org
do-not-reply at jboss.com
Thu Aug 30 08:55:50 EDT 2007
I was seeing the following warning in jboss-head
| 14:25:15,021 WARN [AbstractKernelController] Error uninstalling from Instantiated: name=jboss.system:service=ServiceController state=Instantiated
| java.lang.IllegalArgumentException: Null MBeanServer
| at org.jboss.system.ServiceCreator.uninstall(ServiceCreator.java:303)
| at org.jboss.system.microcontainer.OnlyUnregisterAction.uninstallAction(OnlyUnregisterAction.java:45)
| at org.jboss.system.microcontainer.ServiceControllerContextAction.uninstall(ServiceControllerContextAction.java:90)
| at org.jboss.dependency.plugins.AbstractControllerContextActions.uninstall(AbstractControllerContextActions.java:58)
| at org.jboss.dependency.plugins.AbstractControllerContext.uninstall(AbstractControllerContext.java:311)
| at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:1320)
| at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1009)
| at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:936)
| at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:463)
| at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:426)
| at org.jboss.dependency.plugins.AbstractController.shutdown(AbstractController.java:168)
| at org.jboss.bootstrap.microcontainer.ServerImpl.doShutdown(ServerImpl.java:162)
| at org.jboss.bootstrap.AbstractServerImpl.shutdownServer(AbstractServerImpl.java:497)
| at org.jboss.bootstrap.AbstractServerImpl$ShutdownHook.run(AbstractServerImpl.java:778)
|
This was due to the JMXKernel unregistering the ServiceController
from the MBeanServer and then only later does the new MC shutdown
spot that it was still registered with it.
It tries to uninstall but gets an error because the ServiceController
has lost its reference to the MBeanServer in the previous JMX uninstall.
I've fixed the problem such that the ServiceController removes itself
from both by doing an MC.uninstall() of itself during its shutdown.
But this isn't a very clean solution.
The (un)registrations are not symmetric.
The fundamental problem comes from the self bootstrap where
the ServiceController registers with itself and therefore it
doesn't follow the usual pattern.
Maybe there is a cleaner way to do this?
In fact, the only reason the self bootstrap exists was to be able to
place a dependency on the service controller.
If the ServiceController were just a POJO with the @JMX
annotation then we should have the required behaviour
in jboss-head using the cross injection of POJOs into MBeans?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4079594#4079594
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4079594
More information about the jboss-dev-forums
mailing list