@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.InitializingBean
java.sql.SQLException
java.lang.IllegalAccessException
java.lang.IllegalArgumentException
java.lang.reflect.InvocationTargetException
public void setConnectionFactoryClassName(java.lang.String connectionFactoryClassName)
public void setServerName(java.lang.String serverName) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setPortNumber(int portNumber) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setDatabaseName(java.lang.String databaseName) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setDataSourceName(java.lang.String dataSourceName) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setDescription(java.lang.String description) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setNetworkProtocol(java.lang.String networkProtocol) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setRoleName(java.lang.String roleName) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setValidateConnectionOnBorrow(boolean validateConnectionOnBorrow) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setSQLForValidateConnection(java.lang.String sqlForValidateConnection) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setConnectionPoolName(java.lang.String connectionPoolName) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setInitialPoolSize(int initialPoolSize) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setMinPoolSize(int minPoolSize) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setMaxPoolSize(int maxPoolSize) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setAbandonedConnectionTimeout(int abandonedConnectionTimeout) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setTimeToLiveConnectionTimeout(int timeToLiveConnectionTimeout) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setInactiveConnectionTimeout(int inactiveConnectionTimeout) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setMaxIdleTime(int maxIdleTime) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setTimeoutCheckInterval(int timeoutCheckInterval) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setPropertyCycle(int propertyCycle) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setMaxStatements(int maxStatements) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setConnectionWaitTimeout(int connectionWaitTimeout) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setMaxConnectionReuseTime(int maxConnectionReuseTime) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setMaxConnectionReuseCount(int maxConnectionReuseCount) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setConnectionHarvestTriggerCount(int connectionHarvestTriggerCount) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setConnectionHarvestMaxCount(int connectionHarvestMaxCount) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setFastConnectionFailoverEnabled(boolean fastConnectionFailoverEnabled) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setONSConfiguration(java.lang.String onsConfiguration) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setSecondsToTrustIdleConnection(int secondsToTrustIdleConnection) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setConnectionLabelingHighCost(int connectionLabelingHighCost) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setConnectionRepurposeThreshold(int connectionRepurposeThreshold) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setHighCostConnectionReuseThreshold(int highCostConnectionReuseThreshold) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setMaxConnectionsPerShard(int maxConnectionsPerShard) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setShardingMode(boolean shardingMode) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public void setConnectionValidationTimeout(int connectionValidationTimeout) throws java.lang.NoSuchMethodException, java.lang.SecurityException
java.lang.NoSuchMethodException
java.lang.SecurityException
public java.util.logging.Logger getParentLogger() throws java.sql.SQLFeatureNotSupportedException
getParentLogger
in interface javax.sql.CommonDataSource
java.sql.SQLFeatureNotSupportedException
public <T> T unwrap(java.lang.Class<T> iface) throws java.sql.SQLException
unwrap
in interface java.sql.Wrapper
java.sql.SQLException
public boolean isWrapperFor(java.lang.Class<?> iface) throws java.sql.SQLException
isWrapperFor
in interface java.sql.Wrapper
java.sql.SQLException
public java.sql.Connection getConnection() throws java.sql.SQLException
getConnection
in interface javax.sql.DataSource
java.sql.SQLException
public java.sql.Connection getConnection(java.lang.String username, java.lang.String password) throws java.sql.SQLException
getConnection
in interface javax.sql.DataSource
java.sql.SQLException
public java.io.PrintWriter getLogWriter() throws java.sql.SQLException
getLogWriter
in interface javax.sql.CommonDataSource
java.sql.SQLException
public void setLogWriter(java.io.PrintWriter out) throws java.sql.SQLException
setLogWriter
in interface javax.sql.CommonDataSource
java.sql.SQLException
public void setLoginTimeout(int loginTimeout) throws java.sql.SQLException
setLoginTimeout
in interface javax.sql.CommonDataSource
java.sql.SQLException
public int getLoginTimeout() throws java.sql.SQLException
getLoginTimeout
in interface javax.sql.CommonDataSource
java.sql.SQLException