Table of Contents
Automated Gateway Management (AGM) is an add-on to Longview Software's Gateway Central which takes the load of keeping Gateways running off of the users and places it on the Gateway Central server. At this time, there are two major functions of AGM. The first major function is the Failed Gateway Monitor service. The Failed Gateway Monitor service is responsible for monitoring FAILED Gateways and attempting to restart them. The second major function provides generic script running capabilities based upon a user-defined schedule.
Throughout this document, the reader will notice that some filenames are prefixed with numerals (i.e. 02, 03, etc.). This is due to the configuration of the Gateway Central server deploy mechanism. Files that are prefixed with numerals are deployed last, and in numerical order. An example of this is with the Failed Gateway Monitor service. The basic configuration files have no prefix, and the actual service configuration file does. This guarantees that the configurations needed by the Failed Gateway Monitor service are deployed before the actual service is deployed.
AGM leverages the power of MBeans (managed beans) and therefore uses the standard JBoss service XML configuration file format. This is explained in more detail in the Installation section of this document. You will see samples of the configuration files throughout this document.
The Failed Gateway Monitor Service is responsible for noticing FAILED Gateways and matching those FAILED Gateways to a Gateway Recovery configuration. The configuration file for the service specifies a Threshold configuration that handles the total failure threshold and a set of Gateway Recovery configurations. When a newly FAILED Gateway is picked up by the service, the service matches the Gateway to a Gateway Recovery configuration from the specified list of Gateway Recovery configurations, and a new instance of a FailedGateway is registered with the server. If a FAILED Gateway is picked up by the service and that Gateway is already registered in the server as a FailedGateway, it is not matched to a new configuration, but rather the existing FailedGateway is notified that the Gateway FAILED again, and the FailedGateway's failure count is incremented.
Each time a Gateway fails, the Restart configuration associated with the FailedGateway is invoked according to its specification. If a failure causes the Gateway to breach its failure threshold, the Restart configuration is invoked and the Threshold's breach script is executed if applicable.
The total failure threshold associated with the Failed Gateway Monitor service specifies the total number of Gateway failures that may occur during the specified threshold period. Total in this sense does not mean unique Gateway failures. The service simply increments its failure count whenever a failure is picked up, regardless of whether or not the failure is from a Gateway that is already registered with the server as a FailedGateway. When this threshold is breached, its breach script is executed if applicable.
The Failed Gateway Monitor service is configured in a file named 01-lsft-gcAGM-service.xml and must be placed in the server's deploy directory or any subdirectory therein.
Following is a list of the attributes in the Failed Gateway Monitor service configuration along with a description of each attribute:
TotalFailureThreshold: The Threshold specified here determines the threshold for the total number of Gateway failures. Once this Threshold is exceeded, its breach script is executed if one is configured. The TotalFailureThreshold value must match a valid MBean name among the Threshold configurations. Please see lsft-gcAGM-ThresholdConfigs-service.xml for more information.
GatewayRecoveryConfigurations: This specifies a list of GatewayRecovery configurations against which to match FAILED Gateways. GatewayRecovery instances define a set of criteria against which to match FAILED Gateways in order to apply a set of configurations like thresholds and actions to take when the Gateway fails. Each GatewayRecoveryConfig XML element value must match a valid MBean name among the GatewayRecovery configurations. Please see lsft-gcAGM-GatewayRecoveryConfigs-service.xml for more information. Only GatewayRecovery configurations that are added to this list are made available for use by the FailedGatewayMonitor service, even if the GatewayRecovery configuration is listed in lsft-gcAGM-GatewayRecoveryConfigs-service.xml.
StartAtStartup: Specifies whether or not the FailedGatewayMonitor service should be started when the Gateway Central server starts. If this attribute is set to false, user interaction via the JMX Console is required to start the service. Also, if this attribute is set to false and the configuration is edited, the service will have to be restarted via the JMX Console.
DateFormat: Specifies the format for dates reported by the FailedGatewayMonitor service.
Following is a sample Failed Gateway Monitor service configuration:
<mbean code="com.lsft.nx.agm.service.FailedGatewayMonitor"
name="LongviewServer.Service.AGM:service=FailedGatewayMonitor">
<attribute name="TotalFailureThreshold">LongviewServer.Service.AGM:
threshold=TotalFailureThreshold</attribute>
<attribute name="GatewayRecoveryConfigurations">
<GatewayRecoveryConfigs>
<GatewayRecoveryConfig>LongviewServer.Service.AGM:
recovery=DefaultGatewayRecovery</GatewayRecoveryConfig>
</GatewayRecoveryConfigs>
</attribute>
<attribute name="StartAtStartup">false</attribute>
<attribute name="DateFormat">M-d-yyyy H:mm:ss</attribute>
<depends>LongviewServer:module=NxGatewayModule</depends>
</mbean>
There are three distinct types of configurations that all fit together to make up the Failed Gateway Monitor service. These three configuration types are Restart, Threshold, and Gateway Recovery. Following are the details of each type of configuration.
A Restart configuration defines a script to run when a Gateway fails and an optional restart delay. When a Gateway fails, the script specified in the Gateway's Restart configuration is invoked. Following is a list of the attributes in a Restart configuration along with a description of each attribute:
ScriptName (required) : Specifies the script to be run when a Gateway fails.
RestartDelay (optional) : Specifies the number of seconds to wait between issuing a STOP Gatway command and a START Gateway command. Some Gateways will FAIL if started too soon after being stopped, so it is convenient to introduce a delay in the process. This is an optional attribute. There will be no delay in restarting the Gateway if this attribute is omitted.
Following is a sample Restart configuration file that shows a default Restart configuration.
<?xml version="1.0" encoding="UTF-8"?>
<server>
<mbean code="com.lsft.nx.agm.config.Restart"
name="LongviewServer.Service.AGM:restart=DefaultRestart">
<attribute name="ScriptName">gcRestartFailedGateway.groovy</attribute>
<attribute name="RestartDelay">5</attribute> <!-- 5 seconds -->
</mbean>
</server>
A Threshold configuration defines a threshold for the number of Gateway failures. At its core, a Threshold configuration specifies a threshold count and a threshold period. These two values define the threshold. The threshold count is specified as a simple integer value, and the threshold period is specified in seconds. Therefore, if the threshold count is set to 5 and the threshold period is set to 60, the threshold is defined as 5 failures in 60 seconds. The algortihm used to determine if a threshold has been breached uses a sliding window, so it is possible to actually see the current failure count of a failing Gateway decrease under circumstances where the time between failures is less than the threshold period but large enough that the difference between the most recent failure and the first failure exceeds the threshold period. Under those circumstances, the older failure times are considered to be stale, and they are discarded. In addition to threshold count and threshold period, a Threshold configuration may contain an optional Restart configuration. Following is a list of the attributes in a Threshold configuration along with a description of each attribute:
ThresholdCount (required) : Specifies the number of times a Gateway may fail during the ThresholdPeriod (see below) before the Threshold is considered to be breached.
ThresholdPeriod (required) : Specifies the number of seconds that this Threshold configuration is considered valid. The Threshold period is operated on a sliding window.
Restart (optional) : Specifies the name of the Restart configuration that is in effect during this Threshold. Restart configurations are associated with Threshold configurations to allow users to handle FAILED Gateways differently with different Threshold periods. Only omit this attribute in the case of a Threshold configuration meant to be used in the TotalFailureThreshold attribute of the FailedGatewayMonitor Service.
BreachScript (optional) : Specifies a script that will be invoked when the Threshold is breached. This is an optional attribute, and no action will be taken if the Threshold is breached and this attribute is omitted.
Following is a sample Threshold configuration file that defines a total failure threshold and a default failure threshold.
<?xml version="1.0" encoding="UTF-8"?>
<server>
<mbean code="com.lsft.nx.agm.config.Threshold"
name="LongviewServer.Service.AGM:threshold=TotalFailureThreshold">
<attribute name="ThresholdCount">15</attribute>
<attribute name="ThresholdPeriod">6000</attribute> <!-- 10 minutes -->
<!-- <attribute name="BreachScript">
gcTotalFailureThresholdBreach.groovy</attribute> -->
</mbean>
<mbean code="com.lsft.nx.agm.config.Threshold"
name="LongviewServer.Service.AGM:threshold=DefaultThreshold">
<attribute name="ThresholdCount">5</attribute>
<attribute name="ThresholdPeriod">300</attribute> <!-- 5 minutes -->
<depends optional-attribute-name="Restart">LongviewServer.Service.AGM:
restart=DefaultRestart</depends>
<!-- <attribute name="BreachScript">gcThresholdBreach.groovy</attribute> -->
</mbean>
</server>
A Gateway Recovery configuration is used to match Gateways to Threshold configurations based upon criteria defined in the configuration. The Threshold configuration matched to a Gateway then contains instances of Restart configurations that are applied to a FAILED Gateway. The following Gateway attributes can be used to match FAILED Gateways to Gateway Recovery configurations: GatewayName, GatewayManager, GatewayManagerClass, and GatewaySystem. These four attributes can take values that are literal or regular expressions. The regular expressions follow the same rules as the Gateway Table mask pattern in the Gateway Central client.
More than one Threshold configuration can be associated with a Gateway Recovery configuration. When a Threshold is breached, the next Threshold becomes active. When the last Threshold is reached, it is simply recycled until the Gateway failure is cleaned up from AGM.
The algorithm used to match FAILED Gateways to Gateway Recovery configurations is best-match. Each configuration is compared against the FAILED Gateway, and the configuration that has the highest number of matching attributes to the Gateway becomes the configuration associated with the FAILED Gateway. FAILED Gateways are matched against the GatewayRecovery configurations in the order that they appear in this configuration file. If more than one configuration has the same number of matching attributes, the configuration that first matched that number of attributes becomes associated with the FAILED Gateway. If all configurations match zero attributes, the first configuration in the list will become associated with the FAILED Gateway. Therefore, a user could specify a default that only contains a Threshold configuration set with no other attributes, and put it first in the list. That way, if no other configurations match, that configuration will become the default.
Following is a list of the attributes in a Gateway Recovery configuration along with a description of each attribute:
GatewayName (optional) : A regular expression or literal value intended to match a Gateway's name.
GatewayManager (optional) : A regular expression or literal value intended to match a Gateway's manager name.
GatewayManagerClass (optional) : A regular expression or literal value intended to match a Gateway's manager class name.
GatewaySystem (optional) : A regular expression or literal value intended to match a Gateway's system name.
ThresholdConfigurations (required) : A set of Threshold configuration names. A Threshold configuration name must match a valid Threshold configuration name found in lsft-gcAGM-ThresholdConfigs-service.xml. A user can specify any number of sequential Threshold configurations. The Threshold configurations will be activated in the order specified in the applicable Gateway Recovery configuration, in turn, as each Threshold is breached. Once the last Threshold is breached, it is recyceld for the lifetime of the FailedGateway instance.
Following is a sample Gateway Recovery configuration file:
<?xml version="1.0" encoding="UTF-8"?>
<server>
<mbean code="com.lsft.nx.agm.config.GatewayRecovery"
name="LongviewServer.Service.AGM:recovery=DefaultGatewayRecovery">
<attribute name="GatewayManagerClass">Cisco.*</attribute>
<attribute name="ThresholdConfigurations">
<thresholds>
<threshold>LongviewServer.Service.AGM:
threshold=DefaultThreshold</threshold>
</thresholds>
</attribute>
</mbean>
</server>
This service helps maintain uptime on critical Gateways by monitoring when Gateways become INACTIVE. When a Gateway goes INACTIVE, this service runs the script specified in its configuration. The one exception to this scenario is that if the Gateway goes INACTIVE due to the Failed Gateway Monitor Service's activities, this service will ignore it.
The Inactive Gateway Monitor Service is simple and lacks the complex configuration structure of the Failed Gateway Monitor Service. The configuration consists solely of one MBean entry in the 01-lsft-gcAGM-service.xml file along with the Failed Gateway Monitor Service. Following is an example of the configuration:
<mbean code="com.lsft.nx.agm.service.InactiveGatewayMonitor"
name="LongviewServer.Service.AGM:service=InactiveGatewayMonitor">
<attribute name="StartAtStartup">false</attribute>
<attribute name="DateFormat">M-d-yyyy H:mm:ss</attribute>
<attribute name="ScriptName">gcRestartInactiveGateway.groovy</attribute>
<depends>LongviewServer:module=NxGatewayModule</depends>
</mbean>
Following is a description of each configurable attribute for the Inactive Gateway Monitor Service:
StartAtStartup: Specifies whether or not the service should be started when the Gateway Central server starts. If this attribute is set to false, user interaction via the JMX Console is required to start the service. Also, if this attribute is set to false and the configuration is edited, the service will have to be restarted via the JMX Console.
DateFormat: Specifies the format for dates reported by the service.
ScriptName: Specifies the Groovy script to be run when a Gateway goes INACTIVE.
The Gateway Central server provides a Scheduler Service so that users may cause the server to execute actions based upon a schedule. AGM uses the Scheduler Service in two different ways. One way is to use specific classes that perform specific actions on a schedule, and the other way is to use a generic class whose purpose is only to run a script specified in a configuration.
An example of using a specific class on a schedule is the Failed Gateway Cleanup service. This service is responsible for cleaning up old FailedGateway instances, meaning FailedGateway instances that have not exceeded their Threshold during the Threshold period.
Following is the confguration for the Failed Gateway Cleanup service, which is specified in 02-lsft-gcAGM-Scheduler-service.xml:
<mbean code="com.lsft.nx.agm.service.FailedGatewayCleanup"
name="LongviewServer.Schedulable.AGM:name=FailedGatewayCleanup">
</mbean>
<mbean code="org.jboss.varia.scheduler.Scheduler"
name="LongviewServer.Service.AGM:service=Scheduler,name=FailedGatewayCleanup">
<attribute name="StartAtStartup">true</attribute>
<attribute name="SchedulableMBean">LongviewServer.Schedulable.AGM:
name=FailedGatewayCleanup</attribute>
<attribute name="SchedulableMBeanMethod">runProcess()</attribute>
<attribute name="InitialStartDate">NOW</attribute>
<attribute name="SchedulePeriod">600000</attribute> <!-- 10 minutes -->
<attribute name="InitialRepetitions">-1</attribute>
<depends>LongviewServer.Service.AGM:service=FailedGatewayMonitor</depends>
</mbean>
A scheduled service consists of two distinct parts, the Schedulable MBean and the Scheduler MBean instance. The Schedulable MBean specifies the class and name of the service that is to be run. This is specified above by the following lines:
<mbean code="com.lsft.nx.agm.service.FailedGatewayCleanup"
name="LongviewServer.Schedulable.AGM:name=FailedGatewayCleanup">
</mbean>
The Scheduler MBean instance specifies the schedule on which the Schedulable MBean is run. This is specified above by the following lines:
<mbean code="org.jboss.varia.scheduler.Scheduler"
name="LongviewServer.Service.AGM:service=Scheduler,name=FailedGatewayCleanup">
<attribute name="StartAtStartup">true</attribute>
<attribute name="SchedulableMBean">LongviewServer.Schedulable.AGM:
name=FailedGatewayCleanup</attribute>
<attribute name="SchedulableMBeanMethod">runProcess()</attribute>
<attribute name="InitialStartDate">NOW</attribute>
<attribute name="SchedulePeriod">600000</attribute> <!-- 10 minutes -->
<attribute name="InitialRepetitions">-1</attribute>
<depends>LongviewServer.Service.AGM:service=FailedGatewayMonitor</depends>
</mbean>
The MBean code attribute value for a Scheduler is always org.jboss.varia.scheduler.Scheduler, and the user can provide any name they wish, however, it should always begin with LongviewServer.Service.AGM:service=Scheduler.
Following is a list of the attributes that define a Scheduler instance:
StartAtStartup: Specifies whether this service should be active upon server startup. If this attribute is false, action is required via the JMX Console to activate the service. Also, if this attribute is set to false and the configuration is edited, the service will have to be restarted via the JMX Console.
SchedulableMBean: Specifies the MBean name of the Schedulable MBean that is to be run by the scheduler.
SchedulableMBeanMethod: Specifies the name of the method to run when the SchedulableMBean is invoked by the scheduler. For AGM, this must always be set to runProcess(). If this is not set to runProcess(), the scheduler will fail to properly invoke the Schedulable MBean.
InitialStartDate (from the JBoss documentation): Date when the initial call is scheduled. It can be either:
NOW: date will be the current time plus 1 second
A number representing the milliseconds since 1/1/1970
Date as String able to be parsed by SimpleDateFormat with default format pattern “M/d/yy h:mm s”.If the date is in the past the Scheduler will search a start date in the future with respect to the initial repetitions and the period between calls. This means that when you restart the MBean (restarting JBoss etc.) it will start at the next scheduled time. When no start date is available in the future the Scheduler will not start. For example, if you start your Schedulable everyday at Noon and you restart your JBoss server then it will start at the next Noon (the same if started before Noon or the next day if start after Noon).
SchedulePeriod: Specifies the interval between scheduled calls in milliseconds. Be careful here to make sure to use milliseconds ( 1 second = 1000 milliseconds ). Other AGM values are specified in seconds, but this is a JBoss specific attribute and cannot be controlled by Longview Software.
InitialRepetitions: Specifies the number of times the scheduler will invoke the SchedulableMBeanMethod. A value of -1 indicates that the schedule should be repeated until the server is stopped. If any value other than -1 is provided, user action in the JMX Console is required to restart the scheduler.
To use the generic script Schedulable MBean, the scheduler part is the same as above, but the Schedulable MBean portion is different. Following is a full example of using the script Schedulable MBean:
<mbean code="com.lsft.nx.agm.schedule.GatewayCentralScriptSchedulable"
name="LongviewServer.Schedulable.AGM:name=GCSchedulableMBeanExample">
<attribute name="ScriptName">hello.groovy</attribute>
</mbean>
<mbean code="org.jboss.varia.scheduler.Scheduler"
name="LongviewServer.Service.AGM:service=Scheduler,name=GCSchedulableMBeanExample">
<attribute name="StartAtStartup">false</attribute>
<attribute name="SchedulableMBean">LongviewServer.Schedulable.AGM:
name=GCSchedulableMBeanExample</attribute>
<attribute name="SchedulableMBeanMethod">runProcess()</attribute>
<attribute name="InitialStartDate">NOW</attribute>
<attribute name="SchedulePeriod">10000</attribute>
<attribute name="InitialRepetitions">10</attribute>
</mbean>
The code attribute of the Schedulable MBean is always com.lsft.nx.agm.schedule.GatewayCentralScriptSchedulable , and the user can provide any name they wish. The only attribute defined in a script Schedulable instance is ScriptName, which specifies the Groovy script to be run on the defined schedule.
Gateway Central uses a Java-based scripting language named Groovy, and all AGM scripts are written using this language. For AGM, Gateway Central uses the GroovyScriptEngine to run all scripts inside the server's Java virtual machine. There are several advantages to the use of the scripting engine as opposed to launching scripts in an external process. First of all, script startup time is almost zero. Scripts are pre-compiled and ready to run when needed. A unique feature of the GroovyScriptEngine is that it automatically recognizes changes to any scripts that it knows about and recompiles those scripts and any dependent scripts as necessary. See Section 5.1, “Configuring the Scripting Engine” for details on configuring the scripting engine.
A second advantage to using a scripting engine, is that we can embed objects directly into the scripts. This mechanism removes the need for the scripts to contain a large amount of boiler plate code that would get references to EJB interfaces, etc. This makes the scripts used by AGM cleaner and easier to read and maintain. Each type of service has a specific set of objects that are embedded into scripts. See Section 5.2, “Embedded Script Objects” for more information on which objects are embedded into scripts under which circumstances.
Currently, configuring the scripting engine consists solely of optionally specifying a set of paths where scripts may reside. The distribution contains a configuration file named lsft-gcAGM-properties-service.xml, which contains a single Java System property named lsft.agm.script.paths. The acceptable value for this property is a comma-delimited list of absolute file system paths where AGM scripts reside. The default value is blank. If the property is left blank or is removed, the scripting engine is configured to only look for scripts in the $GC_SERVER_HOME/script directory.
This section covers the objects that are embedded to the scripts that are executed for each service. Regardless of the service however, all scripts receive a copy of the Gateway Central EJB interfaces. Following is the list of EJB interfaces embedded into all scripts.
gatewayFactory: a reference to the NxGatewayFactoryBean local EJB interface
nxsystemFactory: a reference to the NxSystemFactoryBean local EJB interface
gwMessageSender: a reference to the NxGatewayMessageSenderBean local EJB interface
Following is the list of script types and the set of objects that are embedded into each in addition to the EJB interfaces mentioned above.
It is important to note that all embedded object names mentioned in this section must be used exactly as documented. Otherwise, scripts will fail to execute.
No additional objects are embedded into scripts associated with a Total Failure Threshold breach.
The following additional objects are embedded into scripts associated with Threshold breaches.
gw: a copy of the NxGateway object that has breached its failure Threshold and has cause this script to be executed
The following additional objects are embedded into scripts associated with restarting failed Gateways.
gw: a copy of the NxGateway object that has failed
restartDelay: the configured delay period between stopping and restarting a failed Gateway
id: the cache ID of the failed Gateway
The following additional objects are embedded into scripts associated with restarting inactive Gateways.
gw: a copy of the NxGateway object that has become inactive
id: the cache ID of the inactive Gateway
There is no graphical installer for AGM. AGM comes packaged in a tar file that needs to be extracted and copied into the server manually. Following are the contents of the AGM tar file.
agm-config: a directory containing the default AGM configuration files
agm-scripts: a directory containing the default scripts for the Failed Gateway Monitory and the Inactive Gateway Monitor
lib: a directory containing the libraries needed for AGM
The AGM tar file should be extracted to a temporary location for staging, prior to installation of the individual components. Note that the server should be down during installation. Untarring everything into a staging area will allow you to make any necessary edits to configuration files while the server is still running and then minimize down time when the server is stopped for AGM installation. The following sections detail the steps for installing each component. In the following sections, GC_SERVER_HOME refers to the directory where Gateway Central is installed.
The agm-lib directory contains two jar files. The main AGM library is lsft-AutomatedGatewayManagement.jar. The director also contains groovy-all-1.0.jar in the event that the server does not contain the jar file already. To install the libraries, simply copy them to GC_SERVER_HOME/server/lsft/lib. Again, the groovy jar needs only be copied if the file does not already exist in the server lib directory.
As stated above, the agm-scripts directory contains the default scripts referenced by the Failed Gateway Monitor and Inactive Gateway Monitor. These scripts need to be edited (if necessary) and copied to the GC_SERVER_HOME/script directory or any directory referenced by the scripts path configured in the scripting engine as described in Section 5.1, “Configuring the Scripting Engine”.
AGM leverages the power of JBoss’ MBean implementation by creating all configurations as MBean instances. An MBean is a Management Bean and can be viewed and edited via the JMX Console (see Appendix A, JMX Console). There are benefits and drawbacks to using this approach. One drawback is that the configuration file scheme may be more difficult to read and decipher than if it were a custom scheme. However, by looking at the example configurations, the format should be easy to learn. One bonus of this configuration scheme is that no custom configuration parser had to be written. The JBoss server reads the files and handles the object deployments automatically. All configuration files should be placed in a user-created agm-config subdirectory under the server’s deploy directory unless otherwise noted.
The agm-config directory in the AGM tar file contains default configuration files. The configuration files can be edited in the staging area and then entire agm-config directory can be copied to GC_SERVER_HOME/server/lsft/deploy. The server can pick up the configurations while in a sub-directory of the server's deploy directory, and this will help keep the configurations organized. Note that along with the default scripts mentioned above, the default configurations can be used as-is to get up and running quickly with AGM. Using the default configurations will cause all Gateways to be treated the same, and there will be no breach scripts. Following is a brief list of the files contained in the agm-config directory and what each file does.
01-lsft-gcAGM-service.xml: This file contains the default configurations for both the Failed Gateway Monitor and Inactive Gateway Monitor services.
02-lsft-gcAGM-Scheduler-service.xml: This file contains only the Failed Gateway Cleanup service by default. It also contains examples on how to configure script schedulable services as described in Section 4.2, “Gateway Central Script Schedulable”
lsft-gcAGM-properties-service.xml: This file is used to set the lsft.agm.script.paths property and configure the list of paths that the scripting engine will search for scripts as described in Section 5.1, “Configuring the Scripting Engine”.
lsft-gcAGM-RestartConfigs-service.xml: This file contains default Gateway Restart configurations as described in Section 2.1, “Restart Configuration”.
lsft-gcAGM-ThresholdConfigs-service.xml: This file contains default Gateway Threshold configurations as described in Section 2.2, “Threshold Configuration”.
lsft-gcAGM-GatewayRecoveryConfigs-service.xml: This file contains default Gateway Recovery configurations as described in Section 2.3, “Gateway Recovery Configuration”.
Gateway Central uses the JBoss Application Server, which provides an application called the JMX Console. The JMX Console allows a user to view all MBeans registered with the server using a standard web browser. MBeans, or managed beans, are basically objects that implement a management interface that allow the server to manage them. All services and configurations for AGM were designed using MBeans, so they can all be viewed and edited via the JMX Console.
Please note that any changes made to MBeans via the JMX Console are not persisted between server sessions. So any changes made will be lost when the server is restarted.
Please note that you should not invoke the start, stop, create, and destroy operations on any MBean, as these are life-cycle operations used by the server's internal code only.
The URL for the JMX Console is http://localhost:8080/jmx-console/, replacing localhost with the hostname of your Gateway Central server and the port number as appropriate. The JMX Console is password protected with a default account of admin/admin. When accessing the JMX Console, you will see a login window similar to the following.

