Hyperic HQ Plugin API v. 4.4.0.2

org.hyperic.hq.product
Class JDBCMeasurementPlugin

java.lang.Object
  extended by org.hyperic.hq.product.GenericPlugin
      extended by org.hyperic.hq.product.MeasurementPlugin
          extended by org.hyperic.hq.product.JDBCMeasurementPlugin

public abstract class JDBCMeasurementPlugin
extends MeasurementPlugin

Base class for JDBC measurement plugins. Abstracts the JDBC connection and query functionality.


Field Summary
protected  java.lang.String _sqlLog
           
protected static java.lang.String AVAIL_ATTR
           
static int COL_INVALID
           
static java.lang.String PROP_INDEX
           
static java.lang.String PROP_PASSWORD
           
static java.lang.String PROP_TABLE
           
static java.lang.String PROP_URL
           
static java.lang.String PROP_USER
           
 
Fields inherited from class org.hyperic.hq.product.MeasurementPlugin
PROP_TEMPLATE_CONFIG, TYPE_COLLECTOR
 
Fields inherited from class org.hyperic.hq.product.GenericPlugin
config, FILE_DELIM, FILE_DELIM_ESC, PROP_NAME
 
Constructor Summary
JDBCMeasurementPlugin()
           
 
Method Summary
protected  java.sql.Connection getCachedConnection(Metric metric)
           
protected  java.sql.Connection getCachedConnection(java.lang.String url, java.lang.String user, java.lang.String pass)
           
protected  int getColumn(Metric jdsn)
          The column in the ResultSet that holds the measurement value.
protected  java.lang.String getColumnName(Metric jdsn)
           
 ConfigSchema getConfigSchema(TypeInfo info, ConfigResponse config)
          Config schema includes jdbc URL, database username and password.
protected abstract  java.sql.Connection getConnection(java.lang.String url, java.lang.String user, java.lang.String password)
          The plugin must preform the DriverManager.getConnection so its ClassLoader is used to find the driver.
protected abstract  java.lang.String getDefaultURL()
           
protected abstract  void getDriver()
          The plugin must preform the Class.forName so its ClassLoader is used to find the driver.
static java.util.Properties getJDBCConnectionProperties(java.lang.String user, java.lang.String password)
          Utility method that returns an instance of Properties containing the given user and password keys.
protected abstract  java.lang.String getQuery(Metric jdsn)
           
protected  double getQueryValue(Metric jdsn)
          Do the database query returned by the getQuery() method and return the result.
protected  double getQueryValue(Metric jdsn, boolean logSql)
           
 MetricValue getValue(Metric metric)
          Dispatches to getQueryValue()
 void init(PluginManager manager)
          Verifies that JDBC driver returned by the getDriver() method can be loaded by the plugin.
protected abstract  void initQueries()
           
protected  void processColumnHeader(java.sql.ResultSetMetaData md)
           
protected  void processColumns(java.sql.ResultSet rs)
           
protected  void removeCachedConnection(java.lang.String url, java.lang.String user, java.lang.String pass)
           
protected  void setData(java.sql.ResultSet rs)
           
 void shutdown()
          Close any cached connections.
 
Methods inherited from class org.hyperic.hq.product.MeasurementPlugin
getCollectorProperties, getHelp, getManager, getMeasurementProperties, getMeasurements, getNewCollector, getPlatformHelpProperties, getPluginXMLHelp, translate
 
Methods inherited from class org.hyperic.hq.product.GenericPlugin
adjustClassPath, configure, getAbsoluteFiles, getConfig, getConfig, getCustomPropertiesSchema, getCustomPropertiesSchema, getCustomPropertiesSchema, getDefaultInstallPath, getLog, getLogName, getManagerProperty, getName, getPlatformName, getPluginClassName, getPluginData, getPluginProperty, getProductPlugin, getProperties, getScriptExtension, getScriptExtension, getScriptExtension, getTypeInfo, getTypeNameProperty, getTypeNameProperty, getTypeProperties, getTypeProperty, getTypeProperty, getTypeProperty, isNetStatEnabled, isWin32, openResource, setData, setName, setTypeInfo, toFileList
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

AVAIL_ATTR

protected static final java.lang.String AVAIL_ATTR
See Also:
Constant Field Values

PROP_URL

public static final java.lang.String PROP_URL
See Also:
Constant Field Values

PROP_USER

public static final java.lang.String PROP_USER
See Also:
Constant Field Values

PROP_PASSWORD

public static final java.lang.String PROP_PASSWORD
See Also:
Constant Field Values

PROP_TABLE

public static final java.lang.String PROP_TABLE
See Also:
Constant Field Values

PROP_INDEX

public static final java.lang.String PROP_INDEX
See Also:
Constant Field Values

COL_INVALID

public static final int COL_INVALID
See Also:
Constant Field Values

_sqlLog

protected java.lang.String _sqlLog
Constructor Detail

