Class SharedPoolDataSource

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.AutoCloseable, java.sql.Wrapper, javax.naming.Referenceable, javax.sql.CommonDataSource, javax.sql.DataSource

    public class SharedPoolDataSource
    extends InstanceKeyDataSource

    A pooling DataSource appropriate for deployment within J2EE environment. There are many configuration options, most of which are defined in the parent class. All users (based on user name) share a single maximum number of Connections in this data source.

    User passwords can be changed without re-initializing the data source. When a getConnection(user name, password) request is processed with a password that is different from those used to create connections in the pool associated with user name, an attempt is made to create a new connection using the supplied password and if this succeeds, idle connections created using the old password are destroyed and new connections are created using the new password.

    Since:
    2.0
    See Also:
    Serialized Form
    • Constructor Detail

      • SharedPoolDataSource

        public SharedPoolDataSource()
        Default no-argument constructor for Serialization
    • Method Detail

      • close

        public void close()
                   throws java.lang.Exception
        Closes pool being maintained by this data source.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in class InstanceKeyDataSource
        Throws:
        java.lang.Exception
      • getConnectionManager

        protected org.apache.tomcat.dbcp.dbcp2.datasources.PooledConnectionManager getConnectionManager​(org.apache.tomcat.dbcp.dbcp2.datasources.UserPassKey userPassKey)
        Specified by:
        getConnectionManager in class InstanceKeyDataSource
      • getNumActive

        public int getNumActive()
        Gets the number of active connections in the pool.
        Returns:
        The number of active connections in the pool.
      • getNumIdle

        public int getNumIdle()
        Gets the number of idle connections in the pool.
        Returns:
        The number of idle connections in the pool.
      • getPooledConnectionAndInfo

        protected org.apache.tomcat.dbcp.dbcp2.datasources.PooledConnectionAndInfo getPooledConnectionAndInfo​(java.lang.String userName,
                                                                                                              java.lang.String userPassword)
                                                                                                       throws java.sql.SQLException
        Description copied from class: InstanceKeyDataSource
        This method is protected but can only be implemented in this package because PooledConnectionAndInfo is a package private type.
        Specified by:
        getPooledConnectionAndInfo in class InstanceKeyDataSource
        Parameters:
        userName - The user name.
        userPassword - The user password.
        Returns:
        Matching PooledConnectionAndInfo.
        Throws:
        java.sql.SQLException - Connection or registration failure.
      • getReference

        public javax.naming.Reference getReference()
                                            throws javax.naming.NamingException
        Creates a new Reference to a SharedPoolDataSource.
        Throws:
        javax.naming.NamingException
      • setupDefaults

        protected void setupDefaults​(java.sql.Connection connection,
                                     java.lang.String userName)
                              throws java.sql.SQLException
        Specified by:
        setupDefaults in class InstanceKeyDataSource
        Throws:
        java.sql.SQLException