Remote fabric fuse container cannot be discovered successfully by JON agent

Solution Verified - Updated -

Environment

  • Red Hat JBoss Fuse
    • 6.0.X
    • 6.1.0
  • Red Hat JBoss Operations Network (JON)
    • 3.1.2
    • 3.2.0

Issue

  • When I installed a remote fabric container and monitor it through JON 3.2.1, the remote container cannot be discovered successfully by JON agent. The error looks like:
JON agent discovers remote Fuse container failed: (org.jbosson.plugins.fuse.FuseServerDiscoveryComponent)- Ignoring resource JBoss Fuse Container 
  • Error in agent.log
 ERROR:
 2014-06-06 08:46:04,732 WARN  [ResourceDiscoveryComponent.invoker.daemon-2] (org.jbosson.plugins.fuse.FabricContainerDiscoveryComponent)- Looking for zookeeper.url in data/cache/**/zookeeper.config
2014-06-06 08:46:04,974 ERROR [ResourceDiscoveryComponent.invoker.daemon-2] (org.jbosson.plugins.fuse.FabricContainerDiscoveryComponent)- Error getting JMX properties from Fabric container: [null], using default connection properties
java.lang.NullPointerException
        at java.lang.String.replace(String.java:2207)
        at org.jbosson.plugins.fuse.FabricContainerDiscoveryComponent.getConfigWithJmxServiceUrl(FabricContainerDiscoveryComponent.java:211)
        at org.jbosson.plugins.fuse.FuseServerDiscoveryComponent.discoverResourceDetails(FuseServerDiscoveryComponent.java:234)
        at org.jbosson.plugins.fuse.FuseServerDiscoveryComponent.discoverResources(FuseServerDiscoveryComponent.java:80)
        at sun.reflect.GeneratedMethodAccessor52.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.rhq.core.pc.util.DiscoveryComponentProxyFactory$ComponentInvocationThread.call(DiscoveryComponentProxyFactory.java:293)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
        at java.lang.Thread.run(Thread.java:662)
  • We have installed JON 3.2 on the server where JBoss Fuse instance is running. Fuse plugin package has been deployed successfully. But JON Agent does not recognise fuse process though both the agent and JBoss fuse JVM runs on the same server under the same Linux user.

Resolution

Diagnostic Steps

  • Red Hat JBoss Fuse 6.0 & Red Hat JBoss Operations Network 3.1.2
    The file name search in the JBoss Fuse plugin matched a part of the name 'fuse' in 'fusefabric' instead of making sure it is a full filename match.
    The relevant information could be found in the agent log in the remote machine:
2013-08-13 14:39:01,019 DEBUG [ResourceDiscoveryComponent.invoker.daemon-1] (org.jbosson.plugins.fuse.JBossFuseContainerDiscoveryComponent)- Found JBoss Fuse Container with container name: tcs03s
2013-08-13 14:39:01,025 WARN [ResourceDiscoveryComponent.invoker.daemon-1] (org.jbosson.plugins.fuse.FuseServerDiscoveryComponent)- Ignoring resource /home/test/fuse/tcs03s/fuse-fabric-7.2.0.redhat-024 JBoss Fuse Container, due to error: Version file system/org/jboss/fuse/jboss-fuse/(6\.[0-9\.\-(redhat)]+) could not be found in /home/test/fuse/tcs03s/fuse-fabric-7.2.0.redhat-024
org.rhq.core.pluginapi.inventory.InvalidPluginConfigurationException: Version file system/org/jboss/fuse/jboss-fuse/(6\.[0-9\.\-(redhat)]+) could not be found in /home/test/fuse/tcs03s/fuse-fabric-7.2.0.redhat-024
at org.jbosson.plugins.fuse.FuseServerDiscoveryComponent.getResourceVersion(FuseServerDiscoveryComponent.java:425)
at org.jbosson.plugins.fuse.JBossFuseContainerDiscoveryComponent.populateResourceProperties(JBossFuseContainerDiscoveryComponent.java:99)
at org.jbosson.plugins.fuse.FuseServerDiscoveryComponent.discoverResources(FuseServerDiscoveryComponent.java:117)
at sun.reflect.GeneratedMethodAccessor33.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.rhq.core.pc.util.DiscoveryComponentProxyFactory$ComponentInvocationThread.call(DiscoveryComponentProxyFactory.java:293)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:679)
2013-08-13 14:39:01,026 DEBUG [InventoryManager.discovery-1] (rhq.core.pc.inventory.InventoryManager)- Discovery for [JBoss Fuse Container] resources completed in [16] ms
  • Red Hat JBoss Fuse 6.1 & Red Hat JBoss Operations Network 3.2
    After enabled debug mode for the jon agent, the relevant information could be found in the agent log in the remote machine:
