StandardLoadBalanceExceptionChecker
Date: 2016-03-08

com.mysql.jdbc

## Class StandardLoadBalanceExceptionChecker

- java.lang.Object
- - com.mysql.jdbc.StandardLoadBalanceExceptionChecker

- All Implemented Interfaces:
    Extension, LoadBalanceExceptionChecker
  Direct Known Subclasses:
    NdbLoadBalanceExceptionChecker

      public class StandardLoadBalanceExceptionChecker
      extends java.lang.Object
      implements LoadBalanceExceptionChecker

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `StandardLoadBalanceExceptionChecker()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `destroy()` Called by the driver when this extension should release any resources it is holding and cleanup internally before the connection is closed.
    `void` | `init(Connection conn, java.util.Properties props)` Called once per connection that wants to use the extension The properties are the same ones passed in in the URL or arguments to Driver.connect() or DriverManager.getConnection().
    `boolean` | `shouldExceptionTriggerFailover(java.sql.SQLException ex)` Invoked to determine whether or a given SQLException should trigger a failover in a load-balanced deployment.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### StandardLoadBalanceExceptionChecker

          public StandardLoadBalanceExceptionChecker()

  - ### Method Detail

    - #### shouldExceptionTriggerFailover

          public boolean shouldExceptionTriggerFailover(java.sql.SQLException ex)

      Description copied from interface: `LoadBalanceExceptionChecker`
      Invoked to determine whether or a given SQLException should trigger a failover in a load-balanced deployment. The driver will not pass in a Connection instance when calling init(), but it will pass in the Properties, otherwise it acts like a normal Extension. One instance of a handler *per* JDBC connection instance will be created. If you need singleton-like behavior, you're on your own to provide it.
      Specified by:
        `shouldExceptionTriggerFailover` in interface `LoadBalanceExceptionChecker`
      Returns:
        true if the exception should trigger failover.

    - #### destroy

          public void destroy()

      Description copied from interface: `Extension`
      Called by the driver when this extension should release any resources it is holding and cleanup internally before the connection is closed.
      Specified by:
        `destroy` in interface `Extension`

    - #### init

          public void init(Connection conn,
                  java.util.Properties props)
                    throws java.sql.SQLException

      Description copied from interface: `Extension`
      Called once per connection that wants to use the extension The properties are the same ones passed in in the URL or arguments to Driver.connect() or DriverManager.getConnection().
      Specified by:
        `init` in interface `Extension`
      Parameters:
        `conn` - the connection for which this extension is being created
        `props` - configuration values as passed to the connection. Note that in order to support javax.sql.DataSources, configuration properties specific to an interceptor must be passed via setURL() on the DataSource. Extension properties are not exposed via accessor/mutator methods on DataSources.
      Throws:
        `java.sql.SQLException` - should be thrown if the the Extension can not initialize itself.