When you login successfully, you will see the JMX Agent View that should appear similar to the following image.

The top view is called the agent view and it provides a listing of all MBeans registered with the server, sorted by the domain portion of the MBean ObjectName. Under each domain are the MBeans belonging to that domain. Selecting an MBean from the agent view will take you to the MBean view for that MBean, which will allow you to edit MBean attributes and invoke methods on the MBean.
The JMX Console can be used to view and edit the services and configurations related to AGM. You can see how the AGM-related items appear in the JMX Console in the following image.

This section will highlight some of the more important AGM-related items that can be accessed via the JMX Console.
The MBean view pages for the Failed Gateway Monitor Service and the Inactive Gateway Monitor Service can be accessed by clicking the service=FailedGatewayMonitor and service=InactiveGatewayMonitor links respectively, under the LongviewServer.Service.AGM domain. An image of the MBean view page for the Failed Gateway Monitor is shown below, and the Inactive Gateay Monitor MBean view page should appear similarly.

The most important thing that can be done on the MBean view for these two services is to start and stop the services. If the StartAtStartup attribute is set to false for either service, they must be started via the appropriate service's MBean view page by invoking the startMonitor() and stopMonitor() operations as show below.

The deployed configurations can also been viewed via the JMX Console. The configurations can be found under the LongviewServer.Service.AGM domain. Gateway Restart configurations (see Section 2.1, “Restart Configuration”) have links that start with restart= and have MBean view pages that look like the following.

Threshold configurations (see Section 2.2, “Threshold Configuration”) have links that start with threshold= and have MBean view pages that look like the following.

Gateway Recovery configurations (see Section 2.3, “Gateway Recovery Configuration”) have links that start with recovery= and have MBean view pages that look like the following.
