You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Gert Vanthienen (JIRA)" <ji...@apache.org> on 2010/11/19 21:33:24 UTC
[jira] Commented: (SM-2012) JBI Cannot Register MBeans through NMR
ManagementAgent
[ https://issues.apache.org/activemq/browse/SM-2012?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=63418#action_63418 ]
Gert Vanthienen commented on SM-2012:
-------------------------------------
Kurt,
I think this might already be fixed in the latest SNAPSHOT version - cfr. http://svn.apache.org/viewvc?view=revision&revision=1021877
Regards,
Gert
> JBI Cannot Register MBeans through NMR ManagementAgent
> ------------------------------------------------------
>
> Key: SM-2012
> URL: https://issues.apache.org/activemq/browse/SM-2012
> Project: ServiceMix
> Issue Type: Bug
> Components: servicemix-jbi
> Environment: Fuse 4.3
> Reporter: Kurt Westerfeld
>
> We are trying to use the Apache ODE MBeans which are registered through the JBI SMX infrastructure. The border between ODE and SMX/JBI occurs through org.apache.servicemix.jbi.runtime.impl.MBeanServerWrapper.
> This class passes along a bean and objectname, which is supposed to register the mbean. Instead, it silently fails to do so. Our application needs to access the PMAPI ODE APIs, which are published through JMX (as well as a JBI endpoint, but that's another story involving java.lang.LinkageError: loader constraint violation internal to ODE--which seems the harder of the two problems to solve).
> In stepping through the sources in the debugger, the culprit seems to be the getTypeSpecificManagedObject() method within nmr's org.apache.servicemix.nmr.management.ManagementAgent, which seems to be the delegation target for all JBI MBean registrations.
> The issue is, the object passed into "manageNamedObject()", which passes object and object name, and subsequently gets filtered out through the call to getTypeSpecificManagedObject, which returns null.
> This same code (ie. Apache ODE) manages to register the mbean just fine on smx 3, and we have APIs that depend on this API being available over the NMR or JMX.
> Why does this method return null if there's no impl of ManagedEndpoint/Nameable, and is the only endpoint for MBean registration?
> protected Object getTypeSpecificManagedObject(Object object) throws NotCompliantMBeanException {
> return object instanceof ManagedEndpoint
> ? object
> : object instanceof Nameable
> ? new StandardMBean(object, ((Nameable)object).getPrimaryInterface())
> : null;
> }
> It seems like the the JBI-->JMX bridge is completely broken. The context supplied by JBI CompentContext.getMBeanServer() will not register MBeans on smx4. It just so happens that Apache ODE depends on ComponentContext being the source for its MBeanServer.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
Re: [jira] Commented: (SM-2012) JBI Cannot Register MBeans
through NMR ManagementAgent
Posted by Kurt Westerfeld <kw...@novell.com>.
Thanks....looks that way!
>>> "Gert Vanthienen (JIRA)" <ji...@apache.org> 11/19/2010 3:33 PM >>>
[ https://issues.apache.org/activemq/browse/SM-2012?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=63418#action_63418 ]
Gert Vanthienen commented on SM-2012:
-------------------------------------
Kurt,
I think this might already be fixed in the latest SNAPSHOT version - cfr. http://svn.apache.org/viewvc?view=revision&revision=1021877
Regards,
Gert
> JBI Cannot Register MBeans through NMR ManagementAgent
> ------------------------------------------------------
>
> Key: SM-2012
> URL: https://issues.apache.org/activemq/browse/SM-2012
> Project: ServiceMix
> Issue Type: Bug
> Components: servicemix-jbi
> Environment: Fuse 4.3
> Reporter: Kurt Westerfeld
>
> We are trying to use the Apache ODE MBeans which are registered through the JBI SMX infrastructure. The border between ODE and SMX/JBI occurs through org.apache.servicemix.jbi.runtime.impl.MBeanServerWrapper.
> This class passes along a bean and objectname, which is supposed to register the mbean. Instead, it silently fails to do so. Our application needs to access the PMAPI ODE APIs, which are published through JMX (as well as a JBI endpoint, but that's another story involving java.lang.LinkageError: loader constraint violation internal to ODE--which seems the harder of the two problems to solve).
> In stepping through the sources in the debugger, the culprit seems to be the getTypeSpecificManagedObject() method within nmr's org.apache.servicemix.nmr.management.ManagementAgent, which seems to be the delegation target for all JBI MBean registrations.
> The issue is, the object passed into "manageNamedObject()", which passes object and object name, and subsequently gets filtered out through the call to getTypeSpecificManagedObject, which returns null.
> This same code (ie. Apache ODE) manages to register the mbean just fine on smx 3, and we have APIs that depend on this API being available over the NMR or JMX.
> Why does this method return null if there's no impl of ManagedEndpoint/Nameable, and is the only endpoint for MBean registration?
> protected Object getTypeSpecificManagedObject(Object object) throws NotCompliantMBeanException {
> return object instanceof ManagedEndpoint
> ? object
> : object instanceof Nameable
> ? new StandardMBean(object, ((Nameable)object).getPrimaryInterface())
> : null;
> }
> It seems like the the JBI-->JMX bridge is completely broken. The context supplied by JBI CompentContext.getMBeanServer() will not register MBeans on smx4. It just so happens that Apache ODE depends on ComponentContext being the source for its MBeanServer.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.