atg.service.resourcepool
Class MonitoredStatement

java.lang.Object
  extended by atg.service.resourcepool.MonitoredStatement
All Implemented Interfaces:
java.sql.Statement

public class MonitoredStatement
extends java.lang.Object
implements java.sql.Statement

This class is a wrapper for java.sql.Statement. All calls are passed through to an embedded instance of java.sql.Statement.


Field Summary
static java.lang.String CLASS_VERSION
          Class version string
protected static java.lang.String EXECUTE_QUERY
           
protected static java.lang.String EXECUTE_UPDATE
           
 
Fields inherited from interface java.sql.Statement
CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, EXECUTE_FAILED, KEEP_CURRENT_RESULT, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO
 
Constructor Summary
MonitoredStatement(java.sql.Statement pWrapped, ApplicationLogging pLog, ConnectionStats pStats, java.lang.String pId)
          Constructs a new wrapper java.sql.Statement wrapper
 
Method Summary
 void addBatch(java.lang.String p0)
          Wraps the call to addBatch
 void cancel()
          Wraps the call to cancel
 void clearBatch()
          Wraps the call to clearBatch
 void clearWarnings()
          Wraps the call to clearWarnings
 void close()
          Wraps the call to close
 boolean execute(java.lang.String p0)
          Wraps the call to execute
 boolean execute(java.lang.String sql, int autoGeneratedKeys)
          Executes the given SQL statement, which may return multiple results, and signals the driver that any auto-generated keys should be made available for retrieval.
 boolean execute(java.lang.String sql, int[] columnIndexes)
          Executes the given SQL statement, which may return multiple results, and signals the driver that the auto-generated keys indicated in the given array should be made available for retrieval.
 boolean execute(java.lang.String sql, java.lang.String[] columnNames)
          Executes the given SQL statement, which may return multiple results, and signals the driver that the auto-generated keys indicated in the given array should be made available for retrieval.
 int[] executeBatch()
          Wraps the call to executeBatch
 java.sql.ResultSet executeQuery(java.lang.String p0)
          Wraps the call to executeQuery
 int executeUpdate(java.lang.String p0)
          Wraps the call to executeUpdate
 int executeUpdate(java.lang.String sql, int autoGeneratedKeys)
          Executes the given SQL statement and signals the driver with the given flag about whether the auto-generated keys produced by this Statement object should be made available for retrieval.
 int executeUpdate(java.lang.String sql, int[] columnIndexes)
          Executes the given SQL statement and signals the driver that the auto-generated keys indicated in the given array should be made available for retrieval.
 int executeUpdate(java.lang.String sql, java.lang.String[] columnNames)
          Executes the given SQL statement and signals the driver that the auto-generated keys indicated in the given array should be made available for retrieval.
 java.sql.Connection getConnection()
          Wraps the call to getConnection
 int getFetchDirection()
          Wraps the call to getFetchDirection
 int getFetchSize()
          Wraps the call to getFetchSize
 java.sql.ResultSet getGeneratedKeys()
          Retrieves any auto-generated keys created as a result of executing this Statement object.
 int getMaxFieldSize()
          Wraps the call to getMaxFieldSize
 int getMaxRows()
          Wraps the call to getMaxRows
 MonitoredConnection getMonitoredConnection()
           
 boolean getMoreResults()
          Wraps the call to getMoreResults
 boolean getMoreResults(int current)
          Moves to this Statement object's next result, deals with any current ResultSet object(s) according to the instructions specified by the given flag, and returns true if the next result is a ResultSet object.
 int getQueryTimeout()
          Wraps the call to getQueryTimeout
 java.sql.ResultSet getResultSet()
          Wraps the call to getResultSet
 int getResultSetConcurrency()
          Wraps the call to getResultSetConcurrency
 int getResultSetHoldability()
          Retrieves the result set holdability for ResultSet objects generated by this Statement object.
 int getResultSetType()
          Wraps the call to getResultSetType
 int getUpdateCount()
          Wraps the call to getUpdateCount
 java.sql.SQLWarning getWarnings()
          Wraps the call to getWarnings
 java.sql.Statement getWrapped()
          Returns the original statement that this MonitoredStatement is monitoring.
 boolean isClosed()
          Retrieves whether this Statement object has been closed.
 boolean isPoolable()
          Returns a value indicating whether the Statement is poolable or not.
 boolean isWrapperFor(java.lang.Class<?> iface)
          Returns true if this either implements the interface argument or is directly or indirectly a wrapper for an object that does.
 void setCursorName(java.lang.String p0)
          Wraps the call to setCursorName
 void setEscapeProcessing(boolean p0)
          Wraps the call to setEscapeProcessing
 void setFetchDirection(int p0)
          Wraps the call to setFetchDirection
 void setFetchSize(int p0)
          Wraps the call to setFetchSize
 void setMaxFieldSize(int p0)
          Wraps the call to setMaxFieldSize
 void setMaxRows(int p0)
          Wraps the call to setMaxRows
 void setMonitoredConnection(MonitoredConnection pMonitoredConnection)
           
 void setPoolable(boolean poolable)
          Requests that a Statement be pooled or not pooled.
 void setQueryTimeout(int p0)
          Wraps the call to setQueryTimeout
 void setWrapped(java.sql.Statement pWrapped)
           
