com.amazon.redshift.ds

## Class RedshiftConnectionPoolDataSource

- java.lang.Object
- - com.amazon.redshift.ds.common.BaseDataSource
  - - com.amazon.redshift.ds.RedshiftConnectionPoolDataSource

All Implemented Interfaces:
  Serializable, Wrapper, Referenceable, CommonDataSource, ConnectionPoolDataSource, DataSource

Direct Known Subclasses:
  ConnectionPool, DataSource, Jdbc3ConnectionPool

    public class RedshiftConnectionPoolDataSource
    extends BaseDataSource
    implements DataSource, ConnectionPoolDataSource, Serializable

Redshift implementation of ConnectionPoolDataSource. The app server or middleware vendor should provide a DataSource implementation that takes advantage of this ConnectionPoolDataSource. If not, you can use the Redshift implementation known as PoolingDataSource, but that should only be used if your server or middleware vendor does not provide their own. Why? The server may want to reuse the same Connection across all EJBs requesting a Connection within the same Transaction, or provide other similar advanced features.

In any case, in order to use this ConnectionPoolDataSource, you must set the property databaseName. The settings for serverName, portNumber, user, and password are optional. Note: these properties are declared in the superclass.

This implementation supports JDK 1.3 and higher.

Author:
  Aaron Mulder (ammulder@chariotsolutions.com)
See Also:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`RedshiftConnectionPoolDataSource()`

### Method Summary

All Methods Instance Methods Concrete Methods
`String` `getDescription()` Gets a description of this DataSource.
`PooledConnection` `getPooledConnection()` Gets a connection which may be pooled by the app server or middleware implementation of DataSource.
`PooledConnection` `getPooledConnection(String user, String password)` Gets a connection which may be pooled by the app server or middleware implementation of DataSource.
`boolean` `isDefaultAutoCommit()` Gets whether connections supplied by this pool will have autoCommit turned on by default.
`boolean` `isWrapperFor(Class<?> iface)`
`void` `setDefaultAutoCommit(boolean defaultAutoCommit)` Sets whether connections supplied by this pool will have autoCommit turned on by default.
`<T> T` `unwrap(Class<T> iface)`

### Methods inherited from class com.amazon.redshift.ds.common.BaseDataSource

