Package org.apache.tomcat.jdbc.pool
Class DataSourceFactory
- java.lang.Object
-
- org.apache.tomcat.jdbc.pool.DataSourceFactory
-
- All Implemented Interfaces:
javax.naming.spi.ObjectFactory
public class DataSourceFactory extends java.lang.Object implements javax.naming.spi.ObjectFactoryJNDI object factory that creates an instance of
BasicDataSourcethat has been configured based on theRefAddrvalues of the specifiedReference, which must match the names and data types of theBasicDataSourcebean properties.
Properties available for configuration:
Commons DBCP properties
- initSQL - A query that gets executed once, right after the connection is established.
- testOnConnect - run validationQuery after connection has been established.
- validationInterval - avoid excess validation, only run validation at most at this frequency - time in milliseconds.
- jdbcInterceptors - a semicolon separated list of classnames extending
JdbcInterceptorclass. - jmxEnabled - true of false, whether to register the pool with JMX.
- fairQueue - true of false, whether the pool should sacrifice a little bit of performance for true fairness.
- Author:
- Craig R. McClanahan, Dirk Verbeeck
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.String[]ALL_PROPERTIESstatic java.lang.StringOBJECT_NAMEprotected static java.lang.StringPROP_ABANDONWHENPERCENTAGEFULLprotected static java.lang.StringPROP_ACCESSTOUNDERLYINGCONNECTIONALLOWEDprotected static java.lang.StringPROP_ALTERNATE_USERNAME_ALLOWEDprotected static java.lang.StringPROP_COMMITONRETURNprotected static java.lang.StringPROP_CONNECTIONPROPERTIESprotected static java.lang.StringPROP_DATASOURCEprotected static java.lang.StringPROP_DATASOURCE_JNDIprotected static java.lang.StringPROP_DEFAULTAUTOCOMMITprotected static java.lang.StringPROP_DEFAULTCATALOGprotected static java.lang.StringPROP_DEFAULTREADONLYprotected static java.lang.StringPROP_DEFAULTTRANSACTIONISOLATIONprotected static java.lang.StringPROP_DRIVERCLASSNAMEprotected static java.lang.StringPROP_FAIR_QUEUEprotected static java.lang.StringPROP_IGNOREEXCEPTIONONPRELOADprotected static java.lang.StringPROP_INITIALSIZEprotected static java.lang.StringPROP_INITSQLprotected static java.lang.StringPROP_INTERCEPTORSprotected static java.lang.StringPROP_JMX_ENABLEDprotected static java.lang.StringPROP_LOGABANDONEDprotected static java.lang.StringPROP_LOGVALIDATIONERRORSprotected static java.lang.StringPROP_MAXACTIVEprotected static java.lang.StringPROP_MAXAGEprotected static java.lang.StringPROP_MAXIDLEprotected static java.lang.StringPROP_MAXOPENPREPAREDSTATEMENTSprotected static java.lang.StringPROP_MAXWAITprotected static java.lang.StringPROP_MINEVICTABLEIDLETIMEMILLISprotected static java.lang.StringPROP_MINIDLEprotected static java.lang.StringPROP_NUMTESTSPEREVICTIONRUNprotected static java.lang.StringPROP_PASSWORDprotected static java.lang.StringPROP_POOLPREPAREDSTATEMENTSprotected static java.lang.StringPROP_PROPAGATEINTERRUPTSTATEprotected static java.lang.StringPROP_REMOVEABANDONEDprotected static java.lang.StringPROP_REMOVEABANDONEDTIMEOUTprotected static java.lang.StringPROP_ROLLBACKONRETURNprotected static java.lang.StringPROP_SUSPECT_TIMEOUTprotected static java.lang.StringPROP_TESTONBORROWprotected static java.lang.StringPROP_TESTONCONNECTprotected static java.lang.StringPROP_TESTONRETURNprotected static java.lang.StringPROP_TESTWHILEIDLEprotected static java.lang.StringPROP_TIMEBETWEENEVICTIONRUNSMILLISprotected static java.lang.StringPROP_URLprotected static java.lang.StringPROP_USE_CON_LOCKprotected static java.lang.StringPROP_USE_EQUALSprotected static java.lang.StringPROP_USEDISPOSABLECONNECTIONFACADEprotected static java.lang.StringPROP_USERNAMEprotected static java.lang.StringPROP_USESTATEMENTFACADEprotected static java.lang.StringPROP_VALIDATIONINTERVALprotected static java.lang.StringPROP_VALIDATIONQUERYprotected static java.lang.StringPROP_VALIDATIONQUERY_TIMEOUTprotected static java.lang.StringPROP_VALIDATOR_CLASS_NAMEstatic intUNKNOWN_TRANSACTIONISOLATION
-
Constructor Summary
Constructors Constructor Description DataSourceFactory()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description javax.sql.DataSourcecreateDataSource(java.util.Properties properties)Creates and configures aDataSourceinstance based on the given properties.javax.sql.DataSourcecreateDataSource(java.util.Properties properties, javax.naming.Context context, boolean XA)java.lang.ObjectgetObjectInstance(java.lang.Object obj, javax.naming.Name name, javax.naming.Context nameCtx, java.util.Hashtable<?,?> environment)Create and return a newBasicDataSourceinstance.protected static java.util.PropertiesgetProperties(java.lang.String propText)Parse properties from the string.static PoolConfigurationparsePoolProperties(java.util.Properties properties)voidperformJNDILookup(javax.naming.Context context, PoolConfiguration poolProperties)
-
-
-
Field Detail
-
PROP_DEFAULTAUTOCOMMIT
protected static final java.lang.String PROP_DEFAULTAUTOCOMMIT
- See Also:
- Constant Field Values
-
PROP_DEFAULTREADONLY
protected static final java.lang.String PROP_DEFAULTREADONLY
- See Also:
- Constant Field Values
-
PROP_DEFAULTTRANSACTIONISOLATION
protected static final java.lang.String PROP_DEFAULTTRANSACTIONISOLATION
- See Also:
- Constant Field Values
-
PROP_DEFAULTCATALOG
protected static final java.lang.String PROP_DEFAULTCATALOG
- See Also:
- Constant Field Values
-
PROP_DRIVERCLASSNAME
protected static final java.lang.String PROP_DRIVERCLASSNAME
- See Also:
- Constant Field Values
-
PROP_PASSWORD
protected static final java.lang.String PROP_PASSWORD
- See Also:
- Constant Field Values
-
PROP_URL
protected static final java.lang.String PROP_URL
- See Also:
- Constant Field Values
-
PROP_USERNAME
protected static final java.lang.String PROP_USERNAME
- See Also:
- Constant Field Values
-
PROP_MAXACTIVE
protected static final java.lang.String PROP_MAXACTIVE
- See Also:
- Constant Field Values
-
PROP_MAXIDLE
protected static final java.lang.String PROP_MAXIDLE
- See Also:
- Constant Field Values
-
PROP_MINIDLE
protected static final java.lang.String PROP_MINIDLE
- See Also:
- Constant Field Values
-
PROP_INITIALSIZE
protected static final java.lang.String PROP_INITIALSIZE
- See Also:
- Constant Field Values
-
PROP_MAXWAIT
protected static final java.lang.String PROP_MAXWAIT
- See Also:
- Constant Field Values
-
PROP_MAXAGE
protected static final java.lang.String PROP_MAXAGE
- See Also:
- Constant Field Values
-
PROP_TESTONBORROW
protected static final java.lang.String PROP_TESTONBORROW
- See Also:
- Constant Field Values
-
PROP_TESTONRETURN
protected static final java.lang.String PROP_TESTONRETURN
- See Also:
- Constant Field Values
-
PROP_TESTWHILEIDLE
protected static final java.lang.String PROP_TESTWHILEIDLE
- See Also:
- Constant Field Values
-
PROP_TESTONCONNECT
protected static final java.lang.String PROP_TESTONCONNECT
- See Also:
- Constant Field Values
-
PROP_VALIDATIONQUERY
protected static final java.lang.String PROP_VALIDATIONQUERY
- See Also:
- Constant Field Values
-
PROP_VALIDATIONQUERY_TIMEOUT
protected static final java.lang.String PROP_VALIDATIONQUERY_TIMEOUT
- See Also:
- Constant Field Values
-
PROP_VALIDATOR_CLASS_NAME
protected static final java.lang.String PROP_VALIDATOR_CLASS_NAME
- See Also:
- Constant Field Values
-
PROP_NUMTESTSPEREVICTIONRUN
protected static final java.lang.String PROP_NUMTESTSPEREVICTIONRUN
- See Also:
- Constant Field Values
-
PROP_TIMEBETWEENEVICTIONRUNSMILLIS
protected static final java.lang.String PROP_TIMEBETWEENEVICTIONRUNSMILLIS
- See Also:
- Constant Field Values
-
PROP_MINEVICTABLEIDLETIMEMILLIS
protected static final java.lang.String PROP_MINEVICTABLEIDLETIMEMILLIS
- See Also:
- Constant Field Values
-
PROP_ACCESSTOUNDERLYINGCONNECTIONALLOWED
protected static final java.lang.String PROP_ACCESSTOUNDERLYINGCONNECTIONALLOWED
- See Also:
- Constant Field Values
-
PROP_REMOVEABANDONED
protected static final java.lang.String PROP_REMOVEABANDONED
- See Also:
- Constant Field Values
-
PROP_REMOVEABANDONEDTIMEOUT
protected static final java.lang.String PROP_REMOVEABANDONEDTIMEOUT
- See Also:
- Constant Field Values
-
PROP_LOGABANDONED
protected static final java.lang.String PROP_LOGABANDONED
- See Also:
- Constant Field Values
-
PROP_ABANDONWHENPERCENTAGEFULL
protected static final java.lang.String PROP_ABANDONWHENPERCENTAGEFULL
- See Also:
- Constant Field Values
-
PROP_POOLPREPAREDSTATEMENTS
protected static final java.lang.String PROP_POOLPREPAREDSTATEMENTS
- See Also:
- Constant Field Values
-
PROP_MAXOPENPREPAREDSTATEMENTS
protected static final java.lang.String PROP_MAXOPENPREPAREDSTATEMENTS
- See Also:
- Constant Field Values
-
PROP_CONNECTIONPROPERTIES
protected static final java.lang.String PROP_CONNECTIONPROPERTIES
- See Also:
- Constant Field Values
-
PROP_INITSQL
protected static final java.lang.String PROP_INITSQL
- See Also:
- Constant Field Values
-
PROP_INTERCEPTORS
protected static final java.lang.String PROP_INTERCEPTORS
- See Also:
- Constant Field Values
-
PROP_VALIDATIONINTERVAL
protected static final java.lang.String PROP_VALIDATIONINTERVAL
- See Also:
- Constant Field Values
-
PROP_JMX_ENABLED
protected static final java.lang.String PROP_JMX_ENABLED
- See Also:
- Constant Field Values
-
PROP_FAIR_QUEUE
protected static final java.lang.String PROP_FAIR_QUEUE
- See Also:
- Constant Field Values
-
PROP_USE_EQUALS
protected static final java.lang.String PROP_USE_EQUALS
- See Also:
- Constant Field Values
-
PROP_USE_CON_LOCK
protected static final java.lang.String PROP_USE_CON_LOCK
- See Also:
- Constant Field Values
-
PROP_DATASOURCE
protected static final java.lang.String PROP_DATASOURCE
- See Also:
- Constant Field Values
-
PROP_DATASOURCE_JNDI
protected static final java.lang.String PROP_DATASOURCE_JNDI
- See Also:
- Constant Field Values
-
PROP_SUSPECT_TIMEOUT
protected static final java.lang.String PROP_SUSPECT_TIMEOUT
- See Also:
- Constant Field Values
-
PROP_ALTERNATE_USERNAME_ALLOWED
protected static final java.lang.String PROP_ALTERNATE_USERNAME_ALLOWED
- See Also:
- Constant Field Values
-
PROP_COMMITONRETURN
protected static final java.lang.String PROP_COMMITONRETURN
- See Also:
- Constant Field Values
-
PROP_ROLLBACKONRETURN
protected static final java.lang.String PROP_ROLLBACKONRETURN
- See Also:
- Constant Field Values
-
PROP_USEDISPOSABLECONNECTIONFACADE
protected static final java.lang.String PROP_USEDISPOSABLECONNECTIONFACADE
- See Also:
- Constant Field Values
-
PROP_LOGVALIDATIONERRORS
protected static final java.lang.String PROP_LOGVALIDATIONERRORS
- See Also:
- Constant Field Values
-
PROP_PROPAGATEINTERRUPTSTATE
protected static final java.lang.String PROP_PROPAGATEINTERRUPTSTATE
- See Also:
- Constant Field Values
-
PROP_IGNOREEXCEPTIONONPRELOAD
protected static final java.lang.String PROP_IGNOREEXCEPTIONONPRELOAD
- See Also:
- Constant Field Values
-
PROP_USESTATEMENTFACADE
protected static final java.lang.String PROP_USESTATEMENTFACADE
- See Also:
- Constant Field Values
-
UNKNOWN_TRANSACTIONISOLATION
public static final int UNKNOWN_TRANSACTIONISOLATION
- See Also:
- Constant Field Values
-
OBJECT_NAME
public static final java.lang.String OBJECT_NAME
- See Also:
- Constant Field Values
-
ALL_PROPERTIES
protected static final java.lang.String[] ALL_PROPERTIES
-
-
Method Detail
-
getObjectInstance
public java.lang.Object getObjectInstance(java.lang.Object obj, javax.naming.Name name, javax.naming.Context nameCtx, java.util.Hashtable<?,?> environment) throws java.lang.ExceptionCreate and return a new
BasicDataSourceinstance. If no instance can be created, returnnullinstead.- Specified by:
getObjectInstancein interfacejavax.naming.spi.ObjectFactory- Parameters:
obj- The possibly null object containing location or reference information that can be used in creating an objectname- The name of this object relative tonameCtxnameCtx- The context relative to which thenameparameter is specified, ornullifnameis relative to the default initial contextenvironment- The possibly null environment that is used in creating this object- Throws:
java.lang.Exception- if an exception occurs creating the instance
-
parsePoolProperties
public static PoolConfiguration parsePoolProperties(java.util.Properties properties)
-
createDataSource
public javax.sql.DataSource createDataSource(java.util.Properties properties) throws java.lang.ExceptionCreates and configures aDataSourceinstance based on the given properties.- Parameters:
properties- the datasource configuration properties- Returns:
- the datasource
- Throws:
java.lang.Exception- if an error occurs creating the data source
-
createDataSource
public javax.sql.DataSource createDataSource(java.util.Properties properties, javax.naming.Context context, boolean XA) throws java.lang.Exception- Throws:
java.lang.Exception
-
performJNDILookup
public void performJNDILookup(javax.naming.Context context, PoolConfiguration poolProperties)
-
getProperties
protected static java.util.Properties getProperties(java.lang.String propText)
Parse properties from the string. Format of the string must be [propertyName=property;]*.- Parameters:
propText- The properties string- Returns:
- the properties
-
-