Class SharedPoolDataSource
java.lang.Object
org.datanucleus.store.rdbms.datasource.dbcp2.datasources.InstanceKeyDataSource
org.datanucleus.store.rdbms.datasource.dbcp2.datasources.SharedPoolDataSource
- All Implemented Interfaces:
Serializable, AutoCloseable, Wrapper, Referenceable, CommonDataSource, DataSource
A pooling DataSource appropriate for deployment within J2EE environment. There are many configuration
options, most of which are defined in the parent class. All users (based on user name) share a single maximum number
of Connections in this data source.
User passwords can be changed without re-initializing the data source. When a
getConnection(user name, password) request is processed with a password that is different from those
used to create connections in the pool associated with user name, an attempt is made to create a new
connection using the supplied password and if this succeeds, idle connections created using the old password are
destroyed and new connections are created using the new password.
- Since:
- 2.0
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate KeyedCPDSConnectionFactoryprivate intprivate static final longFields inherited from class InstanceKeyDataSource
UNKNOWN_TRANSACTIONISOLATION -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Closes pool being maintained by this data source.protected PooledConnectionManagergetConnectionManager(UserPassKey upkey) intGetsBaseGenericObjectPool.getMaxTotal()for this pool.intGets the number of active connections in the pool.intGets the number of idle connections in the pool.protected PooledConnectionAndInfogetPooledConnectionAndInfo(String userName, String userPassword) Returns aSharedPoolDataSourceReference.private voidSupports Serialization interface.private voidregisterPool(String userName, String password) voidsetMaxTotal(int maxTotal) SetsBaseGenericObjectPool.getMaxTotal()for this pool.protected voidsetupDefaults(Connection connection, String userName) protected voidtoStringFields(StringBuilder builder) Methods inherited from class InstanceKeyDataSource
assertInitializationAllowed, getConnection, getConnection, getConnectionPoolDataSource, getDataSourceName, getDefaultBlockWhenExhausted, getDefaultEvictionPolicyClassName, getDefaultLifo, getDefaultMaxIdle, getDefaultMaxTotal, getDefaultMaxWaitMillis, getDefaultMinEvictableIdleTimeMillis, getDefaultMinIdle, getDefaultNumTestsPerEvictionRun, getDefaultSoftMinEvictableIdleTimeMillis, getDefaultTestOnBorrow, getDefaultTestOnCreate, getDefaultTestOnReturn, getDefaultTestWhileIdle, getDefaultTimeBetweenEvictionRunsMillis, getDefaultTransactionIsolation, getDescription, getInstanceKey, getJndiEnvironment, getLoginTimeout, getLogWriter, getMaxConnLifetimeMillis, getParentLogger, getValidationQuery, getValidationQueryTimeout, isDefaultAutoCommit, isDefaultReadOnly, isRollbackAfterValidation, isWrapperFor, setConnectionPoolDataSource, setDataSourceName, setDefaultAutoCommit, setDefaultBlockWhenExhausted, setDefaultEvictionPolicyClassName, setDefaultLifo, setDefaultMaxIdle, setDefaultMaxTotal, setDefaultMaxWaitMillis, setDefaultMinEvictableIdleTimeMillis, setDefaultMinIdle, setDefaultNumTestsPerEvictionRun, setDefaultReadOnly, setDefaultSoftMinEvictableIdleTimeMillis, setDefaultTestOnBorrow, setDefaultTestOnCreate, setDefaultTestOnReturn, setDefaultTestWhileIdle, setDefaultTimeBetweenEvictionRunsMillis, setDefaultTransactionIsolation, setDescription, setJndiEnvironment, setJndiEnvironment, setLoginTimeout, setLogWriter, setMaxConnLifetimeMillis, setRollbackAfterValidation, setValidationQuery, setValidationQueryTimeout, testCPDS, toString, unwrapMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface CommonDataSource
createShardingKeyBuilderMethods inherited from interface DataSource
createConnectionBuilder
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
maxTotal
private int maxTotal -
pool
-
factory
-
-
Constructor Details
-
SharedPoolDataSource
public SharedPoolDataSource()Default no-argument constructor for Serialization
-
-
Method Details
-
close
Closes pool being maintained by this data source.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein classInstanceKeyDataSource- Throws:
Exception
-
getMaxTotal
public int getMaxTotal()GetsBaseGenericObjectPool.getMaxTotal()for this pool.- Returns:
BaseGenericObjectPool.getMaxTotal()for this pool.
-
setMaxTotal
public void setMaxTotal(int maxTotal) SetsBaseGenericObjectPool.getMaxTotal()for this pool.- Parameters:
maxTotal-BaseGenericObjectPool.getMaxTotal()for this pool.
-
getNumActive
public int getNumActive()Gets the number of active connections in the pool.- Returns:
- The number of active connections in the pool.
-
getNumIdle
public int getNumIdle()Gets the number of idle connections in the pool.- Returns:
- The number of idle connections in the pool.
-
getPooledConnectionAndInfo
protected PooledConnectionAndInfo getPooledConnectionAndInfo(String userName, String userPassword) throws SQLException - Specified by:
getPooledConnectionAndInfoin classInstanceKeyDataSource- Throws:
SQLException
-
getConnectionManager
- Specified by:
getConnectionManagerin classInstanceKeyDataSource
-
getReference
Returns aSharedPoolDataSourceReference.- Throws:
NamingException
-
registerPool
- Throws:
NamingExceptionSQLException
-
setupDefaults
- Specified by:
setupDefaultsin classInstanceKeyDataSource- Throws:
SQLException
-
readObject
Supports Serialization interface.- Parameters:
in- ajava.io.ObjectInputStreamvalue- Throws:
IOException- if an error occursClassNotFoundException- if an error occurs
-
toStringFields
- Overrides:
toStringFieldsin classInstanceKeyDataSource
-