To monitor and manage an instance using OEJMX, it is helpful to have a complete list of available MBeans for an instance. Use the OEJMX utility on a running PAS for OpenEdge instance with the -C parameter to generate a list of the available MBeans and related operations and attributes. By default, the output is sent to the instance-name/temp/beanInfo-timestamp.txt file. With a complete list of MBeans, you can write targeted queries and add those queries to larger automated script for monitoring performance and managing an instance.

To list the available MBeans and locate AgentManager details:

  1. From the target PAS for OpenEdge instance's bin directory, start the instance, for example:
    proenv>tcman pasoestart
  2. Run oejmx -C to create a list of available MBeans, for example:
    proenv>oejmx -C

    Output is sent to the default location,/temp/beanInfo-timestamp.txt.

  3. Open the output file and search for the AgentManager details. The AgentManager MBean lists the available operations that can be used to get agent information, status, and other metrics. The JMX queries are displayed on the lines that begin with {"O":"PASOE:type=OEManager,name=AgentManager" as shown in the sample AgentManager MBean operations output:
    **************** PASOE:type=OEManager,name=AgentManager
    Operation: getAgents (String appName) -->  javax.management.openmbean.CompositeData
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["getAgents","<appName>"]}
    Operation: refreshAgents (String appName) -->  javax.management.openmbean.CompositeData
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["refreshAgents","<appName>"]}
    Operation: refreshAgent (String id) -->  javax.management.openmbean.CompositeData
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["refreshAgent","<id>"]}
    Operation: getAgentStatus (String id) -->  javax.management.openmbean.CompositeData
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["getAgentStatus","<id>"]}
    Operation: flushDeferredLog (String appName, String agentId) -->  javax.management.openmbean.CompositeData
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["flushDeferredLog","<appName>","<agentId>"]}
    Operation: resetDeferredLog (String appName, String agentId) -->  javax.management.openmbean.CompositeData
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["resetDeferredLog","<appName>","<agentId>"]}
    Operation: clearAgentStatData (String id) -->  Boolean
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["clearAgentStatData","<id>"]}
    Operation: getAgentMetrics (String id) -->  javax.management.openmbean.CompositeData
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["getAgentMetrics","<id>"]}
    Operation: getThreadMetrics (String id) -->  javax.management.openmbean.CompositeData
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["getThreadMetrics","<id>"]}
    Operation: getSessionMetrics (String id) -->  javax.management.openmbean.CompositeData
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["getSessionMetrics","<id>"]}
    Operation: getConnectionMetrics (String id) -->  javax.management.openmbean.CompositeData
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["getConnectionMetrics","<id>"]}
    Operation: getRequestMetrics (String id) -->  javax.management.openmbean.CompositeData
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["getRequestMetrics","<id>"]}
    Operation: getAgentStacks (String id) -->  javax.management.openmbean.CompositeData
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["getAgentStacks","<id>"]}
    Operation: getSessionStacks (String agentID, String sessionID) -->  javax.management.openmbean.CompositeData
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["getSessionStacks","<agentID>","<sessionID>"]}
    Operation: stopAgent (String agentID, Integer waitToFinish, Integer waitAfterStop) -->  boolean
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["stopAgent","<agentID>",<waitToFinish>,<waitAfterStop>]}
    Operation: getDynamicABLSessionLimit (String appName, String id) -->  javax.management.openmbean.CompositeData[]
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["getDynamicABLSessionLimit","<appName>","<id>"]}
    Operation: resetDynamicABLSessionLimit (String appName, String id) -->  javax.management.openmbean.CompositeData[]
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["resetDynamicABLSessionLimit","<appName>","<id>"]}
    Operation: setDynamicABLSessionLimit (String appName, String id, Integer sessionLimit) -->  javax.management.openmbean.CompositeData[]
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["setDynamicABLSessionLimit","<appName>","<id>",<sessionLimit>]}
    Operation: terminateABLSession (String agentID, Integer agentSessionID, Integer terminateOption) -->  boolean
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["terminateABLSession","<agentID>",<agentSessionID>,<terminateOption>]}
    Operation: trackABLObjects (String agentID, Boolean switch) -->  Boolean
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["trackABLObjects","<agentID>",<switch>]}
    Operation: trackingABLObjects (String agentID) -->  boolean
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["trackingABLObjects","<agentID>"]}
    Operation: getABLObjectsReport (String agentID) -->  javax.management.openmbean.CompositeData
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["getABLObjectsReport","<agentID>"]}
    Operation: getABLSessionObjectsReport (String agentID, Integer agentSessionID) -->  javax.management.openmbean.CompositeData
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["getABLSessionObjectsReport","<agentID>",<agentSessionID>]}
    Operation: trackMemoryUse (String agentID, Boolean switch) -->  Boolean
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["trackMemoryUse","<agentID>",<switch>]}
    Operation: trackingMemoryUse (String agentID) -->  boolean
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["trackingMemoryUse","<agentID>"]}
    Operation: getMemoryUseReport (String agentID) -->  javax.management.openmbean.CompositeData
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["getMemoryUseReport","<agentID>"]}
    Operation: getMemoryUseSessionReport (String agentID, Integer agentSessionID) -->  javax.management.openmbean.CompositeData
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["getMemoryUseSessionReport","<agentID>",<agentSessionID>]}
    Operation: initiateDebugger (String id, String connectString) -->  boolean
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["initiateDebugger","<id>","<connectString>"]}
    Operation: debugTest (String agentID, String operation, String modifiers, Integer iparm, String cparm) -->  javax.management.openmbean.CompositeData
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["debugTest","<agentID>","<operation>","<modifiers>",<iparm>,"<cparm>"]}
    Operation: pushProfilerData (String id, String url, Integer requestCount, String profilerSettings) -->  javax.management.openmbean.CompositeData
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["pushProfilerData","<id>","<url>",<requestCount>,"<profilerSettings>"]}
    Operation: getProfilerSettings (String id) -->  javax.management.openmbean.CompositeData
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["getProfilerSettings","<id>"]}
    Operation: dynamicPropertiesUpdate (String id, String propertiesString) -->  boolean
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["dynamicPropertiesUpdate","<id>","<propertiesString>"]}
    Operation: getProperties (String appName) -->  javax.management.openmbean.CompositeData
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["getProperties","<appName>"]}
    Operation: setProperties (String appName, String PropertyName, String PropertyValue) -->  javax.management.openmbean.CompositeData
      {"O":"PASOE:type=OEManager,name=AgentManager","M":["setProperties","<appName>","<PropertyName>","<PropertyValue>"]}
    For example, the stopAgent operation could be used to stop an agent, and the terminateABLSession operation could be used to stop a particular session. These operations are described in the OEJMX Query Reference.

    Some JMX queries require you to replace the variables with information obtained by running a getAgents query, or by providing other data such as application name, property name, or URL. Writing the getAgents query is described in Use an OEJMX query to get agent information.

    Note: Detailed information about available MBeans can be found by using JConsole. For more information, see JConsole and JMX.

With a list of available MBeans, you can Use an OEJMX query to get agent information.