bitronix.tm.resource.jdbc
Class PoolingDataSource

java.lang.Object
  extended bybitronix.tm.resource.common.ResourceBean
      extended bybitronix.tm.resource.jdbc.PoolingDataSource
All Implemented Interfaces:
javax.sql.DataSource, javax.naming.Referenceable, java.io.Serializable, XAResourceProducer

public class PoolingDataSource
extends ResourceBean
implements javax.sql.DataSource, XAResourceProducer

Implementation of a JDBC DataSource wrapping vendor's XADataSource implementation.

© Bitronix 2005, 2006, 2007

Author:
lorban
See Also:
Serialized Form

Constructor Summary
PoolingDataSource()
           
 
Method Summary
 void close()
          Release this XAResourceProducer's internal resources.
 XAStatefulHolder createPooledConnection(java.lang.Object xaFactory, ResourceBean bean)
          Create a XAStatefulHolder that will be placed in an XAPool.
 XAResourceProducer createResource()
          Create the resource wrapper described by this bean.
 void endRecovery()
          Release internal resources held after call to startRecovery().
 XAResourceHolder findXAResourceHolder(javax.transaction.xa.XAResource xaResource)
          Find in the XAResourceHolders created by this XAResourceProducer the one which this XAResource belongs to.
 java.sql.Connection getConnection()
           
 java.sql.Connection getConnection(java.lang.String username, java.lang.String password)
           
 int getLoginTimeout()
           
 java.io.PrintWriter getLogWriter()
           
 int getPreparedStatementCacheSize()
           
 javax.naming.Reference getReference()
          PoolingDataSource must alway have a unique name so this method builds a reference to this object using the unique name as RefAddr.
 java.lang.String getTestQuery()
           
 void init()
          Initializes the pool by creating the initial amount of connections.
 void setLoginTimeout(int seconds)
           
 void setLogWriter(java.io.PrintWriter out)
           
 void setPreparedStatementCacheSize(int preparedStatementCacheSize)
           
 void setTestQuery(java.lang.String testQuery)
          When set, the specified query will be executed on the connection acquired from the pool before being handed to the caller.
 XAResourceHolderState startRecovery()
          Prepare the recoverable XAResource producer for recovery.
 java.lang.String toString()
           
 
Methods inherited from class bitronix.tm.resource.common.ResourceBean
getAcquireIncrement, getAcquisitionInterval, getAcquisitionTimeout, getAllowLocalTransactions, getAutomaticEnlistingEnabled, getClassName, getDeferConnectionRelease, getDriverProperties, getMaxIdleTime, getMaxPoolSize, getMinPoolSize, getPoolSize, getUniqueName, getUseTmJoin, incCreatedResourcesCounter, setAcquireIncrement, setAcquisitionInterval, setAcquisitionTimeout, setAllowLocalTransactions, setAutomaticEnlistingEnabled, setClassName, setDeferConnectionRelease, setDriverProperties, setMaxIdleTime, setMaxPoolSize, setMinPoolSize, setPoolSize, setUniqueName, setUseTmJoin
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface bitronix.tm.resource.common.XAResourceProducer
getUniqueName
 

Constructor Detail

PoolingDataSource

public PoolingDataSource()
Method Detail

init

public void init()
Initializes the pool by creating the initial amount of connections.

Specified by:
init in interface XAResourceProducer

createResource

public XAResourceProducer createResource()
Deprecated. superceded by init().

Description copied from class: ResourceBean
Create the resource wrapper described by this bean.

Specified by:
createResource in class ResourceBean
Returns:
this.

getTestQuery

public java.lang.String getTestQuery()
Returns:
the query that will be used to test connections.

setTestQuery

public void setTestQuery(java.lang.String testQuery)
When set, the specified query will be executed on the connection acquired from the pool before being handed to the caller. The connections won't be tested when not set. Default value is null.

Parameters:
testQuery - the query that will be used to test connections.

getPreparedStatementCacheSize

public int getPreparedStatementCacheSize()

setPreparedStatementCacheSize

public void setPreparedStatementCacheSize(int preparedStatementCacheSize)

getConnection

public java.sql.Connection getConnection()
                                  throws java.sql.SQLException
Specified by:
getConnection in interface javax.sql.DataSource
Throws:
java.sql.SQLException

getConnection

public java.sql.Connection getConnection(java.lang.String username,
                                         java.lang.String password)
                                  throws java.sql.SQLException
Specified by:
getConnection in interface javax.sql.DataSource
Throws:
java.sql.SQLException

toString

public java.lang.String toString()

startRecovery

public XAResourceHolderState startRecovery()
Description copied from interface: XAResourceProducer
Prepare the recoverable XAResource producer for recovery.

Specified by:
startRecovery in interface XAResourceProducer
Returns:
a XAResourceHolderState object that can be used to call recover().

endRecovery

public void endRecovery()
Description copied from interface: XAResourceProducer
Release internal resources held after call to startRecovery().

Specified by:
endRecovery in interface XAResourceProducer

close

public void close()
Description copied from interface: XAResourceProducer
Release this XAResourceProducer's internal resources.

Specified by:
close in interface XAResourceProducer

createPooledConnection

public XAStatefulHolder createPooledConnection(java.lang.Object xaFactory,
                                               ResourceBean bean)
                                        throws java.lang.Exception
Description copied from interface: XAResourceProducer
Create a XAStatefulHolder that will be placed in an XAPool.

Specified by:
createPooledConnection in interface XAResourceProducer
Parameters:
xaFactory - the vendor's resource-specific XA factory.
bean - the resource-specific bean describing the resource parameters.
Returns:
a XAStatefulHolder that will be placed in an XAPool.
Throws:
java.lang.Exception - thrown when the XAStatefulHolder cannot be created.

findXAResourceHolder

public XAResourceHolder findXAResourceHolder(javax.transaction.xa.XAResource xaResource)
Description copied from interface: XAResourceProducer
Find in the XAResourceHolders created by this XAResourceProducer the one which this XAResource belongs to.

Specified by:
findXAResourceHolder in interface XAResourceProducer
Parameters:
xaResource - the XAResource to look for.
Returns:
the associated XAResourceHolder or null if the XAResource does not belong to this XAResourceProducer.

getReference

public javax.naming.Reference getReference()
                                    throws javax.naming.NamingException
PoolingDataSource must alway have a unique name so this method builds a reference to this object using the unique name as RefAddr.

Specified by:
getReference in interface javax.naming.Referenceable
Returns:
a reference to this PoolingDataSource.
Throws:
javax.naming.NamingException

getLoginTimeout

public int getLoginTimeout()
                    throws java.sql.SQLException
Specified by:
getLoginTimeout in interface javax.sql.DataSource
Throws:
java.sql.SQLException

setLoginTimeout

public void setLoginTimeout(int seconds)
                     throws java.sql.SQLException
Specified by:
setLoginTimeout in interface javax.sql.DataSource
Throws:
java.sql.SQLException

getLogWriter

public java.io.PrintWriter getLogWriter()
                                 throws java.sql.SQLException
Specified by:
getLogWriter in interface javax.sql.DataSource
Throws:
java.sql.SQLException

setLogWriter

public void setLogWriter(java.io.PrintWriter out)
                  throws java.sql.SQLException
Specified by:
setLogWriter in interface javax.sql.DataSource
Throws:
java.sql.SQLException