@Configuration
@ConfigurationProperties(value="spring.datasource.ucp")
public class UCPDataSource
extends java.lang.Object
implements javax.sql.DataSource, org.springframework.beans.factory.InitializingBean
This decorator of PoolDataSource
allows UCP to be configured as the pooled datasource in Spring Boot
applications using Autoconfigure.
In order for Spring to use this data source, the following attribute needs
to be set: spring.datasource.type=oracle.ucp.jdbc.UCPDataSource
Spring injects both camel-case notation or slash separated. Eg: both maxPoolSize and max-pool-size will update maxPoolSize attribute.
Common attributes with other connection pool implementors:
Common attribute, to use this bean:
Non-optional attribute, specific to UCP:
Optional attributes, specific to UCP:
| Constructor and Description |
|---|
UCPDataSource() |
| Modifier and Type | Method and Description |
|---|---|
void |
afterPropertiesSet()
After the bean has all its properties injected, this method creates the
PoolDataSource decorated instance. |
javax.sql.DataSource |
datasource()
Returns the datasource
@Bean reference. |
java.sql.Connection |
getConnection() |
java.sql.Connection |
getConnection(java.lang.String username,
java.lang.String password) |
int |
getLoginTimeout() |
java.io.PrintWriter |
getLogWriter() |
java.util.logging.Logger |
getParentLogger() |
PoolDataSource |
getPoolDataSource()
Returns the reference to the instantiated
PoolDataSource. |
boolean |
isWrapperFor(java.lang.Class<?> iface) |
void |
setAbandonedConnectionTimeout(int abandonedConnectionTimeout) |
void |
setConnectionFactoryClassName(java.lang.String connectionFactoryClassName) |
void |
setConnectionHarvestMaxCount(int connectionHarvestMaxCount) |
void |
setConnectionHarvestTriggerCount(int connectionHarvestTriggerCount) |
void |
setConnectionLabelingHighCost(int connectionLabelingHighCost) |
void |
setConnectionPoolName(java.lang.String connectionPoolName) |
void |
setConnectionRepurposeThreshold(int connectionRepurposeThreshold) |
void |
setConnectionValidationTimeout(int connectionValidationTimeout) |
void |
setConnectionWaitTimeout(int connectionWaitTimeout) |
void |
setDatabaseName(java.lang.String databaseName) |
void |
setDataSourceName(java.lang.String dataSourceName) |
void |
setDescription(java.lang.String description) |
void |
setFastConnectionFailoverEnabled(boolean fastConnectionFailoverEnabled) |
void |
setHighCostConnectionReuseThreshold(int highCostConnectionReuseThreshold) |
void |
setInactiveConnectionTimeout(int inactiveConnectionTimeout) |
void |
setInitialPoolSize(int initialPoolSize) |
void |
setLoginTimeout(int loginTimeout) |
void |
setLogWriter(java.io.PrintWriter out) |
void |
setMaxConnectionReuseCount(int maxConnectionReuseCount) |
void |
setMaxConnectionReuseTime(int maxConnectionReuseTime) |
void |
setMaxConnectionsPerShard(int maxConnectionsPerShard) |
void |
setMaxIdleTime(int maxIdleTime) |
void |
setMaxPoolSize(int maxPoolSize) |
void |
setMaxStatements(int maxStatements) |
void |
setMinPoolSize(int minPoolSize) |
void |
setNetworkProtocol(java.lang.String networkProtocol) |
void |
setONSConfiguration(java.lang.String onsConfiguration) |
void |
setPortNumber(int portNumber) |
void |
setPropertyCycle(int propertyCycle) |
void |
setRoleName(java.lang.String roleName) |
void |
setSecondsToTrustIdleConnection(int secondsToTrustIdleConnection) |
void |
setServerName(java.lang.String serverName) |
void |
setShardingMode(boolean shardingMode) |
void |
setSQLForValidateConnection(java.lang.String sqlForValidateConnection) |
void |
setTimeoutCheckInterval(int timeoutCheckInterval) |
void |
setTimeToLiveConnectionTimeout(int timeToLiveConnectionTimeout) |
void |
setValidateConnectionOnBorrow(boolean validateConnectionOnBorrow) |
<T> T |
unwrap(java.lang.Class<T> iface) |
@Bean public javax.sql.DataSource datasource()
@Bean reference.
This is picked-up automatically by other Spring beans,
in particulary (JdbTemplate @Bean).public PoolDataSource getPoolDataSource()
PoolDataSource.
After initialization, interaction with the pool is through this method.public void afterPropertiesSet()
throws java.sql.SQLException,
java.lang.IllegalAccessException,
java.lang.IllegalArgumentException,
java.lang.reflect.InvocationTargetException
PoolDataSource decorated instance.afterPropertiesSet in interface org.springframework.beans.factory.InitializingBeanjava.sql.SQLExceptionjava.lang.IllegalAccessExceptionjava.lang.IllegalArgumentExceptionjava.lang.reflect.InvocationTargetExceptionpublic void setConnectionFactoryClassName(java.lang.String connectionFactoryClassName)
public void setServerName(java.lang.String serverName)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setPortNumber(int portNumber)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setDatabaseName(java.lang.String databaseName)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setDataSourceName(java.lang.String dataSourceName)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setDescription(java.lang.String description)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setNetworkProtocol(java.lang.String networkProtocol)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setRoleName(java.lang.String roleName)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setValidateConnectionOnBorrow(boolean validateConnectionOnBorrow)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setSQLForValidateConnection(java.lang.String sqlForValidateConnection)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setConnectionPoolName(java.lang.String connectionPoolName)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setInitialPoolSize(int initialPoolSize)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setMinPoolSize(int minPoolSize)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setMaxPoolSize(int maxPoolSize)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setAbandonedConnectionTimeout(int abandonedConnectionTimeout)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setTimeToLiveConnectionTimeout(int timeToLiveConnectionTimeout)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setInactiveConnectionTimeout(int inactiveConnectionTimeout)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setMaxIdleTime(int maxIdleTime)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setTimeoutCheckInterval(int timeoutCheckInterval)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setPropertyCycle(int propertyCycle)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setMaxStatements(int maxStatements)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setConnectionWaitTimeout(int connectionWaitTimeout)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setMaxConnectionReuseTime(int maxConnectionReuseTime)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setMaxConnectionReuseCount(int maxConnectionReuseCount)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setConnectionHarvestTriggerCount(int connectionHarvestTriggerCount)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setConnectionHarvestMaxCount(int connectionHarvestMaxCount)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setFastConnectionFailoverEnabled(boolean fastConnectionFailoverEnabled)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setONSConfiguration(java.lang.String onsConfiguration)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setSecondsToTrustIdleConnection(int secondsToTrustIdleConnection)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setConnectionLabelingHighCost(int connectionLabelingHighCost)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setConnectionRepurposeThreshold(int connectionRepurposeThreshold)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setHighCostConnectionReuseThreshold(int highCostConnectionReuseThreshold)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setMaxConnectionsPerShard(int maxConnectionsPerShard)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setShardingMode(boolean shardingMode)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic void setConnectionValidationTimeout(int connectionValidationTimeout)
throws java.lang.NoSuchMethodException,
java.lang.SecurityException
java.lang.NoSuchMethodExceptionjava.lang.SecurityExceptionpublic java.util.logging.Logger getParentLogger()
throws java.sql.SQLFeatureNotSupportedException
getParentLogger in interface javax.sql.CommonDataSourcejava.sql.SQLFeatureNotSupportedExceptionpublic <T> T unwrap(java.lang.Class<T> iface)
throws java.sql.SQLException
unwrap in interface java.sql.Wrapperjava.sql.SQLExceptionpublic boolean isWrapperFor(java.lang.Class<?> iface)
throws java.sql.SQLException
isWrapperFor in interface java.sql.Wrapperjava.sql.SQLExceptionpublic java.sql.Connection getConnection()
throws java.sql.SQLException
getConnection in interface javax.sql.DataSourcejava.sql.SQLExceptionpublic java.sql.Connection getConnection(java.lang.String username,
java.lang.String password)
throws java.sql.SQLException
getConnection in interface javax.sql.DataSourcejava.sql.SQLExceptionpublic java.io.PrintWriter getLogWriter()
throws java.sql.SQLException
getLogWriter in interface javax.sql.CommonDataSourcejava.sql.SQLExceptionpublic void setLogWriter(java.io.PrintWriter out)
throws java.sql.SQLException
setLogWriter in interface javax.sql.CommonDataSourcejava.sql.SQLExceptionpublic void setLoginTimeout(int loginTimeout)
throws java.sql.SQLException
setLoginTimeout in interface javax.sql.CommonDataSourcejava.sql.SQLExceptionpublic int getLoginTimeout()
throws java.sql.SQLException
getLoginTimeout in interface javax.sql.CommonDataSourcejava.sql.SQLException