2014-05-08 16:16:08,800 DEBUG [main] (rhq.core.pc.util.DiscoveryComponentProxyFactory)- Call to [org.jbosson.plugins.fuse.JBossFuseContainerDiscoveryComponent.getAdditionalClasspathUrls()] with args [[org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext@2ed26127, key=JBoss Fuse Container{/u00/tcs/6.1-amq/pdc-01s-amq/fabric8-karaf-1.0.0.redhat-379},name=JBoss Fuse Container [pdc-01s-amq]{/u00/tcs/6.1-amq/pdc-01s-amq/fabric8-karaf-1.0.0.redhat-379} JBoss Fuse Container [pdc-01s-amq],type=JBoss Fuse Container,version=1.0.0.redhat-379,description=JBoss Fuse Container Process, monitored via Sun JVM Attach API]] failed.
java.util.concurrent.ExecutionException: java.lang.Exception: Discovery component invocation failed.
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:202)
        at org.rhq.core.pc.util.DiscoveryComponentProxyFactory$ResourceDiscoveryComponentInvocationHandler.invokeInNewThread(DiscoveryComponentProxyFactory.java:231)
        at org.rhq.core.pc.util.DiscoveryComponentProxyFactory$ResourceDiscoveryComponentInvocationHandler.invoke(DiscoveryComponentProxyFactory.java:218)
        at com.sun.proxy.$Proxy43.getAdditionalClasspathUrls(Unknown Source)
        at org.rhq.core.pc.inventory.InventoryManager.invokeDiscoveryComponentClassLoaderFacet(InventoryManager.java:517)
        at org.rhq.core.pc.plugin.PluginComponentFactory.askDiscoveryComponentForAdditionalClasspathUrls(PluginComponentFactory.java:260)
        at org.rhq.core.pc.plugin.PluginComponentFactory.getResourceClassloader(PluginComponentFactory.java:219)
        at org.rhq.core.pc.inventory.InventoryManager.getResourceClassLoader(InventoryManager.java:1716)
        at org.rhq.core.pc.inventory.InventoryManager.initResourceContainer(InventoryManager.java:1705)
        at org.rhq.core.pc.inventory.InventoryManager.mergeResource(InventoryManager.java:3250)
        at org.rhq.core.pc.inventory.InventoryManager.mergeModifiedResources(InventoryManager.java:2964)
        at org.rhq.core.pc.inventory.InventoryManager.synchInventory(InventoryManager.java:1252)
        at org.rhq.core.pc.inventory.InventoryManager.synchInventory(InventoryManager.java:1211)
        at org.rhq.core.pc.inventory.InventoryManager.handleReport(InventoryManager.java:1193)
        at org.rhq.core.pc.inventory.InventoryManager.activateAndUpgradeResources(InventoryManager.java:3395)
        at org.rhq.core.pc.inventory.InventoryManager.initialize(InventoryManager.java:256)
        at org.rhq.core.pc.PluginContainer.startContainerService(PluginContainer.java:513)
        at org.rhq.core.pc.PluginContainer.initialize(PluginContainer.java:327)
        at org.rhq.enterprise.agent.AgentMain.startPluginContainer(AgentMain.java:1959)
        at org.rhq.enterprise.agent.AgentMain.start(AgentMain.java:688)
        at org.rhq.enterprise.agent.AgentMain.main(AgentMain.java:429)
Caused by: java.lang.Exception: Discovery component invocation failed.
        at org.rhq.core.pc.util.DiscoveryComponentProxyFactory$ComponentInvocationThread.call(DiscoveryComponentProxyFactory.java:309)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:744)
Caused by: org.rhq.core.pluginapi.inventory.InvalidPluginConfigurationException: Missing Google Guava library guava-14*.jar in /u00/tcs/6.1-amq/pdc-01s-amq/fabric8-karaf-1.0.0.redhat-379/system
        at org.jbosson.plugins.fuse.JBossFuseContainerDiscoveryComponent.getAdditionalClasspathUrls(JBossFuseContainerDiscoveryComponent.java:497)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.rhq.core.pc.util.DiscoveryComponentProxyFactory$ComponentInvocationThread.call(DiscoveryComponentProxyFactory.java:305)
        ... 4 more

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.