Class ExternalConnectionPool

java.lang.Object
org.eclipse.persistence.sessions.server.ConnectionPool
org.eclipse.persistence.sessions.server.ExternalConnectionPool

public class ExternalConnectionPool extends ConnectionPool

Purpose: This subclass is intended to be used with external connection pools. For these pools, TopLink does not control the pooling behavior. The login should have the usesExternalConnectionPooling set to "true".

  • Field Details

    • cachedConnection

      protected org.eclipse.persistence.internal.databaseaccess.Accessor cachedConnection
  • Constructor Details

    • ExternalConnectionPool

      public ExternalConnectionPool()
      PUBLIC: Build a new external connection pool. The JDBC driver is responsible for pooling the connections.
    • ExternalConnectionPool

      public ExternalConnectionPool(String name, Login login, ServerSession owner)
      PUBLIC: Build a new external connection pool. The JDBC driver is responsible for pooling the connections.
  • Method Details

    • acquireConnection

      public org.eclipse.persistence.internal.databaseaccess.Accessor acquireConnection() throws ConcurrencyException
      INTERNAL: When we acquire a connection from an ExternalConnectionPool we build a new connection (retrieve it from the external pool).
      Overrides:
      acquireConnection in class ConnectionPool
      Throws:
      ConcurrencyException
    • getCachedConnection

      protected org.eclipse.persistence.internal.databaseaccess.Accessor getCachedConnection()
      INTERNAL: Return the currently cached connection to the external connection pool
      Returns:
      org.eclipse.persistence.internal.databaseaccess.Accessor
    • hasConnectionAvailable

      public boolean hasConnectionAvailable()
      INTERNAL: Assume true as the driver is responsible for blocking.
      Overrides:
      hasConnectionAvailable in class ConnectionPool
    • isThereConflictBetweenLoginAndType

      public boolean isThereConflictBetweenLoginAndType()
      INTERNAL: Checks for a conflict between pool's type and pool's login
      Overrides:
      isThereConflictBetweenLoginAndType in class ConnectionPool
    • releaseConnection

      public void releaseConnection(org.eclipse.persistence.internal.databaseaccess.Accessor connection) throws DatabaseException
      INTERNAL: When you release an external connection, you simply let it go.
      Overrides:
      releaseConnection in class ConnectionPool
      Throws:
      DatabaseException
    • setCachedConnection

      protected void setCachedConnection(org.eclipse.persistence.internal.databaseaccess.Accessor cachedConnection)
      Set the currently cached connection to the external connection pool.
      Parameters:
      cachedConnection -
    • setCheckConnections

      public void setCheckConnections()
      INTERNAL: This method is called to indicate that all available connections should be checked. Noop on external connection pool.
      Overrides:
      setCheckConnections in class ConnectionPool
    • shutDown

      public void shutDown()
      INTERNAL: This mehtod is a no-op for external pools.
      Overrides:
      shutDown in class ConnectionPool
    • startUp

      public void startUp()
      INTERNAL: Build the default connection. This validates that connect will work and sets up the parent accessor to clone.
      Overrides:
      startUp in class ConnectionPool