How to configure Agent 9.5 with Weblogic 11g and Enable Remote JMX collection

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

Enable JMX collection

  • Create a Startup class for Weblogic

    Go to Weblog Admin console, click Environment > Startup and Shutdown Classes

    Figure 1

    Click New

    Figure 2

    Click Next

    Figure 3

    Click Next

    Figure 4

    Select the appropriate server, then click Finish

    Figure 5

  • Enable JMX in the Agent profile: It is enabled by default. You can keep the default Agent jmx properties values:

    introscope.agent.jmx.enable=true
    #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.jsr77.disable=true
    #introscope.agent.jmx.name.primarykeys=Type,Name

    introscope.agent.jmx.name.filter=ThreadPoolRuntime:ExecuteThreadIdleCount,ThreadPoolRuntime:ExecuteThreadTotalCount,ThreadPoolRuntime
    :HoggingThreadCount,ThreadPoolRuntime:PendingUserRequestCount,ThreadPoolRuntime:QueueLength,ThreadPoolRuntime:StandbyThreadCount,
    ThreadPoolRuntime:Throughput,JDBCDataSourceRuntime*:ActiveConnectionsCurrentCount,JDBCDataSourceRuntime*:ActiveConnectionsHighCount,
    JDBCDataSourceRuntime*:ConnectionDelayTime,JDBCDataSourceRuntime*:ConnectionsTotalCount,JDBCDataSourceRuntime*:CurrCapacity,
    JDBCDataSourceRuntime*:CurrCapacityHighCount,JDBCDataSourceRuntime*:FailedReserveRequestCount,
    JDBCDataSourceRuntime*:FailuresToReconnectCount,JDBCDataSourceRuntime*:HighestNumAvailable,JDBCDataSourceRuntime*:HighestNumUnavailable, JDBCDataSourceRuntime*:LeakedConnectionCount,JDBCDataSourceRuntime*:NumAvailable,JDBCDataSourceRuntime*:NumUnavailable,
    JDBCDataSourceRuntime*:WaitingForConnectionCurrentCount,JDBCDataSourceRuntime*:WaitingForConnectionFailureTotal,
    JDBCDataSourceRuntime*:WaitingForConnectionHighCount,JDBCDataSourceRuntime*:WaitingForConnectionSuccessTotal,
    JDBCDataSourceRuntime*:WaitingForConnectionTotal,JDBCDataSourceRuntime*:WaitSecondsHighCount,JMSDestinationRuntime*:BytesCurrentCount,
    JMSDestinationRuntime*:BytesHighCount,JMSDestinationRuntime*:BytesPendingCount,JMSDestinationRuntime*:BytesReceivedCount,
    JMSDestinationRuntime*:ConsumersCurrentCount,JMSDestinationRuntime*:ConsumersHighCount,JMSDestinationRuntime*:ConsumersTotalCount,
    JMSDestinationRuntime*:MessagesCurrentCount,JMSDestinationRuntime*:MessagesDeletedCurrentCount,JMSDestinationRuntime*:MessagesHighCount,
    JMSDestinationRuntime*:MessagesPendingCount,JMSDestinationRuntime*:MessagesReceivedCount,WorkManagerRuntime*:CompletedRequests,
    WorkManagerRuntime*:PendingRequests,WorkManagerRuntime*:StuckThreadCount,ExecuteQueueRuntime*:ExecuteThreadCurrentIdleCount,
    ExecuteQueueRuntime*:ExecuteThreadTotalCount,ExecuteQueueRuntime*:PendingRequestCurrentCount,ExecuteQueueRuntime*:ServicedRequestTotalCount,
    WebAppComponentRuntime*:OpenSessionsCurrentCount,WebAppComponentRuntime*:OpenSessionsHighCount,
    WebAppComponentRuntime*:SessionsOpenedTotalCount,WebAppComponentRuntime*:SessionTimeoutSecs

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

    introscope.agent.jmx.excludeStringMetrics=true
  • Enable the Agent and WebAppSupport.jar in the app startup script:

    Figure 6

  • Restart the appserver

  • Connect to workstation and verify that JMX node is displayed.

    Figure 7

Enabling Remote JMX Collection

  • Add the following java properties to the startup script

    -Dcom.sun.management.jmxremote=true
    -Dcom.sun.management.jmxremote.port=
    -Dcom.sun.management.jmxremote.authenticate=false,
    -Dcom.sun.management.jmxremote.ssl=false
    -Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder

    Figure 8
  • Connect to jconsole in remote port 12110

    Figure 9

    Click Mbeans.

    Figure 10

    -By default, you will only see the above "JMX | com.bea" node in the investigator.
    If you would like to see all Mbeans displayed by Jconsole in the Investigator you need to fine tune your filters and disable the exclude of strings property.
    Only for this demonstration, we will set no filter, so all jmx data will be retrieved.

    introscope.agent.jmx.name.filter=
    introscope.agent.jmx.excludeStringMetrics=false

    -Restarted the appserver
    -Connected to workstation

    Figure 11

NOTE

jconsole displays operations along with attributes, but Introscope display only mbeans with attributes whose value is number type. If you enable string metrics as above then should be able to see more mbeans that report string metrics also. Please note that the string metrics will not be that much useful and by design they are not stored in smartstor as they are not numeric.