public abstract class

RrdDbPool

extends Object
java.lang.Object
   ↳ org.rrd4j.core.RrdDbPool
Known Direct Subclasses

Summary

Constants
int INITIAL_CAPACITY Initial capacity of the pool i.e.
Public Constructors
RrdDbPool()
Public Methods
abstract int getCapacity()
Returns the maximum number of simultaneously open RRD files.
static RrdDbPool getInstance()
Creates a single instance of the class on the first call, or returns already existing one.
abstract int getOpenCount(RrdDb rrdDb)
Returns the number of usage for a RRD.
abstract int getOpenCount(String path)
Returns the number of usage for a RRD.
abstract int getOpenFileCount()
Returns the number of open RRD files.
abstract String[] getOpenFiles()
Returns an array of open file names.
abstract void release(RrdDb rrdDb)
Releases RrdDb reference previously obtained from the pool.
abstract RrdDb requestRrdDb(String path)
Requests a RrdDb reference for the given RRD file path.
abstract RrdDb requestRrdDb(String path, String sourcePath)
Requests a RrdDb reference for the given path.
abstract RrdDb requestRrdDb(RrdDef rrdDef)
Requests a RrdDb reference for the given RRD file definition object.
abstract void setCapacity(int capacity)
Sets the maximum number of simultaneously open RRD files.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final int INITIAL_CAPACITY

Initial capacity of the pool i.e. maximum number of simultaneously open RRD files. The pool will never open too many RRD files at the same time.

Constant Value: 200 (0x000000c8)

Public Constructors

public RrdDbPool ()

Public Methods

public abstract int getCapacity ()

Returns the maximum number of simultaneously open RRD files.

Returns
  • maximum number of simultaneously open RRD files

public static RrdDbPool getInstance ()

Creates a single instance of the class on the first call, or returns already existing one. Uses Initialization On Demand Holder idiom.

Returns
  • Single instance of this class
Throws
RuntimeException Thrown if the default RRD backend is not derived from the RrdFileBackendFactory

public abstract int getOpenCount (RrdDb rrdDb)

Returns the number of usage for a RRD.

Parameters
rrdDb RrdDb reference for which informations is needed.
Returns
  • the number of request for this rrd
Throws
IOException

public abstract int getOpenCount (String path)

Returns the number of usage for a RRD.

Parameters
path RRD file for which informations is needed.
Returns
  • the number of request for this file
Throws
IOException

public abstract int getOpenFileCount ()

Returns the number of open RRD files.

Returns
  • Number of currently open RRD files held in the pool.

public abstract String[] getOpenFiles ()

Returns an array of open file names.

Returns
  • Array with canonical paths to open RRD files held in the pool.

public abstract void release (RrdDb rrdDb)

Releases RrdDb reference previously obtained from the pool. When a reference is released, its usage count is decremented by one. If usage count drops to zero, the underlying RRD file will be closed.

Parameters
rrdDb RrdDb reference to be returned to the pool
Throws
IOException Thrown in case of I/O error

public abstract RrdDb requestRrdDb (String path)

Requests a RrdDb reference for the given RRD file path.

  • If the file is already open, previously returned RrdDb reference will be returned. Its usage count will be incremented by one.
  • If the file is not already open and the number of already open RRD files is less than INITIAL_CAPACITY, the file will be open and a new RrdDb reference will be returned. If the file is not already open and the number of already open RRD files is equal to INITIAL_CAPACITY, the method blocks until some RRD file is closed.

Parameters
path Path to existing RRD file
Returns
  • reference for the give RRD file
Throws
IOException Thrown in case of I/O error

public abstract RrdDb requestRrdDb (String path, String sourcePath)

Requests a RrdDb reference for the given path. The file will be created from external data (from XML dump, RRD file or RRDTool's binary RRD file).

  • If the file with the path specified is already open, the method blocks until the file is closed.
  • If the file is not already open and the number of already open RRD files is less than INITIAL_CAPACITY, a new RRD file will be created and a its RrdDb reference will be returned. If the file is not already open and the number of already open RRD files is equal to INITIAL_CAPACITY, the method blocks until some RRD file is closed.

Parameters
path Path to RRD file which should be created
sourcePath Path to external data which is to be converted to Rrd4j's native RRD file format
Returns
  • Reference to the newly created RRD file
Throws
IOException Thrown in case of I/O error

public abstract RrdDb requestRrdDb (RrdDef rrdDef)

Requests a RrdDb reference for the given RRD file definition object.

  • If the file with the path specified in the RrdDef object is already open, the method blocks until the file is closed.
  • If the file is not already open and the number of already open RRD files is less than INITIAL_CAPACITY, a new RRD file will be created and a its RrdDb reference will be returned. If the file is not already open and the number of already open RRD files is equal to INITIAL_CAPACITY, the method blocks until some RRD file is closed.

Parameters
rrdDef Definition of the RRD file to be created
Returns
  • Reference to the newly created RRD file
Throws
IOException Thrown in case of I/O error

public abstract void setCapacity (int capacity)

Sets the maximum number of simultaneously open RRD files.

Parameters
capacity Maximum number of simultaneously open RRD files.