org.w3c.tools.jdbc
Class ConnectionManager

java.lang.Object
  extended by org.w3c.tools.jdbc.ConnectionManager
All Implemented Interfaces:
PropertyMonitoring

public class ConnectionManager
extends java.lang.Object
implements PropertyMonitoring


Field Summary
protected  java.util.Comparator conn_comparator
           
protected  int conn_count
           
protected  int conn_max
           
protected  int conn2free
           
protected  LRUList connectionsLru
          The LRU list of idle connections.
static boolean debug
           
protected  int state
           
static int STATE_CHANGED
           
static int STATE_UNCHANGED
           
protected  java.util.LinkedList usedConnections
          The LRU list of used connection
static long WAIT_TIMEOUT
           
 
Method Summary
protected  JdbcConnection allocateConnection(JdbcServer server)
          Connections management - Allocate a new connection for this server.
protected  void deleteConnection(JdbcConnection conn)
           
protected  void freeConnections()
          PANIC, we need to close some used connection.
protected  JdbcConnection getConnection(JdbcServer server)
          Get a connection to the given server.
static ConnectionManager getManager()
           
static ConnectionManager getManager(java.util.Properties p)
          Get an instance of the Jdbc manager.
protected  boolean negotiateConnection(JdbcServer server)
           
protected  void notifyConnection(JdbcConnection conn)
          A new connection has just been created.
 void notifyIdle(JdbcConnection conn)
          The given connection can be reused, but is now idle.
 void notifyUse(JdbcConnection conn)
          The given connection is about to be used.
 boolean propertyChanged(java.lang.String name)
          PropertyMonitoring implementation.
protected  void waitForConnection(JdbcServer server)
          Wait for a connection to come up.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

WAIT_TIMEOUT

public static final long WAIT_TIMEOUT
See Also:
Constant Field Values

debug

public static final boolean debug
See Also:
Constant Field Values

STATE_UNCHANGED

public static final int STATE_UNCHANGED
See Also:
Constant Field Values

STATE_CHANGED

public static final int STATE_CHANGED
See Also:
Constant Field Values

state

protected int state

conn_count

protected int conn_count

conn_max

protected int conn_max

conn2free

protected int conn2free

connectionsLru

protected LRUList connectionsLru
The LRU list of idle connections.


usedConnections

protected java.util.LinkedList usedConnections
The LRU list of used connection


conn_comparator

protected java.util.Comparator conn_comparator
Method Detail

propertyChanged

public boolean propertyChanged(java.lang.String name)
PropertyMonitoring implementation.

Specified by:
propertyChanged in interface PropertyMonitoring
Parameters:
name - The name of the property that changed.
Returns:
A boolean, if true, accept the new property value, otherwise, reject it and reset the property to its old value.

getConnection

protected JdbcConnection getConnection(JdbcServer server)
Get a connection to the given server.

Parameters:
server - the jdbc server.
Returns:
a JdbcConnection or null if there is no connection available.

freeConnections

protected void freeConnections()
PANIC, we need to close some used connection.


allocateConnection

protected JdbcConnection allocateConnection(JdbcServer server)
Connections management - Allocate a new connection for this server.

Parameters:
server - the JdbcServer
Returns:
a newly created connection or null

negotiateConnection

protected boolean negotiateConnection(JdbcServer server)

deleteConnection

protected void deleteConnection(JdbcConnection conn)

notifyConnection

protected void notifyConnection(JdbcConnection conn)
A new connection has just been created.

Parameters:
conn - the new connection

notifyUse

public void notifyUse(JdbcConnection conn)
The given connection is about to be used. Update our list of available servers.

Parameters:
conn - The idle connection.

notifyIdle

public void notifyIdle(JdbcConnection conn)
The given connection can be reused, but is now idle.

Parameters:
conn - The connection that is now idle.

waitForConnection

protected void waitForConnection(JdbcServer server)
                          throws java.lang.InterruptedException
Wait for a connection to come up.

Parameters:
server, - the target server.
Throws:
java.lang.InterruptedException - If interrupted..

getManager

public static ConnectionManager getManager(java.util.Properties p)
Get an instance of the Jdbc manager. This method returns an actual instance of the Jdbc manager. It may return different managers, if it decides to distribute the load on different managers (avoid the ConnectionManager being a bottleneck).

Returns:
An application wide instance of the Jdbc manager.

getManager

public static ConnectionManager getManager()