Remote fabric fuse container cannot be discovered successfully by JON agent
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
-
Red Hat JBoss Fuse 6.0 & Red Hat JBoss Operations Network 3.1.2
Opened one defect to Fuse JIRA: Remote fabric container cannot be discovered successfully by JON agent
This issue has been fixed in the Fuse plugin for JON 3.2 which also works in JON 3.1.2 -
Red Hat JBoss Fuse 6.0 & Red Hat JBoss Operations Network 3.2
There is no issue. -
Red Hat JBoss Fuse 6.1 & Red Hat JBoss Operations Network 3.2
Currently we recommend to use Red Hat JBoss ON 3.2.0 Plugin Pack Update-01 for Red Hat JBoss Fuse 6.0 and 6.1 and JON 3.2 to monitor the Fuse server.
The fix for BZ-1090876 Fuse JON plugin pack build request for Fuse version 7.3.1.redhat - Fix Guava dependency version mismatch is included in the Red Hat JBoss ON 3.2.0 Plugin Pack Update-01.
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.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
