JMX in Jboss 7.x / jboss eap 6.x

Document ID : KB000056711
Last Modified Date : 14/02/2018
Show Technical Document Details

You notice that the agent is unable to identify newly added MBeans to the MbeanServer. This issue is related to bug in JBOSS Appserver, CA technologies has already reported the issue to Redhat. In the meantime, we have made a code change in the CA Agent side to be able to handle this scenario : Enhancement#274850

Now, instead of relying on Notification Listeners to identify new Mbeans, we poll for all Mbeans in all Mbean Servers (just like how JConsole does), by enabling a new property: com.wily.introcope.agent.jmx.syncWithAllMbeanServersForcibly=true 

This enhancement is available in 9.6 and onward versions. 

Below a test scenario illustrating the problem and the result after enabling the enhancement

 

Step 1: Enable JMX collection in the Agent side:

In the IntroscopeAgent.profile enabled jmx : introscope.agent.jmx.enable=true

In this example, all other jmx properties remain the same, using the default values.

#introscope.agent.jmx.maxpollingduration.enable=true

#introscope.agent.jmx.ratecounter.enable=true

#introscope.agent.jmx.ratecounter.reset.enable=true

#introscope.agent.jmx.compositedata.enable=true

#introscope.agent.jmx.name.primarykeys=

introscope.agent.jmx.name.filter=

#introscope.agent.jmx.name.filter=jboss*service=invoker*type=pooled,jboss*service=TransactionManager,jboss.j2ee*plugin=pool,jboss*plugin=cache,jboss.jca*service=ManagedConnectionPool,jboss.jca*service=WorkManagerThreadPool,jboss.mq*service=DestinationManager,jboss.mq*service=MessageCache,jboss.mq*service=PersistenceManager,jboss.mq.destination*service=Queue,jboss.mq*service=Topic,jboss.system*service=ThreadPool,jboss.system*type=ServerInfo,jboss.web*type=Cache,jboss.web*type=Manager,jboss.web*type=GlobalRequestProcessor,jboss.web*type=ThreadPool

#introscope.agent.jmx.name.filter=jboss.ws*service=ServerConfig,jboss.modules*type=ModuleLoader,jboss.as*subsystem=jca

#introscope.agent.jmx.ignore.attributes=server

introscope.agent.jmx.excludeStringMetrics=true 

 

Copy AGENT_HOME/common/WebAppSupport.jar to AGENT_HOME/core/ext

 

Step 2: Restart the server, wait for 10 or 15 minutes.

 

Step 3: Verify JMX/MBean reporting.

Find out the server instance PID 

 

step13a.png

Launch jconsole using  /jdk1.6.0_45/bin/jconsole

Select the same process

Click “Connect” button

step13b.png

 

step13c.png

Click “MBeans”

 

Expand  Jboss.as > datasources > ExampleDS > pool > attributes

AvailableCount = 20

The same integer counter should display in investigator.

Result in the Investigator. ExampleDS information is missing. à INCORRECT

 

step13d.png 

 

Step 4: Enable Mbean enhancement.

Stop Appserver

Add the below NEW property to the Agent profile

com.wily.introcope.agent.jmx.syncWithAllMbeanServersForcibly=true

Restart the Appserver

Wait for 20 minutes approx.

Result in Investigator: ExampleDS information is now reporting à CORRECT

 

step14a.png

Next Page:

step14b.png