com.ibatis.db.jdbc
Class SimpleDataSource
java.lang.Object
com.ibatis.db.jdbc.SimpleDataSource
- All Implemented Interfaces:
- javax.sql.DataSource
public class SimpleDataSource
- extends java.lang.Object
- implements javax.sql.DataSource
This is a simple, synchronous, thread-safe database connection pool.
REQUIRED PROPERTIES
-------------------
JDBC.Driver
JDBC.ConnectionURL
JDBC.Username
JDBC.Password
Pool.MaximumActiveConnections
Pool.MaximumIdleConnections
Pool.MaximumCheckoutTime
Pool.TimeToWait
Pool.PingQuery
Pool.PingEnabled
Pool.PingConnectionsOlderThan
Pool.PingConnectionsNotUsedFor
Pool.QuietMode
Nested Class Summary |
private static class |
SimpleDataSource.SimplePooledConnection
---------------------------------------------------------------------------------------
SimplePooledConnection
--------------------------------------------------------------------------------------- |
Methods inherited from class java.lang.Object |
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
log
private static final org.apache.commons.logging.Log log
PROP_JDBC_DRIVER
private static final java.lang.String PROP_JDBC_DRIVER
- See Also:
- Constant Field Values
PROP_JDBC_URL
private static final java.lang.String PROP_JDBC_URL
- See Also:
- Constant Field Values
PROP_JDBC_USERNAME
private static final java.lang.String PROP_JDBC_USERNAME
- See Also:
- Constant Field Values
PROP_JDBC_PASSWORD
private static final java.lang.String PROP_JDBC_PASSWORD
- See Also:
- Constant Field Values
PROP_JDBC_DEFAULT_AUTOCOMMIT
private static final java.lang.String PROP_JDBC_DEFAULT_AUTOCOMMIT
- See Also:
- Constant Field Values
PROP_POOL_MAX_ACTIVE_CONN
private static final java.lang.String PROP_POOL_MAX_ACTIVE_CONN
- See Also:
- Constant Field Values
PROP_POOL_MAX_IDLE_CONN
private static final java.lang.String PROP_POOL_MAX_IDLE_CONN
- See Also:
- Constant Field Values
PROP_POOL_MAX_CHECKOUT_TIME
private static final java.lang.String PROP_POOL_MAX_CHECKOUT_TIME
- See Also:
- Constant Field Values
PROP_POOL_TIME_TO_WAIT
private static final java.lang.String PROP_POOL_TIME_TO_WAIT
- See Also:
- Constant Field Values
PROP_POOL_PING_QUERY
private static final java.lang.String PROP_POOL_PING_QUERY
- See Also:
- Constant Field Values
PROP_POOL_PING_CONN_OLDER_THAN
private static final java.lang.String PROP_POOL_PING_CONN_OLDER_THAN
- See Also:
- Constant Field Values
PROP_POOL_PING_ENABLED
private static final java.lang.String PROP_POOL_PING_ENABLED
- See Also:
- Constant Field Values
PROP_POOL_QUIET_MODE
private static final java.lang.String PROP_POOL_QUIET_MODE
- See Also:
- Constant Field Values
PROP_POOL_PING_CONN_NOT_USED_FOR
private static final java.lang.String PROP_POOL_PING_CONN_NOT_USED_FOR
- See Also:
- Constant Field Values
expectedConnectionTypeCode
private int expectedConnectionTypeCode
ADD_DRIVER_PROPS_PREFIX
private static final java.lang.String ADD_DRIVER_PROPS_PREFIX
- See Also:
- Constant Field Values
ADD_DRIVER_PROPS_PREFIX_LENGTH
private static final int ADD_DRIVER_PROPS_PREFIX_LENGTH
POOL_LOCK
private static final java.lang.Object POOL_LOCK
idleConnections
private java.util.List idleConnections
activeConnections
private java.util.List activeConnections
requestCount
private long requestCount
accumulatedRequestTime
private long accumulatedRequestTime
accumulatedCheckoutTime
private long accumulatedCheckoutTime
claimedOverdueConnectionCount
private long claimedOverdueConnectionCount
accumulatedCheckoutTimeOfOverdueConnections
private long accumulatedCheckoutTimeOfOverdueConnections
accumulatedWaitTime
private long accumulatedWaitTime
hadToWaitCount
private long hadToWaitCount
badConnectionCount
private long badConnectionCount
jdbcDriver
private java.lang.String jdbcDriver
jdbcUrl
private java.lang.String jdbcUrl
jdbcUsername
private java.lang.String jdbcUsername
jdbcPassword
private java.lang.String jdbcPassword
jdbcDefaultAutoCommit
private boolean jdbcDefaultAutoCommit
driverProps
private java.util.Properties driverProps
useDriverProps
private boolean useDriverProps
poolMaximumActiveConnections
private int poolMaximumActiveConnections
poolMaximumIdleConnections
private int poolMaximumIdleConnections
poolMaximumCheckoutTime
private int poolMaximumCheckoutTime
poolTimeToWait
private int poolTimeToWait
poolPingQuery
private java.lang.String poolPingQuery
poolQuietMode
private boolean poolQuietMode
poolPingEnabled
private boolean poolPingEnabled
poolPingConnectionsOlderThan
private int poolPingConnectionsOlderThan
poolPingConnectionsNotUsedFor
private int poolPingConnectionsNotUsedFor
SimpleDataSource
public SimpleDataSource(java.util.Map props)
initialize
private void initialize(java.util.Map props)
assembleConnectionTypeCode
private int assembleConnectionTypeCode(java.lang.String url,
java.lang.String username,
java.lang.String password)
getConnection
public java.sql.Connection getConnection()
throws java.sql.SQLException
- Specified by:
getConnection
in interface javax.sql.DataSource
- Throws:
java.sql.SQLException
getConnection
public java.sql.Connection getConnection(java.lang.String username,
java.lang.String password)
throws java.sql.SQLException
- Specified by:
getConnection
in interface javax.sql.DataSource
- Throws:
java.sql.SQLException
setLoginTimeout
public void setLoginTimeout(int loginTimeout)
throws java.sql.SQLException
- Specified by:
setLoginTimeout
in interface javax.sql.DataSource
- Throws:
java.sql.SQLException
getLoginTimeout
public int getLoginTimeout()
throws java.sql.SQLException
- Specified by:
getLoginTimeout
in interface javax.sql.DataSource
- Throws:
java.sql.SQLException
setLogWriter
public void setLogWriter(java.io.PrintWriter logWriter)
throws java.sql.SQLException
- Specified by:
setLogWriter
in interface javax.sql.DataSource
- Throws:
java.sql.SQLException
getLogWriter
public java.io.PrintWriter getLogWriter()
throws java.sql.SQLException
- Specified by:
getLogWriter
in interface javax.sql.DataSource
- Throws:
java.sql.SQLException
getPoolPingConnectionsNotUsedFor
public int getPoolPingConnectionsNotUsedFor()
getJdbcDriver
public java.lang.String getJdbcDriver()
getJdbcUrl
public java.lang.String getJdbcUrl()
getJdbcUsername
public java.lang.String getJdbcUsername()
getJdbcPassword
public java.lang.String getJdbcPassword()
getPoolMaximumActiveConnections
public int getPoolMaximumActiveConnections()
getPoolMaximumIdleConnections
public int getPoolMaximumIdleConnections()
getPoolMaximumCheckoutTime
public int getPoolMaximumCheckoutTime()
getPoolTimeToWait
public int getPoolTimeToWait()
getPoolPingQuery
public java.lang.String getPoolPingQuery()
isPoolPingEnabled
public boolean isPoolPingEnabled()
getPoolPingConnectionsOlderThan
public int getPoolPingConnectionsOlderThan()
isPoolQuietMode
public boolean isPoolQuietMode()
log
private void log(java.lang.Object o)
setPoolQuietMode
public void setPoolQuietMode(boolean poolQuietMode)
getExpectedConnectionTypeCode
private int getExpectedConnectionTypeCode()
getRequestCount
public long getRequestCount()
getAverageRequestTime
public long getAverageRequestTime()
getAverageWaitTime
public long getAverageWaitTime()
getHadToWaitCount
public long getHadToWaitCount()
getBadConnectionCount
public long getBadConnectionCount()
getClaimedOverdueConnectionCount
public long getClaimedOverdueConnectionCount()
getAverageOverdueCheckoutTime
public long getAverageOverdueCheckoutTime()
getAverageCheckoutTime
public long getAverageCheckoutTime()
getStatus
public java.lang.String getStatus()
forceCloseAll
public void forceCloseAll()
pushConnection
private void pushConnection(SimpleDataSource.SimplePooledConnection conn)
throws java.sql.SQLException
- Throws:
java.sql.SQLException
popConnection
private SimpleDataSource.SimplePooledConnection popConnection(java.lang.String username,
java.lang.String password)
throws java.sql.SQLException
- Throws:
java.sql.SQLException
pingConnection
private boolean pingConnection(SimpleDataSource.SimplePooledConnection conn)
unwrapConnection
public static java.sql.Connection unwrapConnection(java.sql.Connection conn)
finalize
protected void finalize()
throws java.lang.Throwable
- Overrides:
finalize
in class java.lang.Object
- Throws:
java.lang.Throwable