Class PoolingDataSource<C extends java.sql.Connection>
- java.lang.Object
-
- org.datanucleus.store.rdbms.datasource.dbcp2.PoolingDataSource<C>
-
- Type Parameters:
C
- The connection type
- All Implemented Interfaces:
java.lang.AutoCloseable
,java.sql.Wrapper
,javax.sql.CommonDataSource
,javax.sql.DataSource
public class PoolingDataSource<C extends java.sql.Connection> extends java.lang.Object implements javax.sql.DataSource, java.lang.AutoCloseable
- Since:
- 2.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
PoolingDataSource.PoolGuardConnectionWrapper<D extends java.sql.Connection>
PoolGuardConnectionWrapper is a Connection wrapper that makes sure a closed connection cannot be used anymore.
-
Field Summary
Fields Modifier and Type Field Description private boolean
accessToUnderlyingConnectionAllowed
Controls access to the underlying connectionprivate static org.datanucleus.util.NucleusLogger
log
private java.io.PrintWriter
logWriter
My log writer.private ObjectPool<C>
pool
-
Constructor Summary
Constructors Constructor Description PoolingDataSource(ObjectPool<C> pool)
Constructs a new instance backed by the given connection pool.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Closes and free allConnection
s from the pool.java.sql.Connection
getConnection()
Returns aConnection
from my pool, according to the contract specified byObjectPool.borrowObject()
.java.sql.Connection
getConnection(java.lang.String uname, java.lang.String passwd)
ThrowsUnsupportedOperationException
int
getLoginTimeout()
ThrowsUnsupportedOperationException
.java.io.PrintWriter
getLogWriter()
Returns my log writer.java.util.logging.Logger
getParentLogger()
protected ObjectPool<C>
getPool()
boolean
isAccessToUnderlyingConnectionAllowed()
Returns the value of the accessToUnderlyingConnectionAllowed property.boolean
isWrapperFor(java.lang.Class<?> iface)
void
setAccessToUnderlyingConnectionAllowed(boolean allow)
Sets the value of the accessToUnderlyingConnectionAllowed property.void
setLoginTimeout(int seconds)
ThrowsUnsupportedOperationException
.void
setLogWriter(java.io.PrintWriter out)
Sets my log writer.<T> T
unwrap(java.lang.Class<T> iface)
-
-
-
Field Detail
-
log
private static final org.datanucleus.util.NucleusLogger log
-
accessToUnderlyingConnectionAllowed
private boolean accessToUnderlyingConnectionAllowed
Controls access to the underlying connection
-
logWriter
private java.io.PrintWriter logWriter
My log writer.
-
pool
private final ObjectPool<C extends java.sql.Connection> pool
-
-
Constructor Detail
-
PoolingDataSource
public PoolingDataSource(ObjectPool<C> pool)
Constructs a new instance backed by the given connection pool.- Parameters:
pool
- the given connection pool.
-
-
Method Detail
-
close
public void close() throws java.lang.RuntimeException, java.sql.SQLException
Closes and free allConnection
s from the pool.- Specified by:
close
in interfacejava.lang.AutoCloseable
- Throws:
java.lang.RuntimeException
java.sql.SQLException
- Since:
- 2.1
-
isAccessToUnderlyingConnectionAllowed
public boolean isAccessToUnderlyingConnectionAllowed()
Returns the value of the accessToUnderlyingConnectionAllowed property.- Returns:
- true if access to the underlying
Connection
is allowed, false otherwise.
-
setAccessToUnderlyingConnectionAllowed
public void setAccessToUnderlyingConnectionAllowed(boolean allow)
Sets the value of the accessToUnderlyingConnectionAllowed property. It controls if the PoolGuard allows access to the underlying connection. (Default: false)- Parameters:
allow
- Access to the underlying connection is granted when true.
-
isWrapperFor
public boolean isWrapperFor(java.lang.Class<?> iface) throws java.sql.SQLException
- Specified by:
isWrapperFor
in interfacejava.sql.Wrapper
- Throws:
java.sql.SQLException
-
unwrap
public <T> T unwrap(java.lang.Class<T> iface) throws java.sql.SQLException
- Specified by:
unwrap
in interfacejava.sql.Wrapper
- Throws:
java.sql.SQLException
-
getParentLogger
public java.util.logging.Logger getParentLogger() throws java.sql.SQLFeatureNotSupportedException
- Specified by:
getParentLogger
in interfacejavax.sql.CommonDataSource
- Throws:
java.sql.SQLFeatureNotSupportedException
-
getConnection
public java.sql.Connection getConnection() throws java.sql.SQLException
Returns aConnection
from my pool, according to the contract specified byObjectPool.borrowObject()
.- Specified by:
getConnection
in interfacejavax.sql.DataSource
- Throws:
java.sql.SQLException
-
getConnection
public java.sql.Connection getConnection(java.lang.String uname, java.lang.String passwd) throws java.sql.SQLException
ThrowsUnsupportedOperationException
- Specified by:
getConnection
in interfacejavax.sql.DataSource
- Throws:
java.lang.UnsupportedOperationException
- always thrownjava.sql.SQLException
-
getLogWriter
public java.io.PrintWriter getLogWriter()
Returns my log writer.- Specified by:
getLogWriter
in interfacejavax.sql.CommonDataSource
- Specified by:
getLogWriter
in interfacejavax.sql.DataSource
- Returns:
- my log writer
- See Also:
DataSource.getLogWriter()
-
getLoginTimeout
public int getLoginTimeout()
ThrowsUnsupportedOperationException
.- Specified by:
getLoginTimeout
in interfacejavax.sql.CommonDataSource
- Specified by:
getLoginTimeout
in interfacejavax.sql.DataSource
- Throws:
java.lang.UnsupportedOperationException
- As this implementation does not support this feature.
-
setLoginTimeout
public void setLoginTimeout(int seconds)
ThrowsUnsupportedOperationException
.- Specified by:
setLoginTimeout
in interfacejavax.sql.CommonDataSource
- Specified by:
setLoginTimeout
in interfacejavax.sql.DataSource
- Throws:
java.lang.UnsupportedOperationException
- As this implementation does not support this feature.
-
setLogWriter
public void setLogWriter(java.io.PrintWriter out)
Sets my log writer.- Specified by:
setLogWriter
in interfacejavax.sql.CommonDataSource
- Specified by:
setLogWriter
in interfacejavax.sql.DataSource
- See Also:
DataSource.setLogWriter(java.io.PrintWriter)
-
getPool
protected ObjectPool<C> getPool()
-
-