Package org.logicalcobwebs.proxool
Class Prototyper
- java.lang.Object
-
- org.logicalcobwebs.proxool.Prototyper
-
public class Prototyper extends java.lang.Object
Responsible for prototyping connections for all pools- Since:
- Proxool 0.8
- Version:
- $Revision: 1.14 $, $Date: 2006/03/23 11:44:57 $
- Author:
- bill, $Author: billhorsman $ (current maintainer)
-
-
Constructor Summary
Constructors Constructor Description Prototyper(org.logicalcobwebs.proxool.ConnectionPool connectionPool)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ProxyConnection
buildConnection(int status, java.lang.String creator)
Build a new connectionvoid
cancel()
Cancel all current prototypingprotected void
checkSimultaneousBuildThrottle()
Checks whether we are currently already building too many connectionsprotected void
connectionRemoved()
This needs to be called _everytime_ a connection is removed.java.lang.String
getAlias()
The alias of the pool we are prototyping forlong
getConnectionCount()
The total number of connections, including those being built right nowprotected boolean
isSweepNeeded()
void
quickRefuse()
Give a quick answer to whether we should attempt to build a connection.protected boolean
sweep()
Trigger prototyping immediatelyprotected void
triggerSweep()
-
-
-
Method Detail
-
isSweepNeeded
protected boolean isSweepNeeded()
-
triggerSweep
protected void triggerSweep()
-
sweep
protected boolean sweep()
Trigger prototyping immediately- Returns:
- true if something was prototyped
-
buildConnection
protected ProxyConnection buildConnection(int status, java.lang.String creator) throws java.sql.SQLException, ProxoolException
Build a new connection- Parameters:
status
- the initial status it will be created as (this allows us to create it asACTIVE
and avoid another thread grabbing it before we can)creator
- for log audit- Returns:
- the new connection
- Throws:
java.sql.SQLException
ProxoolException
-
connectionRemoved
protected void connectionRemoved()
This needs to be called _everytime_ a connection is removed.
-
checkSimultaneousBuildThrottle
protected void checkSimultaneousBuildThrottle() throws java.sql.SQLException
Checks whether we are currently already building too many connections- Throws:
java.sql.SQLException
- if the throttle has been reached
-
getConnectionCount
public long getConnectionCount()
The total number of connections, including those being built right now- Returns:
- connectionCount;
-
cancel
public void cancel()
Cancel all current prototyping
-
getAlias
public java.lang.String getAlias()
The alias of the pool we are prototyping for- Returns:
- alias
-
quickRefuse
public void quickRefuse() throws java.sql.SQLException
Give a quick answer to whether we should attempt to build a connection. This can be quicker if we are massively overloaded rather than cycling through each connection in the pool to see if it's free- Throws:
java.sql.SQLException
- if it is a waste of time even trying to get a connaction. Just because this method doesn't throw an exception it doesn't guarantee that one will be available. There is a slight risk that we might tell the client to give up when a connection could become available in the next few milliseconds but our policy is to refuse connections quickly when overloaded.
-
-