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

    java.lang.Object
      |
      +--org.apache.xalan.lib.sql.JNDIConnectionPool

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)`
`void` `releaseConnectionOnError(java.sql.Connection con)`
`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

  Specified by:
    releaseConnection in interface ConnectionPool

### releaseConnectionOnError

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

  Specified by:
    releaseConnectionOnError in interface ConnectionPool

### 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 © 2006 Apache XML Project. All Rights Reserved.