Class PoolExhaustedException

java.lang.Object
java.lang.Throwable
java.lang.Exception
java.sql.SQLException
org.apache.tomcat.jdbc.pool.PoolExhaustedException
All Implemented Interfaces:
Serializable, Iterable<Throwable>

public class PoolExhaustedException extends SQLException
Exception thrown when the connection pool is exhausted and no connections are available. The caller of a synchronous borrow that is refused - one whose wait on the empty pool timed out - receives it directly. On the asynchronous path of ConnectionPool.getConnectionAsync() the same exhaustion is absorbed into a wait instead and never surfaces as this exception: an exhausted pool surfaces there through the Future as a TimeoutException for a timed wait, a CancellationException when the pool closes under the waiter, or an ExecutionException carrying the underlying failure when the wait could not be completed.
See Also:
  • Field Details

    • SQL_STATE

      public static final String SQL_STATE
      SQL state reported with pool-exhaustion failures: "HY000", the general error class. Pool exhaustion is a pool-side condition rather than a database error, so none of the connection-class states (the 08xxx family, which describe the session itself failing) says exactly this; still, consumers that multiplex many SQLException sources and classify them by state need a non-null label to sort on. HY000 is shared with unrelated driver-reported general errors, so a state-based classifier should treat the state as a pointer and corroborate it with instanceof PoolExhaustedException rather than treat it as exclusive to pool exhaustion. The state is stamped by the message-only constructor the pool throws through; the constructors that mirror the SQLException signatures without a state parameter (no-arg and cause-only) carry none, as those super-signatures take none, and an explicitly given state always wins.
      See Also:
  • Constructor Details

    • PoolExhaustedException

      public PoolExhaustedException()
      Constructs a PoolExhaustedException with no detail message.
    • PoolExhaustedException

      public PoolExhaustedException(String reason)
      Constructs a PoolExhaustedException with the specified detail message. The exception carries SQL_STATE as its SQL state.
      Parameters:
      reason - the detail message
    • PoolExhaustedException

      public PoolExhaustedException(Throwable cause)
      Constructs a PoolExhaustedException with the specified cause.
      Parameters:
      cause - the cause of this exception
    • PoolExhaustedException

      public PoolExhaustedException(String reason, String sqlState)
      Constructs a PoolExhaustedException with the specified detail message and SQL state.
      Parameters:
      reason - the detail message
      sqlState - the SQL state code
    • PoolExhaustedException

      public PoolExhaustedException(String reason, Throwable cause)
      Constructs a PoolExhaustedException with the specified detail message and cause.
      Parameters:
      reason - the detail message
      cause - the cause of this exception
    • PoolExhaustedException

      public PoolExhaustedException(String reason, String sqlState, int vendorCode)
      Constructs a PoolExhaustedException with the specified detail message, SQL state, and vendor code.
      Parameters:
      reason - the detail message
      sqlState - the SQL state code
      vendorCode - the vendor-specific error code
    • PoolExhaustedException

      public PoolExhaustedException(String reason, String sqlState, Throwable cause)
      Constructs a PoolExhaustedException with the specified detail message, SQL state, and cause.
      Parameters:
      reason - the detail message
      sqlState - the SQL state code
      cause - the cause of this exception
    • PoolExhaustedException

      public PoolExhaustedException(String reason, String sqlState, int vendorCode, Throwable cause)
      Constructs a PoolExhaustedException with the specified detail message, SQL state, vendor code, and cause.
      Parameters:
      reason - the detail message
      sqlState - the SQL state code
      vendorCode - the vendor-specific error code
      cause - the cause of this exception