JDBCMeasurementPlugin

public JDBCMeasurementPlugin()
Method Detail

getConfigSchema

public ConfigSchema getConfigSchema(TypeInfo info,
                                    ConfigResponse config)
Config schema includes jdbc URL, database username and password. These values will be used to obtain a connection from DriverManager.getConnection.

Overrides:
getConfigSchema in class MeasurementPlugin
Parameters:
info - The TypeInfo of this plugin from ProductPlugin.getTypes
config - ConfigReponse of the parent resource (if any).
Returns:
ConfigSchema for this resource.

init

public void init(PluginManager manager)
          throws PluginException
Verifies that JDBC driver returned by the getDriver() method can be loaded by the plugin.

Overrides:
init in class MeasurementPlugin
Parameters:
manager - The plugin manager for this plugin type.
Throws:
PluginException

shutdown

public void shutdown()
              throws PluginException
Close any cached connections.

Overrides:
shutdown in class GenericPlugin
Throws:
PluginException

getValue

public MetricValue getValue(Metric metric)
                     throws PluginException,
                            MetricUnreachableException,
                            MetricInvalidException,
                            MetricNotFoundException
Dispatches to getQueryValue()

Overrides:
getValue in class MeasurementPlugin
Parameters:
metric - Value returned from translate(), representing a specific metric to retrieve
Returns:
The value of the Metric and timestamp of collection time
Throws:
PluginException - Thrown when an internal plugin error occurs
MetricUnreachableException - The monitored resource is unreachable. I.e. ConnectException
MetricInvalidException - The plugin is unable to use the metric, generally a developer bug where the template is malformed. I.e. JMX MalformedObjectNameException
MetricNotFoundException - The monitored resource does not know about the requested Metric. I.e. JMX AttributeNotFoundException

initQueries

protected abstract void initQueries()

getQuery

protected abstract java.lang.String getQuery(Metric jdsn)

getDriver

protected abstract void getDriver()
                           throws java.lang.ClassNotFoundException
The plugin must preform the Class.forName so its ClassLoader is used to find the driver.

Throws:
java.lang.ClassNotFoundException

getConnection

protected abstract java.sql.Connection getConnection(java.lang.String url,
                                                     java.lang.String user,
                                                     java.lang.String password)
                                              throws java.sql.SQLException
The plugin must preform the DriverManager.getConnection so its ClassLoader is used to find the driver.

Throws:
java.sql.SQLException

getDefaultURL

protected abstract java.lang.String getDefaultURL()

getColumn

protected int getColumn(Metric jdsn)
The column in the ResultSet that holds the measurement value. For most plugins this will be 1, by some databases do not allow a ResultSet with a single column to be returned (see MySQL)


getColumnName

protected java.lang.String getColumnName(Metric jdsn)

getCachedConnection

protected java.sql.Connection getCachedConnection(Metric metric)
                                           throws java.sql.SQLException
Throws:
java.sql.SQLException

getCachedConnection

protected java.sql.Connection getCachedConnection(java.lang.String url,
                                                  java.lang.String user,
                                                  java.lang.String pass)
                                           throws java.sql.SQLException
Throws:
java.sql.SQLException

removeCachedConnection

protected void removeCachedConnection(java.lang.String url,
                                      java.lang.String user,
                                      java.lang.String pass)

getQueryValue

protected double getQueryValue(Metric jdsn)
                        throws MetricNotFoundException,
                               PluginException,
                               MetricUnreachableException
Do the database query returned by the getQuery() method and return the result. A cached connection will be used if one exists, otherwise the created connection will be cached for future use.

Throws:
MetricNotFoundException
PluginException
MetricUnreachableException

getQueryValue

protected double getQueryValue(Metric jdsn,
                               boolean logSql)
                        throws MetricNotFoundException,
                               PluginException,
                               MetricUnreachableException
Throws:
MetricNotFoundException
PluginException
MetricUnreachableException

setData

protected void setData(java.sql.ResultSet rs)
                throws java.sql.SQLException
Throws:
java.sql.SQLException

processColumnHeader

protected void processColumnHeader(java.sql.ResultSetMetaData md)
                            throws java.sql.SQLException
Throws:
java.sql.SQLException

processColumns

protected void processColumns(java.sql.ResultSet rs)
                       throws java.sql.SQLException
Throws:
java.sql.SQLException

getJDBCConnectionProperties

public static java.util.Properties getJDBCConnectionProperties(java.lang.String user,
                                                               java.lang.String password)
Utility method that returns an instance of Properties containing the given user and password keys. The Properties instance returned can be passed in as the info argument to DriverManager.getConnection(url, info).

Parameters:
user - the username for the JDBC connection
password - the password for the JDBC connection
Returns:
an instance of Properties containing the user and password JDBC Connection properties

Hyperic HQ Plugin API v. 4.4.0.2

Copyright © 2004-2006 Hyperic, Inc. support@hyperic.net, All Rights Reserved.