Author: tomdz
Date: Thu Sep 15 00:44:58 2005
New Revision: 289172
URL: http://svn.apache.org/viewcvs?rev=289172&view=rev
Log:
Added detailed logging regarding the connection handling
Modified:
db/ddlutils/trunk/src/java/org/apache/ddlutils/util/JdbcSupport.java
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/util/JdbcSupport.java
URL:
http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/util/JdbcSupport.java?rev=289172&r1=289171&r2=289172&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/util/JdbcSupport.java
(original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/util/JdbcSupport.java Thu
Sep 15 00:44:58 2005
@@ -19,6 +19,8 @@
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
+import java.util.HashSet;
+import java.util.Iterator;
import javax.sql.DataSource;
@@ -36,11 +38,12 @@
*/
public abstract class JdbcSupport
{
-
/** The Log to which logging calls will be made. */
- private final Log _log = LogFactory.getLog(getClass());
+ private final Log _log = LogFactory.getLog(JdbcSupport.class);
/** The data source */
private DataSource _dataSource;
+ /** The names of the currently borrowed connections (for debugging) */
+ private HashSet _openConnectionNames = new HashSet();
/**
* Creates a new instance without a data source.
@@ -95,7 +98,16 @@
{
try
{
- return getDataSource().getConnection();
+ Connection connection = getDataSource().getConnection();
+
+ if (_log.isDebugEnabled())
+ {
+ String connName = connection.toString();
+
+ _log.debug("Borrowed connection "+connName+" from data
source");
+ _openConnectionNames.add(connName);
+ }
+ return connection;
}
catch (SQLException ex)
{
@@ -114,6 +126,31 @@
{
if ((connection != null) && !connection.isClosed())
{
+ if (_log.isDebugEnabled())
+ {
+ String connName = connection.toString();
+
+ _openConnectionNames.remove(connName);
+
+ StringBuffer logMsg = new StringBuffer();
+
+ logMsg.append("Returning connection ");
+ logMsg.append(connName);
+ logMsg.append(" to data source.\nRemaining connections:");
+ if (_openConnectionNames.isEmpty())
+ {
+ logMsg.append(" None");
+ }
+ else
+ {
+ for (Iterator it = _openConnectionNames.iterator();
it.hasNext();)
+ {
+ logMsg.append("\n ");
+ logMsg.append(it.next().toString());
+ }
+ }
+ _log.debug(logMsg.toString());
+ }
connection.close();
}
}