<T> T
unwrap(java.lang.Class<T> iface)
          Returns an object that implements the given interface to allow access to non-standard methods, or standard methods not exposed by the proxy.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CLASS_VERSION

public static java.lang.String CLASS_VERSION
Class version string


EXECUTE_QUERY

protected static final java.lang.String EXECUTE_QUERY
See Also:
Constant Field Values

EXECUTE_UPDATE

protected static final java.lang.String EXECUTE_UPDATE
See Also:
Constant Field Values
Constructor Detail

MonitoredStatement

public MonitoredStatement(java.sql.Statement pWrapped,
                          ApplicationLogging pLog,
                          ConnectionStats pStats,
                          java.lang.String pId)
Constructs a new wrapper java.sql.Statement wrapper

Parameters:
pWrapped - the instance being wrapped
Method Detail

getMonitoredConnection

public MonitoredConnection getMonitoredConnection()

setMonitoredConnection

public void setMonitoredConnection(MonitoredConnection pMonitoredConnection)

getConnection

public java.sql.Connection getConnection()
                                  throws java.sql.SQLException
Wraps the call to getConnection

Specified by:
getConnection in interface java.sql.Statement
Throws:
java.sql.SQLException

addBatch

public void addBatch(java.lang.String p0)
              throws java.sql.SQLException
Wraps the call to addBatch

Specified by:
addBatch in interface java.sql.Statement
Throws:
java.sql.SQLException

clearBatch

public void clearBatch()
                throws java.sql.SQLException
Wraps the call to clearBatch

Specified by:
clearBatch in interface java.sql.Statement
Throws:
java.sql.SQLException

executeBatch

public int[] executeBatch()
                   throws java.sql.SQLException
Wraps the call to executeBatch

Specified by:
executeBatch in interface java.sql.Statement
Throws:
java.sql.SQLException

executeQuery

public java.sql.ResultSet executeQuery(java.lang.String p0)
                                throws java.sql.SQLException
Wraps the call to executeQuery

Specified by:
executeQuery in interface java.sql.Statement
Throws:
java.sql.SQLException

executeUpdate

public int executeUpdate(java.lang.String p0)
                  throws java.sql.SQLException
Wraps the call to executeUpdate

Specified by:
executeUpdate in interface java.sql.Statement
Throws:
java.sql.SQLException

close

public void close()
           throws java.sql.SQLException
Wraps the call to close

Specified by:
close in interface java.sql.Statement
Throws:
java.sql.SQLException

getMaxFieldSize

public int getMaxFieldSize()
                    throws java.sql.SQLException
Wraps the call to getMaxFieldSize

