org.opennms.netmgt.poller.monitors
Class JDBCMonitor

java.lang.Object
  extended by org.opennms.netmgt.poller.monitors.IPv4Monitor
      extended by org.opennms.netmgt.poller.monitors.JDBCMonitor
All Implemented Interfaces:
ServiceMonitor
Direct Known Subclasses:
JDBCQueryMonitor, JDBCStoredProcedureMonitor

@Distributable
public class JDBCMonitor
extends IPv4Monitor

This class implements a basic JDBC monitoring framework; The idea is than these tests doesn't take too long (or too much resources to run) and provide the basic healt information about the polled server. See src/services/org/opennms/netmgt/poller OpenNMS plugin information at OpenNMS developer site

Since:
0.1
Version:
$Id: $
Author:
Jose Vicente Nunez Zuleta (josevnz@users.sourceforge.net) - RHCE, SJCD, SJCP version 0.1 - 07/23/2002 * version 0.2 - 08/05/2002 -- Added retry logic, input validations to poller.

Field Summary
static int DEFAULT_RETRY
          Default number of times to retry a test
static int DEFAULT_TIMEOUT
          Number of miliseconds to wait before timing out a database login using JDBC Hint: 1 minute is 6000 miliseconds.
 
Constructor Summary
JDBCMonitor()
          Class constructor.
 
Method Summary
 PollStatus checkDatabaseStatus(Connection con, Map<String,Object> parameters)
          checkDatabaseStatus
protected  void closeStmt(Statement statement)
          closeStmt
 void initialize(Map<String,Object> parameters)
           This method is called after the framework creates an instance of the plug-in.
 void initialize(MonitoredService svc)
          This method is called when an interface that support the service is added to the scheduling service.
 PollStatus poll(MonitoredService svc, Map<String,Object> parameters)
           This method is the heart of the plug-in monitor.
 void release()
          Release any used services by the plugin,normally during framework exit For now this method is just an 'adaptor', does nothing
 void release(MonitoredService svc)
           This method is the called whenever an interface is being removed from the scheduler.
 
Methods inherited from class org.opennms.netmgt.poller.monitors.IPv4Monitor
log, logDown, logDown, logUp
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_TIMEOUT

public static final int DEFAULT_TIMEOUT
Number of miliseconds to wait before timing out a database login using JDBC Hint: 1 minute is 6000 miliseconds.

See Also:
Constant Field Values

DEFAULT_RETRY

public static final int DEFAULT_RETRY
Default number of times to retry a test

See Also:
Constant Field Values
Constructor Detail

JDBCMonitor

public JDBCMonitor()
            throws ClassNotFoundException,
                   InstantiationException,
                   IllegalAccessException
Class constructor.

Throws:
ClassNotFoundException - if any.
InstantiationException - if any.
IllegalAccessException - if any.
Method Detail

initialize

public void initialize(Map<String,Object> parameters)

This method is called after the framework creates an instance of the plug-in. The framework passes the object a proxy object that can be used to retrieve configuration information specific to the plug-in. Additionally, any parameters for the plug-in from the package definition are passed using the parameters element.

If there is a critical error, like missing service libraries, the the Monitor may throw a ServiceMonitorException. If the plug-in throws an exception then the plug-in will be disabled in the framework.

This method is called after the framework creates an instance of the plug-in. The framework passes the object a proxy object that can be used to retreive configuration information specific to the plug-in. Additionally, any parameters for the plug-in from the package definition are passed using the parameters element.

If there is a critical error, like missing service libraries, the the montior may throw a ServiceMonitorException. If the plug-in throws an exception then the plug-in will be disabled in the framework.

This method is called after the framework loads the plugin.

Specified by:
initialize in interface ServiceMonitor
Overrides:
initialize in class IPv4Monitor
Parameters:
parameters - Not currently used

release

public void release()
Release any used services by the plugin,normally during framework exit For now this method is just an 'adaptor', does nothing

Specified by:
release in interface ServiceMonitor
Overrides:
release in class IPv4Monitor
Throws:
RuntimeException - Thrown if an error occurs during deallocation.

initialize

public void initialize(MonitoredService svc)
This method is called when an interface that support the service is added to the scheduling service.

Specified by:
initialize in interface ServiceMonitor
Overrides:
initialize in class IPv4Monitor
Parameters:
svc - a MonitoredService object.
Throws:
RuntimeException - Thrown if an unrecoverable error occurs that prevents the interface from being monitored.
NetworkInterfaceNotSupportedException - Thrown if the passed interface is invalid for this monitor.

release

public void release(MonitoredService svc)

This method is the called whenever an interface is being removed from the scheduler. For example, if a service is determined as being no longer supported then this method will be invoked to cleanup any information associated with this device. This gives the implementor of the interface the ability to serialize any data prior to the interface being discarded.

If an exception is thrown during the release the exception will be logged, but the interface will still be discarded for garbage collection.

This method is the called whenever an interface is being removed from the scheduler. For example, if a service is determined as being no longer supported then this method will be invoked to cleanup any information associated with this device. This gives the implementor of the interface the ability to serialize any data prior to the interface being discarded.

If an exception is thrown during the release the exception will be logged, but the interface will still be discarded for garbage collection.

This method is the called whenever an interface is being removed from the scheduler. For now this method is just an 'adaptor', does nothing

Specified by:
release in interface ServiceMonitor
Overrides:
release in class IPv4Monitor
Parameters:
svc - TODO

poll

public PollStatus poll(MonitoredService svc,
                       Map<String,Object> parameters)

This method is the heart of the plug-in monitor. Each time an interface requires a check to be performed as defined by the scheduler the poll method is invoked. The poll is passed the interface to check

By default when the status transition from up to down or vice versa the framework will generate an event. Additionally, if the polling interval changes due to an extended unavailability, the framework will generate an additional down event. The plug-in can suppress the generation of the default events by setting the suppress event bit in the returned integer.

Network interface to poll for a given service. Make sure you're using the latest (at least 5.5) JConnect version or the plugin will not be able to tell exactly if the service is up or not.

Specified by:
poll in interface ServiceMonitor
Specified by:
poll in class IPv4Monitor
Parameters:
svc - TODO
parameters - The package parameters (timeout, retry, etc...) to be used for this poll.
Returns:
The availability of the interface and if a transition event should be suppressed.
See Also:
org.opennms.netmgt.poller.ServiceMonitor#SERVICE_AVAILABLE, org.opennms.netmgt.poller.ServiceMonitor#SERVICE_UNAVAILABLE, org.opennms.netmgt.poller.ServiceMonitor#SERVICE_UNRESPONSIVE, org.opennms.netmgt.poller.ServiceMonitor#SERVICE_AVAILABLE, org.opennms.netmgt.poller.ServiceMonitor#SERVICE_UNAVAILABLE, org.opennms.netmgt.poller.ServiceMonitor#SERVICE_UNRESPONSIVE, org.opennms.netmgt.poller.ServiceMonitor#SERVICE_AVAILABLE, org.opennms.netmgt.poller.ServiceMonitor#SERVICE_UNAVAILABLE, org.opennms.netmgt.poller.ServiceMonitor#SERVICE_UNRESPONSIVE, Error codes for JConnect

closeStmt

protected void closeStmt(Statement statement)

closeStmt

Parameters:
statement - a Statement object.

checkDatabaseStatus

public PollStatus checkDatabaseStatus(Connection con,
                                      Map<String,Object> parameters)

checkDatabaseStatus

Parameters:
con - a Connection object.
parameters - a Map object.
Returns:
a PollStatus object.


Copyright © 2011. All Rights Reserved.