org.jboss.minerva.jdbc
Class ConnectionInPool

java.lang.Object
  |
  +--org.jboss.minerva.jdbc.ConnectionInPool
All Implemented Interfaces:
java.sql.Connection, ConnectionWrapper, PooledObject

public class ConnectionInPool
extends java.lang.Object
implements PooledObject, ConnectionWrapper

Wrapper for database connections in a pool. Handles closing appropriately. The connection is returned to the pool rather than truly closing, any outstanding statements are closed, and the connection is rolled back. This class is also used by statements, etc. to update the last used time for the connection.

Version:
$Revision: 1.7 $
Author:
Aaron Mulder (ammulder@alumni.princeton.edu)

Fields inherited from interface java.sql.Connection
TRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE
 
Constructor Summary
ConnectionInPool(java.sql.Connection con)
          Creates a new connection wrapper.
 
Method Summary
 void addPoolEventListener(PoolEventListener listener)
          Adds a listener for pool events.
 void clearWarnings()
           
 void close()
           
 void commit()
           
 java.sql.Statement createStatement()
           
 java.sql.Statement createStatement(int resultSetType, int resultSetConcurrency)
           
protected  void firePoolEvent(PoolEvent evt)
          Dispatches an event to the listeners.
 boolean getAutoCommit()
           
 java.lang.String getCatalog()
           
 java.sql.DatabaseMetaData getMetaData()
           
 int getTransactionIsolation()
           
 java.util.Map getTypeMap()
           
 java.sql.Connection getUnderlyingConnection()
          Gets a reference to the "real" connection.
 java.sql.SQLWarning getWarnings()
           
 boolean isClosed()
           
 boolean isReadOnly()
           
 java.lang.String nativeSQL(java.lang.String sql)
           
 java.sql.CallableStatement prepareCall(java.lang.String sql)
           
 java.sql.CallableStatement prepareCall(java.lang.String sql, int resultSetType, int resultSetConcurrency)
           
 java.sql.PreparedStatement prepareStatement(java.lang.String sql)
           
 java.sql.PreparedStatement prepareStatement(java.lang.String sql, int resultSetType, int resultSetConcurrency)
           
 void removePoolEventListener(PoolEventListener listener)
          Removes a listener for pool events.
 void reset()
          Prepares a connection to be returned to the pool.
 void rollback()
           
 void setAutoCommit(boolean autoCommit)
           
 void setCatalog(java.lang.String catalog)
           
 void setCatastrophicError(java.sql.SQLException e)
          Indicates that an error occured on this connection.
 void setError(java.sql.SQLException e)
          Indicates that an error occured on this connection.
 void setLastUsed()
          Updates the last used time for this connection to the current time.
 void setReadOnly(boolean readOnly)
           
 void setTransactionIsolation(int level)
           
 void setTypeMap(java.util.Map map)
           
 void shutdown()
          Closes this connection wrapper permanently.
 void statementClosed(java.sql.Statement st)
          Indicates that a statement has been closed and no longer needs to be tracked.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ConnectionInPool

public ConnectionInPool(java.sql.Connection con)
Creates a new connection wrapper.
Parameters:
con - The "real" database connection to wrap.
pool - The database pool this connection came from.
Method Detail

addPoolEventListener

public void addPoolEventListener(PoolEventListener listener)
Adds a listener for pool events.
Specified by:
addPoolEventListener in interface PooledObject

removePoolEventListener

public void removePoolEventListener(PoolEventListener listener)
Removes a listener for pool events.
Specified by:
removePoolEventListener in interface PooledObject

getUnderlyingConnection

public java.sql.Connection getUnderlyingConnection()
Gets a reference to the "real" connection. This should only be used if you need to cast that to a specific type to call a proprietary method - you will defeat all the pooling if you use the underlying connection directly.

shutdown

public void shutdown()
Closes this connection wrapper permanently. All further calls with throw a SQLException.

setLastUsed

public void setLastUsed()
Updates the last used time for this connection to the current time.
Specified by:
setLastUsed in interface ConnectionWrapper

setError

public void setError(java.sql.SQLException e)
Indicates that an error occured on this connection.
Specified by:
setError in interface ConnectionWrapper

setCatastrophicError

public void setCatastrophicError(java.sql.SQLException e)
Indicates that an error occured on this connection.

statementClosed

