org.apache.xalan.lib.sql

## Interface ConnectionPool

- All Known Implementing Classes:
    DefaultConnectionPool, JNDIConnectionPool

      public interface ConnectionPool

  An interface used to build wrapper classes around existing Connection Pool libraries. Title: ConnectionPool

  Version:
    1.0
  Author:
    John Gentilin

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `freeUnused()` Start downsizeing the pool, this usally happens right after the pool has been marked as Inactive and we are removing connections that are not currently inuse.
    `java.sql.Connection` | `getConnection()` Retrive a database connection from the pool
    `boolean` | `hasActiveConnections()` Provide an indicator to the PoolManager when the Pool can be removed from the Pool Table.
    `boolean` | `isEnabled()` Determine if a Connection Pool has been disabled.
    `void` | `releaseConnection(java.sql.Connection con)` Return a connection to the pool, the connection may be closed if the pool is inactive or has exceeded the max number of free connections
    `void` | `releaseConnectionOnError(java.sql.Connection con)` Provide a mechinism to return a connection to the pool on Error.
    `void` | `setDriver(java.lang.String d)` The Driver and URL are the only required parmeters.
    `void` | `setMinConnections(int n)` Set tne minimum number of connections that are to be maintained in the pool.
    `void` | `setPassword(java.lang.String p)` The rest of the protocol parameters can eiter be passed in as just Username and Password or as a property collection.
    `void` | `setPoolEnabled(boolean flag)` The Pool can be Enabled and Disabled.
    `void` | `setProtocol(java.util.Properties p)` Used to pass in extra configuration options during the database connect phase.
    `void` | `setURL(java.lang.String url)`
    `void` | `setUser(java.lang.String u)`
    `boolean` | `testConnection()` Test to see if the connection info is valid to make a real connection to the database.

- - ### Method Detail

    - #### isEnabled

          boolean isEnabled()

      Determine if a Connection Pool has been disabled. If a Connection pool is disabled, then it will only manage connections that are in use.

    - #### setDriver

          void setDriver(java.lang.String d)

      The Driver and URL are the only required parmeters.
      Parameters:
        `d` -

    - #### setURL

          void setURL(java.lang.String url)

      Parameters:
        `url` -

    - #### freeUnused

          void freeUnused()

      Start downsizeing the pool, this usally happens right after the pool has been marked as Inactive and we are removing connections that are not currently inuse.

    - #### hasActiveConnections

          boolean hasActiveConnections()

      Provide an indicator to the PoolManager when the Pool can be removed from the Pool Table.

    - #### setPassword

          void setPassword(java.lang.String p)

      The rest of the protocol parameters can eiter be passed in as just Username and Password or as a property collection. If the property collection is used, then the sperate username and password may be ignored, it is up to the wrapper implementation to handle the situation. If the connection information changes while after the pool has been established, the wrapper implementation should ignore the change and throw an error.
      Parameters:
        `p` -

    - #### setUser

          void setUser(java.lang.String u)

      Parameters:
        `u` -

    - #### setMinConnections

          void setMinConnections(int n)

      Set tne minimum number of connections that are to be maintained in the pool.
      Parameters:
        `n` -

    - #### testConnection

          boolean testConnection()

      Test to see if the connection info is valid to make a real connection to the database. This method may cause the pool to be crated and filled with min connections.

    - #### getConnection

          java.sql.Connection getConnection()
                                     throws java.sql.SQLException

      Retrive a database connection from the pool
      Throws:
        `java.sql.SQLException`

    - #### releaseConnection

          void releaseConnection(java.sql.Connection con)
                          throws java.sql.SQLException

      Return a connection to the pool, the connection may be closed if the pool is inactive or has exceeded the max number of free connections
      Parameters:
        `con` -
      Throws:
        `java.sql.SQLException`

    - #### releaseConnectionOnError

          void releaseConnectionOnError(java.sql.Connection con)
                                 throws java.sql.SQLException

      Provide a mechinism to return a connection to the pool on Error. A good default behaviour is to close this connection and build a new one to replace it. Some JDBC impl's won't allow you to reuse a connection after an error occurs.
      Parameters:
        `con` -
      Throws:
        `java.sql.SQLException`

    - #### setPoolEnabled

          void setPoolEnabled(boolean flag)

      The Pool can be Enabled and Disabled. Disabling the pool closes all the outstanding Unused connections and any new connections will be closed upon release.
      Parameters:
        `flag` - Control the Connection Pool. If it is enabled then Connections will actuall be held around. If disabled then all unused connections will be instantly closed and as connections are released they are closed and removed from the pool.

    - #### setProtocol

          void setProtocol(java.util.Properties p)

      Used to pass in extra configuration options during the database connect phase.

Copyright © 2023 Apache XML Project. All Rights Reserved.