## org.apache.xalan.lib.sql
Class JNDIConnectionPool

    java.lang.Object
      org.apache.xalan.lib.sql.JNDIConnectionPool

All Implemented Interfaces:
  ConnectionPool

    public class JNDIConnectionPool

extends java.lang.Object
implements ConnectionPool

A Connection Pool that wraps a JDBC datasource to provide connections. An instance of this class is created by `XConnection` when it attempts to resolves a `ConnectionPool` name as a JNDI data source. Most methods in this implementation do nothing since configuration is handled by the underlying JDBC datasource. Users should always call `XConnection.close()` from their stylsheet to explicitely close their connection. However, since there is no way to enforce this (Yikes!), it is recommended that a relatively short datasource timeout be used to prevent dangling connections.

Constructor Summary
`JNDIConnectionPool()` Use of the default constructor requires the jndi path to be set via setJndiPath().
`JNDIConnectionPool(java.lang.String jndiDatasourcePath)` Creates a connection pool with a specified JNDI path.

Method Summary
`void` `freeUnused()` Intended to release unused connections from the pool.
`java.sql.Connection` `getConnection()` Returns a connection from the JDNI DataSource found at the JNDI Datasource path.
`java.lang.String` `getJndiPath()` Returns the path for the jndi datasource
`boolean` `hasActiveConnections()` Always returns false, indicating that this wrapper has no idea of what connections the underlying JNDI source is maintaining.
`boolean` `isEnabled()` Always returns true.
`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)` Not implemented and will throw an Error if called.
`void` `setJndiPath(java.lang.String jndiPath)` Sets the path for the jndi datasource
`void` `setMinConnections(int n)` Ignored in this implementation b/c the pooling is determined by the jndi dataosource.
`void` `setPassword(java.lang.String p)` Sets the password for the connection.
`void` `setPoolEnabled(boolean flag)` Releases the reference to the jndi datasource.
`void` `setProtocol(java.util.Properties p)` Ignored in this implementation b/c the pooling is determined by the jndi dataosource.
`void` `setURL(java.lang.String url)` Not implemented and will throw an Error if called.
`void` `setUser(java.lang.String u)` Sets the user name for the connection.
`boolean` `testConnection()` A simple test to see if the jndi datasource exists.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### JNDIConnectionPool

    public JNDIConnectionPool()

  Use of the default constructor requires the jndi path to be set via setJndiPath().

### JNDIConnectionPool

    public JNDIConnectionPool(java.lang.String jndiDatasourcePath)

  Creates a connection pool with a specified JNDI path.

  Parameters:
    `jndiDatasourcePath` - Complete path to the JNDI datasource

Method Detail

### setJndiPath

    public void setJndiPath(java.lang.String jndiPath)

  Sets the path for the jndi datasource

  Parameters:
    `jndiPath` -

### getJndiPath

    public java.lang.String getJndiPath()

  Returns the path for the jndi datasource

  Parameters:
    `jndiPath` -

### isEnabled

    public boolean isEnabled()

  Always returns true. This method was intended to indicate if the pool was enabled, however, in this implementation that is not relavant.

  Specified by:
    `isEnabled` in interface `ConnectionPool`
  Returns:

### setDriver

    public void setDriver(java.lang.String d)

  Not implemented and will throw an Error if called. Connection configuration is handled by the underlying JNDI DataSource.

  Specified by:
    `setDriver` in interface `ConnectionPool`
  Parameters:
    `d` -

### setURL

    public void setURL(java.lang.String url)

  Not implemented and will throw an Error if called. Connection configuration is handled by the underlying JNDI DataSource.

  Specified by:
    `setURL` in interface `ConnectionPool`
  Parameters:
    `d` -

### freeUnused

    public void freeUnused()

  Intended to release unused connections from the pool. Does nothing in this implementation.

  Specified by:
    `freeUnused` in interface `ConnectionPool`

### hasActiveConnections

    public boolean hasActiveConnections()

  Always returns false, indicating that this wrapper has no idea of what connections the underlying JNDI source is maintaining.

  Specified by:
    `hasActiveConnections` in interface `ConnectionPool`
  Returns:

### setPassword

    public void setPassword(java.lang.String p)

  Sets the password for the connection. If the jndi datasource does not require a password (which is typical), this can be left null.

  Specified by:
    `setPassword` in interface `ConnectionPool`
  Parameters:
    `p` - the password

### setUser

    public void setUser(java.lang.String u)

  Sets the user name for the connection. If the jndi datasource does not require a user name (which is typical), this can be left null.

  Specified by:
    `setUser` in interface `ConnectionPool`
  Parameters:
    `u` - the user name

### getConnection

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

  Returns a connection from the JDNI DataSource found at the JNDI Datasource path.

  Specified by:
    `getConnection` in interface `ConnectionPool`
  Returns:
  Throws:
    `java.sql.SQLException`

### releaseConnection

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

  Description copied from interface: `ConnectionPool`
  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

  Specified by:
    `releaseConnection` in interface `ConnectionPool`
  Throws:
    `java.sql.SQLException`

### releaseConnectionOnError

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

  Description copied from interface: `ConnectionPool`
  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.

  Specified by:
    `releaseConnectionOnError` in interface `ConnectionPool`
  Throws:
    `java.sql.SQLException`

### setPoolEnabled

    public void setPoolEnabled(boolean flag)

  Releases the reference to the jndi datasource. The original intention of this method was to actually turn the pool *off*. Since we are not managing the pool, we simply release our reference to the datasource. Future calls to the getConnection will simply recreate the datasource.

  Specified by:
    `setPoolEnabled` in interface `ConnectionPool`
  Parameters:
    `flag` - If false, the reference to the datasource is released.

### setProtocol

    public void setProtocol(java.util.Properties p)

  Ignored in this implementation b/c the pooling is determined by the jndi dataosource.

  Specified by:
    `setProtocol` in interface `ConnectionPool`
  Parameters:
    `p` -

### setMinConnections

    public void setMinConnections(int n)

  Ignored in this implementation b/c the pooling is determined by the jndi dataosource.

  Specified by:
    `setMinConnections` in interface `ConnectionPool`
  Parameters:
    `n` -

### testConnection

    public boolean testConnection()

  A simple test to see if the jndi datasource exists. Note that this test does not ensure that the datasource will return valid connections.

  Specified by:
    `testConnection` in interface `ConnectionPool`

Copyright © 2005 Apache XML Project. All Rights Reserved.