Interface ProxyConnectionIF

  • All Superinterfaces:
    java.lang.Comparable, ConnectionInfoIF
    All Known Implementing Classes:
    ProxyConnection

    public interface ProxyConnectionIF
    extends ConnectionInfoIF
    Contains most of the functionality that we require to manipilate the connection. The subclass of this defines how we delegate to the real connection.
    Since:
    Proxool 0.7
    Version:
    $Revision: 1.8 $, $Date: 2007/01/25 23:38:24 $
    Author:
    bill, $Author: billhorsman $ (current maintainer)
    • Method Detail

      • setStatus

        boolean setStatus​(int oldStatus,
                          int newStatus)
        Changes the status and lets the ConnectionPool know so that it can keep count of how many connections are at each status. This method obtains a write lock.
        Parameters:
        oldStatus - the expected existing status. if the existing status is not this value then no change is made and false is returned.
        newStatus - the status to change to
        Returns:
        true if status changed successfully, or false if no change made (because of unexpected existing status).
      • setStatus

        boolean setStatus​(int newStatus)
        Forces the new status regardless of the old state
        Parameters:
        newStatus - the status to change to
        Returns:
        true if status changed successfully, or false if no change made (should always return true)
        See Also:
        setStatus(int, int)
      • markForExpiry

        void markForExpiry​(java.lang.String reason)
        Mark this connection for expiry (destruction) as soon as it stops being active.
        Parameters:
        reason - why we are marking this connection
        See Also:
        isMarkedForExpiry()
      • isMarkedForExpiry

        boolean isMarkedForExpiry()
        Whether this connection is due for expiry
        Returns:
        true if it is due for expiry
        See Also:
        markForExpiry(java.lang.String)
      • getReasonForMark

        java.lang.String getReasonForMark()
        Why this connection is marked (for instance, if a thread has marked it for expiry then it's nice to know why)
        Returns:
        reasonForMark
      • getConnection

        java.sql.Connection getConnection()
        The real, delegate connection that we are using
        Returns:
        connection
      • isNull

        boolean isNull()
        Returns:
        true if the status is null
      • isAvailable

        boolean isAvailable()
        Returns:
        true if the status is available
      • isActive

        boolean isActive()
        Returns:
        true if the status is active
      • isOffline

        boolean isOffline()
        Returns:
        true if the status is offline
      • reallyClose

        void reallyClose()
                  throws java.sql.SQLException
        Really close the connection, as opposed to just putting it back in the pool.
        Throws:
        java.sql.SQLException
      • close

        void close()
            throws java.sql.SQLException
        Doesn't really close the connection, just puts it back in the pool. And tries to reset all the methods that need resetting.
        Throws:
        java.sql.SQLException
        See Also:
        Connection.close()
      • registerClosedStatement

        void registerClosedStatement​(java.sql.Statement statement)
        Notify that a statement has been closed and won't need closing when the connection is returned to the poo.
        Parameters:
        statement - the statement that has just been closed
      • isReallyClosed

        boolean isReallyClosed()
                        throws java.sql.SQLException
        Find out if the delegated connection is close. Just calling isClosed() on the proxied connection will only indicate whether it is in the pool or not.
        Returns:
        true if the connection is really closed, or if the connection is null
        Throws:
        java.sql.SQLException - if anything went wrong
      • getLastSqlCall

        java.lang.String getLastSqlCall()
        Get the most recent of all the ConnectionInfoIF.getSqlCalls()
        Returns:
        the SQL (could be a batch of SQLs)