[ https://issues.apache.org/activemq/browse/SM-883?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
David Potter updated SM-883: ---------------------------- Attachment: SM-883-MBeanRegistration.patch Attached patch in diff format as requested. > 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.0.1, 3.1 > Environment: Windows XP SP1, Ubuntu Linux, Java 1.5 > Reporter: Grant McDonald > Assigned To: Grant McDonald > Fix For: 3.2, incubation > > Attachments: PatchTo3.0.1.zip, PatchToCurrentVersion.zip, > SM-883-MBeanRegistration.patch > > Original Estimate: 2 hours > Remaining Estimate: 2 hours > > 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.