MBean registration in Websphere returns different objectName
------------------------------------------------------------
Key: SM-883
URL: https://issues.apache.org/activemq/browse/SM-883
Project: ServiceMix
Issue Type: Improvement
Components: servicemix-core
Affects Versions: 3.1, 3.0.1
Environment: Windows XP SP1, Ubuntu Linux, Java 1.5
Reporter: Grant McDonald
Assigned To: Grant McDonald
Fix For: 3.2, incubation
Description courtesy of David Potter:
When running serviceMix V3.0 on WebSphere 6.1.0.0 I get the following error
after stopping and starting serviceMix from the WebSphere console.
ERROR - ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'jbi' defined in ServletContext resource
[/WEB-INF/servicemix.xml]: Invocation of init method failed;
nested exception is
javax.jbi.JBIException: javax.management.InstanceAlreadyExistsException:
org.apache.servicemix:Name=ManagementContext,cell=SD1464Node01Cell,Type=SystemService,ContainerName=ServiceMix,node=SD1464Node01,process=server1
I have traced the error to the fact that when you register an mbean IBM adds
additional information to the bean. So when serviceMix regesters the bean
org.apache.servicemix:Name=ManagementContext,Type=SystemService,ContainerName=ServiceMix
IBM, in the method
com.ibm.ws.management.PlatformMBeanServer.registerMBean(PlatformMBeanServer.java:469)
, adds the attributes cell=SD1464Node01Cell,
node=SD1464Node01,process=server1
These means that when we try to unregister the bean on application shutdown
we cannot find it (as we look the been up by name).
Solution Ideas:
1) In AsyncBaseLifeCycle.doInit() use queryNames() instead of isRegistered().
Care would need to be taken in unregistering the bean is case the bean is
not ours.
2) After a bean is registered, update its name (or the complete bean) with the
name of the bean returned by the register operation. (this is preferred)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.