com.mchange.v2.c3p0
Class PoolBackedDataSource
java.lang.Object
com.mchange.v2.c3p0.impl.PoolBackedDataSourceBase
com.mchange.v2.c3p0.PoolBackedDataSource
- All Implemented Interfaces:
- javax.sql.DataSource, PooledDataSource, javax.naming.Referenceable, java.io.Serializable
- public final class PoolBackedDataSource
- extends com.mchange.v2.c3p0.impl.PoolBackedDataSourceBase
- implements PooledDataSource
- See Also:
- Serialized Form
Fields inherited from class com.mchange.v2.c3p0.impl.PoolBackedDataSourceBase |
pcs |
Methods inherited from class com.mchange.v2.c3p0.impl.PoolBackedDataSourceBase |
addPropertyChangeListener, getConnectionPoolDataSource, getFactoryClassLocation, getNumHelperThreads, getReference, removePropertyChangeListener, setConnectionPoolDataSource, setFactoryClassLocation, setNumHelperThreads, toString |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
PoolBackedDataSource
public PoolBackedDataSource()
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
getLogWriter
public java.io.PrintWriter getLogWriter()
throws java.sql.SQLException
- Specified by:
getLogWriter
in interface javax.sql.DataSource
- Throws:
java.sql.SQLException
setLogWriter
public void setLogWriter(java.io.PrintWriter out)
throws java.sql.SQLException
- Specified by:
setLogWriter
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
setLoginTimeout
public void setLoginTimeout(int seconds)
throws java.sql.SQLException
- Specified by:
setLoginTimeout
in interface javax.sql.DataSource
- Throws:
java.sql.SQLException
getNumConnections
public int getNumConnections()
throws java.sql.SQLException
- Specified by:
getNumConnections
in interface PooledDataSource
- Throws:
java.sql.SQLException
getNumIdleConnections
public int getNumIdleConnections()
throws java.sql.SQLException
- Specified by:
getNumIdleConnections
in interface PooledDataSource
- Throws:
java.sql.SQLException
getNumBusyConnections
public int getNumBusyConnections()
throws java.sql.SQLException
- Specified by:
getNumBusyConnections
in interface PooledDataSource
- Throws:
java.sql.SQLException
getNumConnections
public int getNumConnections(java.lang.String username,
java.lang.String password)
throws java.sql.SQLException
- Specified by:
getNumConnections
in interface PooledDataSource
- Throws:
java.sql.SQLException
getNumIdleConnections
public int getNumIdleConnections(java.lang.String username,
java.lang.String password)
throws java.sql.SQLException
- Specified by:
getNumIdleConnections
in interface PooledDataSource
- Throws:
java.sql.SQLException
getNumBusyConnections
public int getNumBusyConnections(java.lang.String username,
java.lang.String password)
throws java.sql.SQLException
- Specified by:
getNumBusyConnections
in interface PooledDataSource
- Throws:
java.sql.SQLException
getNumConnectionsAllAuths
public int getNumConnectionsAllAuths()
throws java.sql.SQLException
- Specified by:
getNumConnectionsAllAuths
in interface PooledDataSource
- Throws:
java.sql.SQLException
close
public void close()
- Description copied from interface:
PooledDataSource
C3P0 pooled DataSources use no resources before they are actually used in a VM,
and they close themselves in their finalize() method. When they are active and
pooling, they may have open database connections and their pool may spawn several threads
for its maintenance. You can use this method to clean these resource methods up quickly
when you will no longer be using this DataSource. The resources will actually be cleaned up only if
no other DataSources are sharing the same pool.
You can equivalently use the static method destroy() in the DataSources class to clean-up
these resources.
This is equivalent to calling close( false ).
- Specified by:
close
in interface PooledDataSource
- See Also:
DataSources.destroy(javax.sql.DataSource)
close
public void close(boolean force_destroy)
- Description copied from interface:
PooledDataSource
Should be used only with great caution. If force_destroy is set to true,
this immediately destroys any pool and cleans up all resources
this DataSource may be using, even if other DataSources are sharing that
pool! In general, it is difficult to know whether a pool is being shared by
multiple DataSources. It may depend upon whether or not a JNDI implementation returns
a single instance or multiple copies upon lookup (which is undefined by the JNDI spec).
In general, this method should be used only when you wish to wind down all c3p0 pools
in a ClassLoader. For example, when shutting down and restarting a web application
that uses c3p0, you may wish to kill all threads making use of classes loaded by a
web-app specific ClassLoader, so that the ClassLoader can be cleanly garbage collected.
In this case, you may wish to use force destroy. Otherwise, it is much safer to use
the simple destroy() method, which will not shut down pools that may still be in use.
To close a pool normally, use the no argument close method, or set force_destroy
to false.
- Specified by:
close
in interface PooledDataSource
- See Also:
PooledDataSource.close()