org.apache.tomcat.jdbc.pool

## Class DataSource

- java.lang.Object
- - org.apache.tomcat.jdbc.pool.DataSourceProxy
  - - org.apache.tomcat.jdbc.pool.DataSource

- All Implemented Interfaces:
    Wrapper, MBeanRegistration, CommonDataSource, ConnectionPoolDataSource, DataSource, ConnectionPoolMBean, PoolConfiguration
  Direct Known Subclasses:
    XADataSource

      public class DataSource
      extends DataSourceProxy
      implements DataSource, MBeanRegistration, ConnectionPoolMBean, ConnectionPoolDataSource

  A DataSource that can be instantiated through IoC and implements the DataSource interface since the DataSourceProxy is used as a generic proxy. The DataSource simply wraps a `ConnectionPool` in order to provide a standard interface to the user.
  Version:
    1.0

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected ObjectName` | `oname`

    - ### Fields inherited from class org.apache.tomcat.jdbc.pool.DataSourceProxy

      `pool, poolProperties`

    - ### Fields inherited from interface org.apache.tomcat.jdbc.pool.PoolConfiguration

      `PKG_PREFIX`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DataSource()` Constructor for reflection only.
    `DataSource(PoolConfiguration poolProperties)` Constructs a DataSource object wrapping a connection

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `ObjectName` | `createObjectName(ObjectName original)` Creates the ObjectName for the ConnectionPoolMBean object to be registered
    `void` | `postDeregister()` Unregisters the underlying connection pool mbean.
    `void` | `postRegister(Boolean registrationDone)` no-op
    `void` | `preDeregister()` no-op
    `ObjectName` | `preRegister(MBeanServer server, ObjectName name)` If the connection pool MBean exists, it will be registered during this operation.
    `protected void` | `registerJmx()` Registers the ConnectionPoolMBean under a unique name based on the ObjectName for the DataSource
    `protected void` | `unregisterJmx()`

    - ### Methods inherited from class org.apache.tomcat.jdbc.pool.DataSourceProxy

      `checkAbandoned, checkIdle, close, close, createPool, getAbandonWhenPercentageFull, getActive, getBorrowedCount, getCommitOnReturn, getConnection, getConnection, getConnectionAsync, getConnectionProperties, getCreatedCount, getDataSource, getDataSourceJNDI, getDbProperties, getDefaultAutoCommit, getDefaultCatalog, getDefaultReadOnly, getDefaultTransactionIsolation, getDriverClassName, getIdle, getInitialSize, getInitSQL, getJdbcInterceptors, getJdbcInterceptorsAsArray, getLoginTimeout, getLogValidationErrors, getLogWriter, getMaxActive, getMaxAge, getMaxIdle, getMaxWait, getMinEvictableIdleTimeMillis, getMinIdle, getName, getNumActive, getNumIdle, getNumTestsPerEvictionRun, getParentLogger, getPassword, getPool, getPooledConnection, getPooledConnection, getPoolName, getPoolProperties, getPoolSize, getPropagateInterruptState, getReconnectedCount, getReleasedCount, getReleasedIdleCount, getRemoveAbandonedCount, getRemoveAbandonedTimeout, getReturnedCount, getRollbackOnReturn, getSize, getSuspectTimeout, getTimeBetweenEvictionRunsMillis, getUrl, getUseDisposableConnectionFacade, getUseLock, getUsername, getUseStatementFacade, getValidationInterval, getValidationQuery, getValidationQueryTimeout, getValidator, getValidatorClassName, getWaitCount, getXAConnection, getXAConnection, isAccessToUnderlyingConnectionAllowed, isAlternateUsernameAllowed, isDefaultAutoCommit, isDefaultReadOnly, isFairQueue, isIgnoreExceptionOnPreLoad, isJmxEnabled, isLogAbandoned, isPoolSweeperEnabled, isRemoveAbandoned, isTestOnBorrow, isTestOnConnect, isTestOnReturn, isTestWhileIdle, isUseEquals, isWrapperFor, purge, purgeOnReturn, resetStats, setAbandonWhenPercentageFull, setAccessToUnderlyingConnectionAllowed, setAlternateUsernameAllowed, setCommitOnReturn, setConnectionProperties, setDataSource, setDataSourceJNDI, setDbProperties, setDefaultAutoCommit, setDefaultCatalog, setDefaultReadOnly, setDefaultTransactionIsolation, setDriverClassName, setFairQueue, setIgnoreExceptionOnPreLoad, setInitialSize, setInitSQL, setJdbcInterceptors, setJmxEnabled, setLogAbandoned, setLoginTimeout, setLogValidationErrors, setLogWriter, setMaxActive, setMaxAge, setMaxIdle, setMaxWait, setMinEvictableIdleTimeMillis, setMinIdle, setName, setNumTestsPerEvictionRun, setPassword, setPoolProperties, setPropagateInterruptState, setRemoveAbandoned, setRemoveAbandonedTimeout, setRollbackOnReturn, setSuspectTimeout, setTestOnBorrow, setTestOnConnect, setTestOnReturn, setTestWhileIdle, setTimeBetweenEvictionRunsMillis, setUrl, setUseDisposableConnectionFacade, setUseEquals, setUseLock, setUsername, setUseStatementFacade, setValidationInterval, setValidationQuery, setValidationQueryTimeout, setValidator, setValidatorClassName, testIdle, toString, unwrap`

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

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

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

      `getConnection, getConnection`

    - ### Methods inherited from interface java.sql.Wrapper

      `isWrapperFor, unwrap`

    - ### Methods inherited from interface org.apache.tomcat.jdbc.pool.jmx.ConnectionPoolMBean

      `checkAbandoned, checkIdle, getActive, getBorrowedCount, getCreatedCount, getIdle, getNumActive, getNumIdle, getReconnectedCount, getReleasedCount, getReleasedIdleCount, getRemoveAbandonedCount, getReturnedCount, getSize, getWaitCount, purge, purgeOnReturn, resetStats, testIdle`

    - ### Methods inherited from interface org.apache.tomcat.jdbc.pool.PoolConfiguration

      `getAbandonWhenPercentageFull, getCommitOnReturn, getConnectionProperties, getDataSource, getDataSourceJNDI, getDbProperties, getDefaultAutoCommit, getDefaultCatalog, getDefaultReadOnly, getDefaultTransactionIsolation, getDriverClassName, getInitialSize, getInitSQL, getJdbcInterceptors, getJdbcInterceptorsAsArray, getLogValidationErrors, getMaxActive, getMaxAge, getMaxIdle, getMaxWait, getMinEvictableIdleTimeMillis, getMinIdle, getName, getNumTestsPerEvictionRun, getPassword, getPoolName, getPropagateInterruptState, getRemoveAbandonedTimeout, getRollbackOnReturn, getSuspectTimeout, getTimeBetweenEvictionRunsMillis, getUrl, getUseDisposableConnectionFacade, getUseLock, getUsername, getUseStatementFacade, getValidationInterval, getValidationQuery, getValidationQueryTimeout, getValidator, getValidatorClassName, isAccessToUnderlyingConnectionAllowed, isAlternateUsernameAllowed, isDefaultAutoCommit, isDefaultReadOnly, isFairQueue, isIgnoreExceptionOnPreLoad, isJmxEnabled, isLogAbandoned, isPoolSweeperEnabled, isRemoveAbandoned, isTestOnBorrow, isTestOnConnect, isTestOnReturn, isTestWhileIdle, isUseEquals, setAbandonWhenPercentageFull, setAccessToUnderlyingConnectionAllowed, setAlternateUsernameAllowed, setCommitOnReturn, setConnectionProperties, setDataSource, setDataSourceJNDI, setDbProperties, setDefaultAutoCommit, setDefaultCatalog, setDefaultReadOnly, setDefaultTransactionIsolation, setDriverClassName, setFairQueue, setIgnoreExceptionOnPreLoad, setInitialSize, setInitSQL, setJdbcInterceptors, setJmxEnabled, setLogAbandoned, setLogValidationErrors, setMaxActive, setMaxAge, setMaxIdle, setMaxWait, setMinEvictableIdleTimeMillis, setMinIdle, setName, setNumTestsPerEvictionRun, setPassword, setPropagateInterruptState, setRemoveAbandoned, setRemoveAbandonedTimeout, setRollbackOnReturn, setSuspectTimeout, setTestOnBorrow, setTestOnConnect, setTestOnReturn, setTestWhileIdle, setTimeBetweenEvictionRunsMillis, setUrl, setUseDisposableConnectionFacade, setUseEquals, setUseLock, setUsername, setUseStatementFacade, setValidationInterval, setValidationQuery, setValidationQueryTimeout, setValidator, setValidatorClassName`

    - ### Methods inherited from interface javax.sql.ConnectionPoolDataSource

      `getPooledConnection, getPooledConnection`

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

      `getLoginTimeout, getLogWriter, getParentLogger, setLoginTimeout, setLogWriter`

