org.apache.xalan.lib.sql

Class JNDIConnectionPool

public class JNDIConnectionPool extends 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(String jndiDatasourcePath)
Creates a connection pool with a specified JNDI path.
Method Summary
voidfreeUnused()
Intended to release unused connections from the pool.
ConnectiongetConnection()
Returns a connection from the JDNI DataSource found at the JNDI Datasource path.
StringgetJndiPath()
Returns the path for the jndi datasource
booleanhasActiveConnections()
Always returns false, indicating that this wrapper has no idea of what connections the underlying JNDI source is maintaining.
booleanisEnabled()
Always returns true.
voidreleaseConnection(Connection con)
voidreleaseConnectionOnError(Connection con)
voidsetDriver(String d)
Not implemented and will throw an Error if called.
voidsetJndiPath(String jndiPath)
Sets the path for the jndi datasource
voidsetMinConnections(int n)
Ignored in this implementation b/c the pooling is determined by the jndi dataosource.
voidsetPassword(String p)
Sets the password for the connection.
voidsetPoolEnabled(boolean flag)
Releases the reference to the jndi datasource.
voidsetProtocol(Properties p)
Ignored in this implementation b/c the pooling is determined by the jndi dataosource.
voidsetURL(String url)
Not implemented and will throw an Error if called.
voidsetUser(String u)
Sets the user name for the connection.
booleantestConnection()
A simple test to see if the jndi datasource exists.

Constructor Detail

JNDIConnectionPool

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

JNDIConnectionPool

public JNDIConnectionPool(String jndiDatasourcePath)
Creates a connection pool with a specified JNDI path.

Parameters: jndiDatasourcePath Complete path to the JNDI datasource

Method Detail

freeUnused

public void freeUnused()
Intended to release unused connections from the pool. Does nothing in this implementation.

getConnection

public Connection getConnection()
Returns a connection from the JDNI DataSource found at the JNDI Datasource path.

Returns:

Throws: SQLException

getJndiPath

public String getJndiPath()
Returns the path for the jndi datasource

Parameters: jndiPath

hasActiveConnections

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

Returns:

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.

Returns:

releaseConnection

public void releaseConnection(Connection con)

releaseConnectionOnError

public void releaseConnectionOnError(Connection con)

setDriver

public void setDriver(String d)
Not implemented and will throw an Error if called. Connection configuration is handled by the underlying JNDI DataSource.

Parameters: d

setJndiPath

public void setJndiPath(String jndiPath)
Sets the path for the jndi datasource

Parameters: jndiPath

setMinConnections

public void setMinConnections(int n)
Ignored in this implementation b/c the pooling is determined by the jndi dataosource.

Parameters: n

setPassword

public void setPassword(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.

Parameters: p the password

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.

Parameters: flag If false, the reference to the datasource is released.

setProtocol

public void setProtocol(Properties p)
Ignored in this implementation b/c the pooling is determined by the jndi dataosource.

Parameters: p

setURL

public void setURL(String url)
Not implemented and will throw an Error if called. Connection configuration is handled by the underlying JNDI DataSource.

Parameters: d

setUser

public void setUser(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.

Parameters: u the user name

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