Specified by:
getMaxFieldSize in interface java.sql.Statement
Throws:
java.sql.SQLException

setMaxFieldSize

public void setMaxFieldSize(int p0)
                     throws java.sql.SQLException
Wraps the call to setMaxFieldSize

Specified by:
setMaxFieldSize in interface java.sql.Statement
Throws:
java.sql.SQLException

getMaxRows

public int getMaxRows()
               throws java.sql.SQLException
Wraps the call to getMaxRows

Specified by:
getMaxRows in interface java.sql.Statement
Throws:
java.sql.SQLException

setMaxRows

public void setMaxRows(int p0)
                throws java.sql.SQLException
Wraps the call to setMaxRows

Specified by:
setMaxRows in interface java.sql.Statement
Throws:
java.sql.SQLException

setEscapeProcessing

public void setEscapeProcessing(boolean p0)
                         throws java.sql.SQLException
Wraps the call to setEscapeProcessing

Specified by:
setEscapeProcessing in interface java.sql.Statement
Throws:
java.sql.SQLException

getQueryTimeout

public int getQueryTimeout()
                    throws java.sql.SQLException
Wraps the call to getQueryTimeout

Specified by:
getQueryTimeout in interface java.sql.Statement
Throws:
java.sql.SQLException

setQueryTimeout

public void setQueryTimeout(int p0)
                     throws java.sql.SQLException
Wraps the call to setQueryTimeout

Specified by:
setQueryTimeout in interface java.sql.Statement
Throws:
java.sql.SQLException

getFetchDirection

public int getFetchDirection()
                      throws java.sql.SQLException
Wraps the call to getFetchDirection

Specified by:
getFetchDirection in interface java.sql.Statement
Throws:
java.sql.SQLException

setFetchDirection

public void setFetchDirection(int p0)
                       throws java.sql.SQLException
Wraps the call to setFetchDirection

Specified by:
setFetchDirection in interface java.sql.Statement
Throws:
java.sql.SQLException

getFetchSize

public int getFetchSize()
                 throws java.sql.SQLException
Wraps the call to getFetchSize

Specified by:
getFetchSize in interface java.sql.Statement
Throws:
java.sql.SQLException

setFetchSize

public void setFetchSize(int p0)
                  throws java.sql.SQLException
Wraps the call to setFetchSize

Specified by:
setFetchSize in interface java.sql.Statement
Throws:
java.sql.SQLException

getResultSetConcurrency

public int getResultSetConcurrency()
                            throws java.sql.SQLException
Wraps the call to getResultSetConcurrency

Specified by:
getResultSetConcurrency in interface java.sql.Statement
Throws:
java.sql.SQLException

getResultSetType

public int getResultSetType()
                     throws java.sql.SQLException
Wraps the call to getResultSetType

Specified by:
getResultSetType in interface java.sql.Statement
Throws:
java.sql.SQLException

cancel

public void cancel()
            throws java.sql.SQLException
Wraps the call to cancel

Specified by:
cancel in interface java.sql.Statement
Throws:
java.sql.SQLException

getWarnings

public java.sql.SQLWarning getWarnings()
                                throws java.sql.SQLException
Wraps the call to getWarnings

Specified by:
getWarnings in interface java.sql.Statement
Throws:
java.sql.SQLException

clearWarnings

public void clearWarnings()
                   throws java.sql.SQLException
Wraps the call to clearWarnings

Specified by:
clearWarnings in interface java.sql.Statement
Throws:
java.sql.SQLException

setCursorName

public void setCursorName(java.lang.String p0)
                   throws java.sql.SQLException
Wraps the call to setCursorName

Specified by:
setCursorName in interface java.sql.Statement
Throws:
java.sql.SQLException

execute

public boolean execute(java.lang.String p0)
                throws java.sql.SQLException
Wraps the call to execute

Specified by:
execute in interface java.sql.Statement
Throws:
java.sql.SQLException

getResultSet

public java.sql.ResultSet getResultSet()
                                throws java.sql.SQLException
