Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The goal is to have at least one machine be able to reach out to all Geronimo servers in order to fetch data or even alter their state. This will be especially useful in the case of someone having to monitor a large number of Geronimo servers.

How it works

There are two methods to collect statistics

  1. using MEJB (requires OpenEJB)
  2. using pure JMX (does not require OpenEJB)

Using MEJB

As part of the design, there are five major components.

...

  • Server group management
    • Deploy/undeploy across multiple, set attributes across multiple, start/stop/restart multiple
  • Historical statistics view for 1-n servers
  • Ability to custom-define statistics collection per-machine, per-group, across entire cluster
  • Manipulate snapshot interval, retention period
  • Enable/disable archiving, define archiving time/retention

...

Note

There are two methods to collect statistics

  1. using MEJB (requires OpenEJB)
  2. using pure JMX (does not require OpenEJB)

Using MEJB

The RCP, or collecting agent, will reside on the Server Node and will be in charge of preparing information for the Management Node. Since there are many statistics for different MBeans that the admin could track, we will use the MEJB component that is already implemented in Geronimo to contact these MBeans.
The Master Controller is the collecting agent that will do the managerial tasks such as query the mbeans for their statistics and what not. Additionally, the Master Controller will set timers via the EJB TimerService in order to periodically capture "snapshots." This term will refer to the server's statistics for a given time. With the timers set, we can save the history of the server's statistics. Upon request, the Master Controller will gather all of the information (either by calling MEJB or looking into the server's history stored in a database) and respond by shipping the data back to the Management Node.
Note: All stats will be JSR-77 compliant.

Taking snapshots

As of now, the collecting agent will create EJB Timers, if it does not already exist, to capture the server's essential information. On each callback the snapshot information on the server itself will be stored to the local database residing on the Server Node. In order to preserve the history, there will be a monthly (default, but can be configured) archive of the server's information stored locally.

...