|
From: <one...@us...> - 2003-01-03 22:47:33
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/connection
In directory sc8-pr-cvs1:/tmp/cvs-serv27930/src/net/sf/hibernate/connection
Modified Files:
DriverManagerConnectionProvider.java
Log Message:
added some logging to JDBC pools
Index: DriverManagerConnectionProvider.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/connection/DriverManagerConnectionProvider.java,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** DriverManagerConnectionProvider.java 1 Jan 2003 13:54:10 -0000 1.1.1.1
--- DriverManagerConnectionProvider.java 3 Jan 2003 22:47:24 -0000 1.2
***************
*** 2,17 ****
package net.sf.hibernate.connection;
! import java.sql.*;
import java.util.Iterator;
import java.util.Properties;
- import java.util.Stack;
-
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
! import net.sf.hibernate.*;
import net.sf.hibernate.util.JDBCExceptionReporter;
import net.sf.hibernate.util.PropertiesHelper;
/**
* A connection provider that uses <tt>java.sql.DriverManager</tt>. This provider
--- 2,20 ----
package net.sf.hibernate.connection;
! import java.sql.Connection;
! import java.sql.DriverManager;
! import java.sql.SQLException;
! import java.util.ArrayList;
import java.util.Iterator;
import java.util.Properties;
! import net.sf.hibernate.Environment;
! import net.sf.hibernate.HibernateException;
import net.sf.hibernate.util.JDBCExceptionReporter;
import net.sf.hibernate.util.PropertiesHelper;
+ import org.apache.commons.logging.Log;
+ import org.apache.commons.logging.LogFactory;
+
/**
* A connection provider that uses <tt>java.sql.DriverManager</tt>. This provider
***************
*** 24,29 ****
private Properties connectionProps;
private Integer isolation;
! private final Stack cache = new Stack();
private int poolSize;
private static final Log log = LogFactory.getLog(DriverManagerConnectionProvider.class);
--- 27,33 ----
private Properties connectionProps;
private Integer isolation;
! private final ArrayList pool = new ArrayList();
private int poolSize;
+ private int checkedOut = 0;
private static final Log log = LogFactory.getLog(DriverManagerConnectionProvider.class);
***************
*** 35,39 ****
poolSize = PropertiesHelper.getInt(Environment.POOL_SIZE, props, 20); //default pool size 20
log.info("Hibernate connection pool size: " + poolSize);
!
isolation = PropertiesHelper.getInteger(Environment.ISOLATION, props);
if (isolation!=null)
--- 39,43 ----
poolSize = PropertiesHelper.getInt(Environment.POOL_SIZE, props, 20); //default pool size 20
log.info("Hibernate connection pool size: " + poolSize);
!
isolation = PropertiesHelper.getInteger(Environment.ISOLATION, props);
if (isolation!=null)
***************
*** 41,45 ****
if (driverClass==null) {
! log.warn("No JDBC Driver class was specified by property " + Environment.DRIVER);
}
else {
--- 45,49 ----
if (driverClass==null) {
! log.warn("no JDBC Driver class was specified by property " + Environment.DRIVER);
}
else {
***************
*** 63,80 ****
connectionProps = ConnectionProviderFactory.getJdbcConnectionProperties(props);
! log.info( "Using driver: " + driverClass + " at URL: " + url );
! log.info("Connection properties: " + connectionProps);
}
public Connection getConnection() throws SQLException {
! synchronized (cache) {
! if ( !cache.isEmpty() ) {
! log.trace("Using cached JDBC connection");
! return (Connection) cache.pop();
}
}
! log.debug("Opening new JDBC connection");
Connection conn;
try {
--- 67,91 ----
connectionProps = ConnectionProviderFactory.getJdbcConnectionProperties(props);
! log.info( "using driver: " + driverClass + " at URL: " + url );
! log.info("connection properties: " + connectionProps);
}
public Connection getConnection() throws SQLException {
!
! if ( log.isTraceEnabled() ) log.trace( "total checked-out connections: " + checkedOut );
!
! synchronized (pool) {
! if ( !pool.isEmpty() ) {
! int last = pool.size() - 1;
! if ( log.isTraceEnabled() ) {
! log.trace("using pooled JDBC connection, pool size: " + last);
! checkedOut++;
! }
! return (Connection) pool.remove(last);
}
}
! log.debug("opening new JDBC connection");
Connection conn;
try {
***************
*** 87,91 ****
throw sqle;
}
! if ( log.isDebugEnabled() ) log.debug( "Created connection to: " + url + ", Isolation Level: " + conn.getTransactionIsolation() );
return conn;
}
--- 98,107 ----
throw sqle;
}
!
! if ( log.isDebugEnabled() ) {
! log.debug( "created connection to: " + url + ", Isolation Level: " + conn.getTransactionIsolation() );
! }
! if ( log.isTraceEnabled() ) checkedOut++;
!
return conn;
}
***************
*** 93,105 ****
public void closeConnection(Connection conn) throws SQLException {
! synchronized (cache) {
! if ( cache.size() < poolSize ) {
! log.trace("returning connection to pool");
! cache.push(conn);
return;
}
}
! log.debug("Closing JDBC connection");
try {
--- 109,124 ----
public void closeConnection(Connection conn) throws SQLException {
! if ( log.isDebugEnabled() ) checkedOut--;
!
! synchronized (pool) {
! int currentSize = pool.size();
! if ( currentSize < poolSize ) {
! if ( log.isTraceEnabled() ) log.trace("returning connection to pool, pool size: " + (currentSize + 1) );
! pool.add(conn);
return;
}
}
! log.debug("closing JDBC connection");
try {
***************
*** 118,124 ****
protected void finalize() {
! log.info("Cleaning up dereferenced connection pool: " + url);
! Iterator iter = cache.iterator();
while ( iter.hasNext() ) {
try {
--- 137,143 ----
protected void finalize() {
! log.info("cleaning up dereferenced connection pool: " + url);
! Iterator iter = pool.iterator();
while ( iter.hasNext() ) {
try {
|