`createReference, getAllowEncodingChanges, getApplicationName, getAssumeMinServerVersion, getAutosave, getBinaryTransfer, getBinaryTransferDisable, getBinaryTransferEnable, getCancelSignalTimeout, getCleanupSavepoints, getConnection, getConnection, getConnectTimeout, getCurrentSchema, getDatabaseMetadataCacheFields, getDatabaseMetadataCacheFieldsMiB, getDatabaseName, getDefaultRowFetchSize, getDisableColumnSanitiser, getEscapeSyntaxCallMode, getGssLib, getHideUnprivilegedObjects, getHostRecheckSeconds, getJaasApplicationName, getJaasLogin, getKerberosServerName, getLoadBalanceHosts, getLogDirectory, getLoginTimeout, getLogLevel, getLogServerErrorDetail, getLogUnclosedConnections, getLogWriter, getMaxResultBuffer, getOptions, getParentLogger, getPassword, getPortNumber, getPortNumbers, getPreferQueryMode, getPreparedStatementCacheQueries, getPreparedStatementCacheSizeMiB, getPrepareThreshold, getProperty, getProperty, getProtocolVersion, getReadOnly, getReadOnlyMode, getReceiveBufferSize, getRecvBufferSize, getReference, getReplication, getReWriteBatchedInserts, getSendBufferSize, getServerName, getServerNames, getSocketFactory, getSocketFactoryArg, getSocketTimeout, getSsl, getSslcert, getSslCert, getSslfactory, getSslfactoryarg, getSslFactoryArg, getSslhostnameverifier, getSslHostnameVerifier, getSslkey, getSslKey, getSslmode, getSslMode, getSslpassword, getSslPassword, getSslpasswordcallback, getSslPasswordCallback, getSslrootcert, getSslRootCert, getSspiServiceClass, getStringType, getTargetServerType, getTcpKeepAlive, getUnknownLength, getUrl, getURL, getUser, getUserID, getUseSpNego, initializeFrom, isAllowEncodingChanges, isCleanupSavePoints, isColumnSanitiserDisabled, isDisableColumnSanitiser, isLoadBalanceHosts, isLogUnclosedConnections, isRaiseExceptionOnSilentRollback, isReadOnly, isReWriteBatchedInserts, isSsl, isTcpKeepAlive, readBaseObject, setAllowEncodingChanges, setApplicationName, setAssumeMinServerVersion, setAutosave, setBinaryTransfer, setBinaryTransferDisable, setBinaryTransferEnable, setCancelSignalTimeout, setCleanupSavepoints, setCleanupSavePoints, setConnectTimeout, setCurrentSchema, setDatabaseMetadataCacheFields, setDatabaseMetadataCacheFieldsMiB, setDatabaseName, setDefaultRowFetchSize, setDisableColumnSanitiser, setEscapeSyntaxCallMode, setFromReference, setGssLib, setHideUnprivilegedObjects, setHostRecheckSeconds, setJaasApplicationName, setJaasLogin, setKerberosServerName, setLoadBalanceHosts, setLogDirectory, setLoginTimeout, setLogLevel, setLogServerErrorDetail, setLogUnclosedConnections, setLogWriter, setMaxResultBuffer, setOptions, setPassword, setPortNumber, setPortNumbers, setPreferQueryMode, setPreparedStatementCacheQueries, setPreparedStatementCacheSizeMiB, setPrepareThreshold, setProperty, setProperty, setProtocolVersion, setRaiseExceptionOnSilentRollback, setReadOnly, setReadOnlyMode, setReceiveBufferSize, setRecvBufferSize, setReplication, setReWriteBatchedInserts, setSendBufferSize, setServerName, setServerNames, setSocketFactory, setSocketFactoryArg, setSocketTimeout, setSsl, setSslcert, setSslCert, setSslfactory, setSslfactoryarg, setSslFactoryArg, setSslhostnameverifier, setSslHostnameVerifier, setSslkey, setSslKey, setSslmode, setSslMode, setSslpassword, setSslPassword, setSslpasswordcallback, setSslPasswordCallback, setSslrootcert, setSslRootCert, setSspiServiceClass, setStringType, setTargetServerType, setTcpKeepAlive, setUnknownLength, setUrl, setURL, setUser, setUserID, setUseSpNego, writeBaseObject`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface javax.sql.DataSource

`getConnection, getConnection`

### Methods inherited from interface javax.sql.CommonDataSource

`getLoginTimeout, getLogWriter, getParentLogger, setLoginTimeout, setLogWriter`

### Constructor Detail

#### RedshiftConnectionPoolDataSource

    public RedshiftConnectionPoolDataSource()

### Method Detail

#### getDescription

    public String getDescription()

Gets a description of this DataSource.

Specified by:
  `getDescription` in class `BaseDataSource`
Returns:
  description of this DataSource-ish thing

#### getPooledConnection

    public PooledConnection getPooledConnection()
                                         throws SQLException

Gets a connection which may be pooled by the app server or middleware implementation of DataSource.

Specified by:
  `getPooledConnection` in interface `ConnectionPoolDataSource`
Throws:
  `SQLException` - Occurs when the physical database connection cannot be established.

#### getPooledConnection

    public PooledConnection getPooledConnection(String user,
                                                String password)
                                         throws SQLException

Gets a connection which may be pooled by the app server or middleware implementation of DataSource.

Specified by:
  `getPooledConnection` in interface `ConnectionPoolDataSource`
Throws:
  `SQLException` - Occurs when the physical database connection cannot be established.

#### isDefaultAutoCommit

    public boolean isDefaultAutoCommit()

Gets whether connections supplied by this pool will have autoCommit turned on by default. The default value is `true`, so that autoCommit will be turned on by default.

Returns:
  true if connections supplied by this pool will have autoCommit

#### setDefaultAutoCommit

    public void setDefaultAutoCommit(boolean defaultAutoCommit)

Sets whether connections supplied by this pool will have autoCommit turned on by default. The default value is `true`, so that autoCommit will be turned on by default.

Parameters:
  `defaultAutoCommit` - whether connections supplied by this pool will have autoCommit

#### isWrapperFor

    public boolean isWrapperFor(Class<?> iface)
                         throws SQLException

Specified by:
  `isWrapperFor` in interface `Wrapper`
Throws:
  `SQLException`

#### unwrap

    public <T> T unwrap(Class<T> iface)
                 throws SQLException

Specified by:
  `unwrap` in interface `Wrapper`
Throws:
  `SQLException`