Log4j 1.3alpha-7

org.apache.log4j.db
Class JNDIConnectionSource

java.lang.Object
  extended byorg.apache.log4j.spi.ComponentBase
      extended byorg.apache.log4j.db.ConnectionSourceSkeleton
          extended byorg.apache.log4j.db.JNDIConnectionSource
All Implemented Interfaces:
Component, ConnectionSource, 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()
          Activate the options that were previously set with calls to option setters.
 Connection getConnection()
          Obtain a Connection for use.
 String getJndiLocation()
          Returns the jndiLocation.
 void setJndiLocation(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()
Description copied from interface: OptionHandler
Activate the options that were previously set with calls to option setters.

This allows to defer activiation of the options until all options have been set. This is required for components which have related options that remain ambigous until all are set.

For example, the FileAppender has the File and Append options both of which are ambigous until the other is also set.

See Also:
OptionHandler.activateOptions()

getConnection

public Connection getConnection()
                         throws 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:
SQLException - if a Connection could not be obtained
See Also:
ConnectionSource.getConnection()

getJndiLocation

public String getJndiLocation()
Returns the jndiLocation.

Returns:
String

setJndiLocation

public void setJndiLocation(String jndiLocation)
Sets the jndiLocation.

Parameters:
jndiLocation - The jndiLocation to set

Log4j 1.3alpha-7

Copyright 2000-2005 Apache Software Foundation.