org.apache.log4j.db
Class JNDIConnectionSource

java.lang.Object
  extended by org.apache.log4j.spi.ComponentBase
      extended by org.apache.log4j.db.ConnectionSourceSkeleton
          extended by org.apache.log4j.db.JNDIConnectionSource
All Implemented Interfaces:
ConnectionSource, org.apache.log4j.spi.Component, org.apache.log4j.spi.OptionHandler

public class JNDIConnectionSource
extends ConnectionSourceSkeleton

The JNDIConnectionSource is an implementation of ConnectionSource that obtains a DataSource from a JNDI provider and uses it to obtain a Connection. It is primarily designed to be used inside of J2EE application servers or application server clients, assuming the application server supports remote access of DataSources. In this way one can take advantage of connection pooling and whatever other goodies the application server provides.

Sample configuration:

    <connectionSource class="org.apache.log4j.jdbc.JNDIConnectionSource">
        <param name="jndiLocation" value="jdbc/MySQLDS" />
    </connectionSource>
  

Sample configuration (with username and password):

    <connectionSource class="org.apache.log4j.jdbc.JNDIConnectionSource">
        <param name="jndiLocation" value="jdbc/MySQLDS" />
        <param name="username" value="myUser" />
        <param name="password" value="myPassword" />
    </connectionSource>
  

Note that this class will obtain an InitialContext using the no-argument constructor. This will usually work when executing within a J2EE environment. When outside the J2EE environment, make sure that you provide a jndi.properties file as described by your JNDI provider's documentation.

Author:
Ray DeCampo

Field Summary
 
Fields inherited from class org.apache.log4j.spi.ComponentBase
repository
 
Fields inherited from interface org.apache.log4j.db.ConnectionSource
HSQL_DIALECT, MSSQL_DIALECT, MYSQL_DIALECT, ORACLE_DIALECT, POSTGRES_DIALECT, UNKNOWN_DIALECT
 
Constructor Summary
JNDIConnectionSource()
           
 
Method Summary
 void activateOptions()
           
 java.sql.Connection getConnection()
          Obtain a Connection for use.
 java.lang.String getJndiLocation()
          Returns the jndiLocation.
 void setJndiLocation(java.lang.String jndiLocation)
          Sets the jndiLocation.
 
Methods inherited from class org.apache.log4j.db.ConnectionSourceSkeleton
discoverConnnectionProperties, getPassword, getSQLDialectCode, getUser, setPassword, setUser, supportsBatchUpdates, supportsGetGeneratedKeys
 
Methods inherited from class org.apache.log4j.spi.ComponentBase
getLogger, getLoggerRepository, getNonFloodingLogger, resetErrorCount, setLoggerRepository
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.log4j.spi.Component
setLoggerRepository
 

Constructor Detail

JNDIConnectionSource

public JNDIConnectionSource()
Method Detail

activateOptions

public void activateOptions()
See Also:
OptionHandler.activateOptions()

getConnection

public java.sql.Connection getConnection()
                                  throws java.sql.SQLException
Description copied from interface: ConnectionSource
Obtain a Connection for use. The client is responsible for closing the Connection when it is no longer required.

Throws:
java.sql.SQLException - if a Connection could not be obtained
See Also:
ConnectionSource.getConnection()

getJndiLocation

public java.lang.String getJndiLocation()
Returns the jndiLocation.

Returns:
String

setJndiLocation

public void setJndiLocation(java.lang.String jndiLocation)
Sets the jndiLocation.

Parameters:
jndiLocation - The jndiLocation to set


Copyright © 2007 Apache Software Foundation. All Rights Reserved.