Wraps the call to getResultSet

Specified by:
getResultSet in interface java.sql.Statement
Throws:
java.sql.SQLException

getUpdateCount

public int getUpdateCount()
                   throws java.sql.SQLException
Wraps the call to getUpdateCount

Specified by:
getUpdateCount in interface java.sql.Statement
Throws:
java.sql.SQLException

getMoreResults

public boolean getMoreResults()
                       throws java.sql.SQLException
Wraps the call to getMoreResults

Specified by:
getMoreResults in interface java.sql.Statement
Throws:
java.sql.SQLException

getWrapped

public java.sql.Statement getWrapped()
Returns the original statement that this MonitoredStatement is monitoring.


setWrapped

public void setWrapped(java.sql.Statement pWrapped)

getMoreResults

public boolean getMoreResults(int current)
                       throws java.sql.SQLException
Moves to this Statement object's next result, deals with any current ResultSet object(s) according to the instructions specified by the given flag, and returns true if the next result is a ResultSet object.

There are no more results when the following is true:

      (!getMoreResults() && (getUpdateCount() == -1)
 

Specified by:
getMoreResults in interface java.sql.Statement
Parameters:
current - one of the following Statement constants indicating what should happen to current ResultSet objects obtained using the method getResultSetCLOSE_CURRENT_RESULT, KEEP_CURRENT_RESULT, or CLOSE_ALL_RESULTS
Returns:
true if the next result is a ResultSet object; false if it is an update count or there are no more results
Throws:
java.sql.SQLException - if a database access error occurs
Since:
1.4
See Also:
execute(java.lang.String)

getGeneratedKeys

public java.sql.ResultSet getGeneratedKeys()
                                    throws java.sql.SQLException
Retrieves any auto-generated keys created as a result of executing this Statement object. If this Statement object did not generate any keys, an empty ResultSet object is returned.

Specified by:
getGeneratedKeys in interface java.sql.Statement
Returns:
a ResultSet object containing the auto-generated key(s) generated by the execution of this Statement object
Throws:
java.sql.SQLException - if a database access error occurs
Since:
1.4

executeUpdate

public int executeUpdate(java.lang.String sql,
                         int autoGeneratedKeys)
                  throws java.sql.SQLException
Executes the given SQL statement and signals the driver with the given flag about whether the auto-generated keys produced by this Statement object should be made available for retrieval.

Specified by:
executeUpdate in interface java.sql.Statement
Parameters:
sql - must be an SQL INSERT, UPDATE or DELETE statement or an SQL statement that returns nothing
autoGeneratedKeys - a flag indicating whether auto-generated keys should be made available for retrieval; one of the following constants: Statement.RETURN_GENERATED_KEYS Statement.NO_GENERATED_KEYS
Returns:
either the row count for INSERT, UPDATE or DELETE statements, or 0 for SQL statements that return nothing
Throws:
java.sql.SQLException - if a database access error occurs, the given SQL statement returns a ResultSet object, or the given constant is not one of those allowed
Since:
1.4

executeUpdate

public int executeUpdate(java.lang.String sql,
                         int[] columnIndexes)
                  throws java.sql.SQLException
Executes the given SQL statement and signals the driver that the auto-generated keys indicated in the given array should be made available for retrieval. The driver will ignore the array if the SQL statement is not an INSERT statement.

Specified by:
executeUpdate in interface java.sql.Statement
Parameters:
sql - an SQL INSERT, UPDATE or DELETE statement or an SQL statement that returns nothing, such as an SQL DDL statement
columnIndexes - an array of column indexes indicating the columns that should be returned from the inserted row
Returns:
either the row count for INSERT, UPDATE, or DELETE statements, or 0 for SQL statements that return nothing
Throws:
java.sql.SQLException - if a database access error occurs or the SQL statement returns a ResultSet object
Since:
1.4

executeUpdate

public int executeUpdate(java.lang.String sql,
                         java.lang.String[] columnNames)
                  throws java.sql.SQLException
Executes the given SQL statement and signals the driver that the auto-generated keys indicated in the given array should be made available for retrieval. The driver will ignore the array if the SQL statement is not an INSERT statement.

Specified by:
executeUpdate in interface java.sql.Statement
Parameters:
sql - an SQL INSERT, UPDATE or DELETE statement or an SQL statement that returns nothing
columnNames - an array of the names of the columns that should be returned from the inserted row
Returns:
either the row count for INSERT, UPDATE, or DELETE statements, or 0 for SQL statements that return nothing
Throws:
java.sql.SQLException - if a database access error occurs
Since:
1.4

execute

public boolean execute(java.lang.String sql,
                       int autoGeneratedKeys)
                throws java.sql.SQLException
Executes the given SQL statement, which may return multiple results, and signals the driver that any auto-generated keys should be made available for retrieval. The driver will ignore this signal if the SQL statement is not an INSERT statement.

In some (uncommon) situations, a single SQL statement may return multiple result sets and/or update counts. Normally you can ignore this unless you are (1) executing a stored procedure that you know may return multiple results or (2) you are dynamically executing an unknown SQL string.

The execute method executes an SQL statement and indicates the form of the first result. You must then use the methods getResultSet or getUpdateCount to retrieve the result, and getMoreResults to move to any subsequent result(s).

Specified by:
execute in interface java.sql.Statement
Parameters:
sql - any SQL statement
autoGeneratedKeys - a constant indicating whether auto-generated keys should be made available for retrieval using the method getGeneratedKeys; one of the following constants: Statement.RETURN_GENERATED_KEYS or Statement.NO_GENERATED_KEYS
Returns:
true if the first result is a ResultSet object; false if it is an update count or there are no results
Throws:
java.sql.SQLException - if a database access error occurs
Since:
1.4
See Also:
getResultSet(), getUpdateCount(), getMoreResults(), getGeneratedKeys()

execute

public boolean execute(java.lang.String sql,
                       int[] columnIndexes)
                throws java.sql.SQLException
Executes the given SQL statement, which may return multiple results, and signals the driver that the auto-generated keys indicated in the given array should be made available for retrieval. This array contains the indexes of the columns in the target table that contain the auto-generated keys that should be made available. The driver will ignore the array if the given SQL statement is not an INSERT statement.

Under some (uncommon) situations, a single SQL statement may return multiple result sets and/or update counts. Normally you can ignore this unless you are (1) executing a stored procedure that you know may return multiple results or (2) you are dynamically executing an unknown SQL string.

The execute method executes an SQL statement and indicates the form of the first result. You must then use the methods getResultSet or getUpdateCount to retrieve the result, and getMoreResults to move to any subsequent result(s).

Specified by:
execute in interface java.sql.Statement
Parameters:
sql - any SQL statement
columnIndexes - an array of the indexes of the columns in the inserted row that should be made available for retrieval by a call to the method getGeneratedKeys
Returns:
true if the first result is a ResultSet object; false if it is an update count or there are no results
Throws:
java.sql.SQLException - if a database access error occurs
Since:
1.4
See Also:
getResultSet(), getUpdateCount(), getMoreResults()

execute

public boolean execute(java.lang.String sql,
                       java.lang.String[] columnNames)
                throws java.sql.SQLException
Executes the given SQL statement, which may return multiple results, and signals the driver that the auto-generated keys indicated in the given array should be made available for retrieval. This array contains the names of the columns in the target table that contain the auto-generated keys that should be made available. The driver will ignore the array if the given SQL statement is not an INSERT statement.

In some (uncommon) situations, a single SQL statement may return multiple result sets and/or update counts. Normally you can ignore this unless you are (1) executing a stored procedure that you know may return multiple results or (2) you are dynamically executing an unknown SQL string.

The execute method executes an SQL statement and indicates the form of the first result. You must then use the methods getResultSet or getUpdateCount to retrieve the result, and getMoreResults to move to any subsequent result(s).

Specified by:
execute in interface java.sql.Statement
Parameters:
sql - any SQL statement
columnNames - an array of the names of the columns in the inserted row that should be made available for retrieval by a call to the method getGeneratedKeys
Returns:
true if the next result is a ResultSet object; false if it is an update count or there are no more results
Throws:
java.sql.SQLException - if a database access error occurs
Since:
1.4
See Also:
getResultSet(), getUpdateCount(), getMoreResults(), getGeneratedKeys()

getResultSetHoldability

public int getResultSetHoldability()
                            throws java.sql.SQLException
Retrieves the result set holdability for ResultSet objects generated by this Statement object.

Specified by:
getResultSetHoldability in interface java.sql.Statement
Returns:
either ResultSet.HOLD_CURSORS_OVER_COMMIT or ResultSet.CLOSE_CURSORS_AT_COMMIT
Throws:
java.sql.SQLException - if a database access error occurs
Since:
1.4

isClosed

public boolean isClosed()
                 throws java.sql.SQLException
Retrieves whether this Statement object has been closed. A Statement is closed if the method close has been called on it, or if it is automatically closed.

Currently not implemented.

Returns:
true if this Statement object is closed; false if it is still open
Throws:
java.sql.SQLException - if a database access error occurs
Since:
1.6

isPoolable

public boolean isPoolable()
                   throws java.sql.SQLException
Returns a value indicating whether the Statement is poolable or not.

Currently not implemented.

Returns:
true if the Statement is poolable; false otherwise

Throws:
java.sql.SQLException - if this method is called on a closed Statement

Since:
1.6

See Also:
setPoolable(boolean)

setPoolable

public void setPoolable(boolean poolable)
                 throws java.sql.SQLException
Requests that a Statement be pooled or not pooled. The value specified is a hint to the statement pool implementation indicating whether the applicaiton wants the statement to be pooled. It is up to the statement pool manager as to whether the hint is used.

Currently not implemented.

The poolable value of a statement is applicable to both internal statement caches implemented by the driver and external statement caches implemented by application servers and other applications.

By default, a Statement is not poolable when created, and a PreparedStatement and CallableStatement are poolable when created.

Parameters:
poolable - requests that the statement be pooled if true and that the statement not be pooled if false

Throws:
java.sql.SQLException - if this method is called on a closed Statement

Since:
1.6

isWrapperFor

public boolean isWrapperFor(java.lang.Class<?> iface)
                     throws java.sql.SQLException
Returns true if this either implements the interface argument or is directly or indirectly a wrapper for an object that does. Returns false otherwise. If this implements the interface then return true, else if this is a wrapper then return the result of recursively calling isWrapperFor on the wrapped object. If this does not implement the interface and is not a wrapper, return false. This method should be implemented as a low-cost operation compared to unwrap so that callers can use this method to avoid expensive unwrap calls that may fail. If this method returns true then calling unwrap with the same argument should succeed.

Currently not implemented.

Parameters:
iface - a Class defining an interface.
Returns:
true if this implements the interface or directly or indirectly wraps an object that does.
Throws:
java.sql.SQLException - if an error occurs while determining whether this is a wrapper for an object with the given interface.
Since:
1.6

unwrap

public <T> T unwrap(java.lang.Class<T> iface)
         throws java.sql.SQLException
Returns an object that implements the given interface to allow access to non-standard methods, or standard methods not exposed by the proxy. If the receiver implements the interface then the result is the receiver or a proxy for the receiver. If the receiver is a wrapper and the wrapped object implements the interface then the result is the wrapped object or a proxy for the wrapped object. Otherwise return the the result of calling unwrap recursively on the wrapped object or a proxy for that result. If the receiver is not a wrapper and does not implement the interface, then an SQLException is thrown.

Currently not implemented.

Parameters:
iface - A Class defining an interface that the result must implement.
Returns:
an object that implements the interface. May be a proxy for the actual implementing object.
Throws:
java.sql.SQLException - If no object found that implements the interface
Since:
1.6