public void statementClosed(java.sql.Statement st)
Indicates that a statement has been closed and no longer needs to be tracked. Outstanding statements are closed when the connection is returned to the pool.
Specified by:
statementClosed in interface ConnectionWrapper

reset

public void reset()
           throws java.sql.SQLException
Prepares a connection to be returned to the pool. All outstanding statements are closed, and if AutoCommit is off, the connection is rolled back. No further SQL calls are possible once this is called.

firePoolEvent

protected void firePoolEvent(PoolEvent evt)
Dispatches an event to the listeners.

createStatement

public java.sql.Statement createStatement()
                                   throws java.sql.SQLException
Specified by:
createStatement in interface java.sql.Connection

prepareStatement

public java.sql.PreparedStatement prepareStatement(java.lang.String sql)
                                            throws java.sql.SQLException
Specified by:
prepareStatement in interface java.sql.Connection

prepareCall

public java.sql.CallableStatement prepareCall(java.lang.String sql)
                                       throws java.sql.SQLException
Specified by:
prepareCall in interface java.sql.Connection

nativeSQL

public java.lang.String nativeSQL(java.lang.String sql)
                           throws java.sql.SQLException
Specified by:
nativeSQL in interface java.sql.Connection

setAutoCommit

public void setAutoCommit(boolean autoCommit)
                   throws java.sql.SQLException
Specified by:
setAutoCommit in interface java.sql.Connection

getAutoCommit

public boolean getAutoCommit()
                      throws java.sql.SQLException
Specified by:
getAutoCommit in interface java.sql.Connection

commit

public void commit()
            throws java.sql.SQLException
Specified by:
commit in interface java.sql.Connection

rollback

public void rollback()
              throws java.sql.SQLException
Specified by:
rollback in interface java.sql.Connection

close

public void close()
           throws java.sql.SQLException
Specified by:
close in interface java.sql.Connection

isClosed

public boolean isClosed()
                 throws java.sql.SQLException
Specified by:
isClosed in interface java.sql.Connection

getMetaData

public java.sql.DatabaseMetaData getMetaData()
                                      throws java.sql.SQLException
Specified by:
getMetaData in interface java.sql.Connection

setReadOnly

public void setReadOnly(boolean readOnly)
                 throws java.sql.SQLException
Specified by:
setReadOnly in interface java.sql.Connection

isReadOnly

public boolean isReadOnly()
                   throws java.sql.SQLException
Specified by:
isReadOnly in interface java.sql.Connection

setCatalog

public void setCatalog(java.lang.String catalog)
                throws java.sql.SQLException
Specified by:
setCatalog in interface java.sql.Connection

getCatalog

public java.lang.String getCatalog()
                            throws java.sql.SQLException
Specified by:
getCatalog in interface java.sql.Connection

setTransactionIsolation

public void setTransactionIsolation(int level)
                             throws java.sql.SQLException
Specified by:
setTransactionIsolation in interface java.sql.Connection

getTransactionIsolation

public int getTransactionIsolation()
                            throws java.sql.SQLException
Specified by:
getTransactionIsolation in interface java.sql.Connection

getWarnings

public java.sql.SQLWarning getWarnings()
                                throws java.sql.SQLException
Specified by:
getWarnings in interface java.sql.Connection

clearWarnings

public void clearWarnings()
                   throws java.sql.SQLException
Specified by:
clearWarnings in interface java.sql.Connection

createStatement

public java.sql.Statement createStatement(int resultSetType,
                                          int resultSetConcurrency)
                                   throws java.sql.SQLException
Specified by:
createStatement in interface java.sql.Connection

prepareStatement

public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                   int resultSetType,
                                                   int resultSetConcurrency)
                                            throws java.sql.SQLException
Specified by:
prepareStatement in interface java.sql.Connection

prepareCall

public java.sql.CallableStatement prepareCall(java.lang.String sql,
                                              int resultSetType,
                                              int resultSetConcurrency)
                                       throws java.sql.SQLException
Specified by:
prepareCall in interface java.sql.Connection

getTypeMap

public java.util.Map getTypeMap()
                         throws java.sql.SQLException
Specified by:
getTypeMap in interface java.sql.Connection

setTypeMap

public void setTypeMap(java.util.Map map)
                throws java.sql.SQLException
Specified by:
setTypeMap in interface java.sql.Connection


Copyright © 2000 The jBoss Organization. All Rights Reserved.