- - ### Field Detail

    - #### oname

          protected volatile ObjectName oname

  - ### Constructor Detail

    - #### DataSource

          public DataSource()

      Constructor for reflection only. A default set of pool properties will be created.

    - #### DataSource

          public DataSource(PoolConfiguration poolProperties)

      Constructs a DataSource object wrapping a connection
      Parameters:
        `poolProperties` - The pool properties

  - ### Method Detail

    - #### postDeregister

          public void postDeregister()

      Unregisters the underlying connection pool mbean.
      Specified by:
        `postDeregister` in interface `MBeanRegistration`

    - #### postRegister

          public void postRegister(Boolean registrationDone)

      no-op
      Specified by:
        `postRegister` in interface `MBeanRegistration`

    - #### preDeregister

          public void preDeregister()
                             throws Exception

      no-op
      Specified by:
        `preDeregister` in interface `MBeanRegistration`
      Throws:
        `Exception`

    - #### preRegister

          public ObjectName preRegister(MBeanServer server,
                               ObjectName name)
                                 throws Exception

      If the connection pool MBean exists, it will be registered during this operation.
      Specified by:
        `preRegister` in interface `MBeanRegistration`
      Throws:
        `Exception`

    - #### createObjectName

          public ObjectName createObjectName(ObjectName original)
                                      throws MalformedObjectNameException

      Creates the ObjectName for the ConnectionPoolMBean object to be registered
      Parameters:
        `original` - the ObjectName for the DataSource
      Returns:
        the ObjectName for the ConnectionPoolMBean
      Throws:
        `MalformedObjectNameException` - Invalid object name

    - #### registerJmx

          protected void registerJmx()

      Registers the ConnectionPoolMBean under a unique name based on the ObjectName for the DataSource

    - #### unregisterJmx

          protected void unregisterJmx()

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.