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
      • 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.
      • getReference

        public javax.naming.Reference getReference()
                                            throws javax.naming.NamingException
        Returns a SharedPoolDataSource Reference.
        Throws:
        javax.naming.NamingException
      • registerPool

        private void registerPool​(java.lang.String userName,
                                  java.lang.String password)
                           throws javax.naming.NamingException,
                                  java.sql.SQLException
        Throws:
        javax.naming.NamingException
        java.sql.SQLException
      • 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
      • readObject

        private void readObject​(java.io.ObjectInputStream in)
                         throws java.io.IOException,
                                java.lang.ClassNotFoundException
        Supports Serialization interface.
        Parameters:
        in - a java.io.ObjectInputStream value
        Throws:
        java.io.IOException - if an error occurs
        java.lang.ClassNotFoundException - if an error occurs