Class AbstractPoolBackedDataSource

    • Constructor Detail

      • AbstractPoolBackedDataSource

        protected AbstractPoolBackedDataSource​(boolean autoregister)
    • Method Detail

      • initializeNamedConfig

        protected void initializeNamedConfig​(java.lang.String configName,
                                             boolean shouldBindUserOverridesAsString)
      • getConnection

        public java.sql.Connection getConnection()
                                          throws java.sql.SQLException
        Specified by:
        getConnection in interface javax.sql.DataSource
        Throws:
        java.sql.SQLException
      • getConnection

        public java.sql.Connection getConnection​(java.lang.String username,
                                                 java.lang.String password)
                                          throws java.sql.SQLException
        Specified by:
        getConnection in interface javax.sql.DataSource
        Throws:
        java.sql.SQLException
      • getLogWriter

        public java.io.PrintWriter getLogWriter()
                                         throws java.sql.SQLException
        Specified by:
        getLogWriter in interface javax.sql.CommonDataSource
        Specified by:
        getLogWriter in interface javax.sql.DataSource
        Throws:
        java.sql.SQLException
      • setLogWriter

        public void setLogWriter​(java.io.PrintWriter out)
                          throws java.sql.SQLException
        Specified by:
        setLogWriter in interface javax.sql.CommonDataSource
        Specified by:
        setLogWriter in interface javax.sql.DataSource
        Throws:
        java.sql.SQLException
      • getLoginTimeout

        public int getLoginTimeout()
                            throws java.sql.SQLException
        Specified by:
        getLoginTimeout in interface javax.sql.CommonDataSource
        Specified by:
        getLoginTimeout in interface javax.sql.DataSource
        Throws:
        java.sql.SQLException
      • setLoginTimeout

        public void setLoginTimeout​(int seconds)
                             throws java.sql.SQLException
        Specified by:
        setLoginTimeout in interface javax.sql.CommonDataSource
        Specified by:
        setLoginTimeout in interface javax.sql.DataSource
        Throws:
        java.sql.SQLException
      • getNumConnections

        public int getNumConnections()
                              throws java.sql.SQLException
        Specified by:
        getNumConnections in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • getNumIdleConnections

        public int getNumIdleConnections()
                                  throws java.sql.SQLException
        Specified by:
        getNumIdleConnections in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • getNumBusyConnections

        public int getNumBusyConnections()
                                  throws java.sql.SQLException
        Specified by:
        getNumBusyConnections in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • getThreadPoolSize

        public int getThreadPoolSize()
                              throws java.sql.SQLException
        Specified by:
        getThreadPoolSize in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • sampleThreadPoolStackTraces

        public java.lang.String sampleThreadPoolStackTraces()
                                                     throws java.sql.SQLException
        Specified by:
        sampleThreadPoolStackTraces in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • sampleThreadPoolStatus

        public java.lang.String sampleThreadPoolStatus()
                                                throws java.sql.SQLException
        Specified by:
        sampleThreadPoolStatus in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • sampleStatementCacheStatus

        public java.lang.String sampleStatementCacheStatus​(java.lang.String username,
                                                           java.lang.String password)
                                                    throws java.sql.SQLException
        Specified by:
        sampleStatementCacheStatus in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • getLastAcquisitionFailure

        public java.lang.Throwable getLastAcquisitionFailure​(java.lang.String username,
                                                             java.lang.String password)
                                                      throws java.sql.SQLException
        Specified by:
        getLastAcquisitionFailure in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • getLastCheckinFailure

        public java.lang.Throwable getLastCheckinFailure​(java.lang.String username,
                                                         java.lang.String password)
                                                  throws java.sql.SQLException
        Specified by:
        getLastCheckinFailure in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • getLastCheckoutFailure

        public java.lang.Throwable getLastCheckoutFailure​(java.lang.String username,
                                                          java.lang.String password)
                                                   throws java.sql.SQLException
        Specified by:
        getLastCheckoutFailure in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • getLastIdleTestFailure

        public java.lang.Throwable getLastIdleTestFailure​(java.lang.String username,
                                                          java.lang.String password)
                                                   throws java.sql.SQLException
        Specified by:
        getLastIdleTestFailure in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • getLastConnectionTestFailure

        public java.lang.Throwable getLastConnectionTestFailure​(java.lang.String username,
                                                                java.lang.String password)
                                                         throws java.sql.SQLException
        Specified by:
        getLastConnectionTestFailure in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • getNumThreadsAwaitingCheckout

        public int getNumThreadsAwaitingCheckout​(java.lang.String username,
                                                 java.lang.String password)
                                          throws java.sql.SQLException
        Specified by:
        getNumThreadsAwaitingCheckout in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • sampleLastAcquisitionFailureStackTrace

        public java.lang.String sampleLastAcquisitionFailureStackTrace​(java.lang.String username,
                                                                       java.lang.String password)
                                                                throws java.sql.SQLException
        Specified by:
        sampleLastAcquisitionFailureStackTrace in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • sampleLastCheckinFailureStackTrace

        public java.lang.String sampleLastCheckinFailureStackTrace​(java.lang.String username,
                                                                   java.lang.String password)
                                                            throws java.sql.SQLException
        Specified by:
        sampleLastCheckinFailureStackTrace in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • sampleLastCheckoutFailureStackTrace

        public java.lang.String sampleLastCheckoutFailureStackTrace​(java.lang.String username,
                                                                    java.lang.String password)
                                                             throws java.sql.SQLException
        Specified by:
        sampleLastCheckoutFailureStackTrace in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • sampleLastIdleTestFailureStackTrace

        public java.lang.String sampleLastIdleTestFailureStackTrace​(java.lang.String username,
                                                                    java.lang.String password)
                                                             throws java.sql.SQLException
        Specified by:
        sampleLastIdleTestFailureStackTrace in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • sampleLastConnectionTestFailureStackTrace

        public java.lang.String sampleLastConnectionTestFailureStackTrace​(java.lang.String username,
                                                                          java.lang.String password)
                                                                   throws java.sql.SQLException
        Specified by:
        sampleLastConnectionTestFailureStackTrace in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • softResetDefaultUser

        public void softResetDefaultUser()
                                  throws java.sql.SQLException
        Description copied from interface: PooledDataSource
        Discards all Connections managed by the PooledDataSource's default-authentication pool and reacquires new Connections to populate. Current checked out Connections will still be valid, and should still be checked into the PooledDataSource (so the PooledDataSource can destroy them).
        Specified by:
        softResetDefaultUser in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • getNumConnections

        public int getNumConnections​(java.lang.String username,
                                     java.lang.String password)
                              throws java.sql.SQLException
        Specified by:
        getNumConnections in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • getNumIdleConnections

        public int getNumIdleConnections​(java.lang.String username,
                                         java.lang.String password)
                                  throws java.sql.SQLException
        Specified by:
        getNumIdleConnections in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • getNumBusyConnections

        public int getNumBusyConnections​(java.lang.String username,
                                         java.lang.String password)
                                  throws java.sql.SQLException
        Specified by:
        getNumBusyConnections in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • getNumUnclosedOrphanedConnections

        public int getNumUnclosedOrphanedConnections​(java.lang.String username,
                                                     java.lang.String password)
                                              throws java.sql.SQLException
        Specified by:
        getNumUnclosedOrphanedConnections in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • getStatementCacheNumStatements

        public int getStatementCacheNumStatements​(java.lang.String username,
                                                  java.lang.String password)
                                           throws java.sql.SQLException
        Specified by:
        getStatementCacheNumStatements in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • getStatementCacheNumCheckedOut

        public int getStatementCacheNumCheckedOut​(java.lang.String username,
                                                  java.lang.String password)
                                           throws java.sql.SQLException
        Specified by:
        getStatementCacheNumCheckedOut in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • getEffectivePropertyCycle

        public float getEffectivePropertyCycle​(java.lang.String username,
                                               java.lang.String password)
                                        throws java.sql.SQLException
        Specified by:
        getEffectivePropertyCycle in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • getStartTimeMillis

        public long getStartTimeMillis​(java.lang.String username,
                                       java.lang.String password)
                                throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • getUpTimeMillis

        public long getUpTimeMillis​(java.lang.String username,
                                    java.lang.String password)
                             throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • getNumFailedCheckins

        public long getNumFailedCheckins​(java.lang.String username,
                                         java.lang.String password)
                                  throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • getNumFailedCheckouts

        public long getNumFailedCheckouts​(java.lang.String username,
                                          java.lang.String password)
                                   throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • getNumFailedIdleTests

        public long getNumFailedIdleTests​(java.lang.String username,
                                          java.lang.String password)
                                   throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • softReset

        public void softReset​(java.lang.String username,
                              java.lang.String password)
                       throws java.sql.SQLException
        Description copied from interface: PooledDataSource
        Discards all Connections managed by the PooledDataSource with the specified authentication credentials and reacquires new Connections to populate. Current checked out Connections will still be valid, and should still be checked into the PooledDataSource (so the PooledDataSource can destroy them).
        Specified by:
        softReset in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • getStatementDestroyerNumConnectionsInUse

        public int getStatementDestroyerNumConnectionsInUse​(java.lang.String username,
                                                            java.lang.String password)
                                                     throws java.sql.SQLException
        Specified by:
        getStatementDestroyerNumConnectionsInUse in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • getStatementDestroyerNumDeferredDestroyStatements

        public int getStatementDestroyerNumDeferredDestroyStatements​(java.lang.String username,
                                                                     java.lang.String password)
                                                              throws java.sql.SQLException
        Specified by:
        getStatementDestroyerNumDeferredDestroyStatements in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • softResetAllUsers

        public void softResetAllUsers()
                               throws java.sql.SQLException
        Description copied from interface: PooledDataSource
        Discards all Connections managed by the PooledDataSource and reacquires new Connections to populate. Current checked out Connections will still be valid, and should still be checked into the PooledDataSource (so the PooledDataSource can destroy them).
        Specified by:
        softResetAllUsers in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • getNumUserPools

        public int getNumUserPools()
                            throws java.sql.SQLException
        Specified by:
        getNumUserPools in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • getAllUsers

        public java.util.Collection getAllUsers()
                                         throws java.sql.SQLException
        Specified by:
        getAllUsers in interface PooledDataSource
        Throws:
        java.sql.SQLException
      • hardReset

        public void hardReset()
        Description copied from interface: PooledDataSource
        Destroys all pooled and checked-out Connections associated with this DataSource immediately. The PooledDataSource is reset to its initial state prior to first Connection acquisition, with no pools yet active, but ready for requests.
        Specified by:
        hardReset in interface PooledDataSource
      • close

        public void close()
        Description copied from interface: PooledDataSource

        C3P0 pooled DataSources use no resources before they are actually used in a VM, and they close themselves in their finalize() method. When they are active and pooling, they may have open database connections and their pool may spawn several threads for its maintenance. You can use this method to clean these resource methods up quickly when you will no longer be using this DataSource. The resources will actually be cleaned up only if no other DataSources are sharing the same pool.

        You can equivalently use the static method destroy() in the DataSources class to clean-up these resources.

        This is equivalent to calling close( false ).

        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface PooledDataSource
        See Also:
        DataSources.destroy(javax.sql.DataSource)
      • close

        public void close​(boolean force_destroy)
        Deprecated.
        the force_destroy argument is now meaningless, as pools are no longer potentially shared between multiple DataSources.
        Description copied from interface: PooledDataSource

        Should be used only with great caution. If force_destroy is set to true, this immediately destroys any pool and cleans up all resources this DataSource may be using, even if other DataSources are sharing that pool! In general, it is difficult to know whether a pool is being shared by multiple DataSources. It may depend upon whether or not a JNDI implementation returns a single instance or multiple copies upon lookup (which is undefined by the JNDI spec).

        In general, this method should be used only when you wish to wind down all c3p0 pools in a ClassLoader. For example, when shutting down and restarting a web application that uses c3p0, you may wish to kill all threads making use of classes loaded by a web-app specific ClassLoader, so that the ClassLoader can be cleanly garbage collected. In this case, you may wish to use force destroy. Otherwise, it is much safer to use the simple destroy() method, which will not shut down pools that may still be in use.

        To close a pool normally, use the no argument close method, or set force_destroy to false.

        Specified by:
        close in interface PooledDataSource
        See Also:
        PooledDataSource.close()
      • resetPoolManager

        public void resetPoolManager()
      • resetPoolManager

        public void resetPoolManager​(boolean close_checked_out_connections)
      • toString

        public abstract java.lang.String toString​(boolean show_config)
      • isWrapperForThis

        protected final boolean isWrapperForThis​(java.lang.Class<?> iface)
      • isWrapperFor

        public boolean isWrapperFor​(java.lang.Class<?> iface)
                             throws java.sql.SQLException
        Specified by:
        isWrapperFor in interface java.sql.Wrapper
        Throws:
        java.sql.SQLException
      • unwrap

        public <T> T unwrap​(java.lang.Class<T> iface)
                     throws java.sql.SQLException
        Specified by:
        unwrap in interface java.sql.Wrapper
        Throws:
        java.sql.SQLException