Class MultiEndpointPool.Builder<E>

java.lang.Object
org.glassfish.grizzly.connectionpool.MultiEndpointPool.Builder<E>
Type Parameters:
E - endpoint address type, for example SocketAddress for TCP and UDP transports
Enclosing class:
MultiEndpointPool<E>

public static class MultiEndpointPool.Builder<E> extends Object
The Builder class responsible for constructing SingleEndpointPool.
  • Constructor Details

    • Builder

      public Builder()
  • Method Details

    • connectorHandler

      public MultiEndpointPool.Builder<E> connectorHandler(org.glassfish.grizzly.ConnectorHandler<E> defaultConnectorHandler)
      Deprecated.
      Endpoint must always know how to establish the connection
      Sets the default ConnectorHandler to be used to establish new Connections if none is specified by Endpoint.
      Parameters:
      defaultConnectorHandler - ConnectorHandler
      Returns:
      this MultiEndpointPool.Builder
    • maxConnectionsPerEndpoint

      public MultiEndpointPool.Builder<E> maxConnectionsPerEndpoint(int maxConnectionsPerEndpoint)
      Sets the maximum number of Connections to a single endpoint the pool is allowed to have. Default value is 2.
      Parameters:
      maxConnectionsPerEndpoint -
      Returns:
      this MultiEndpointPool.Builder
    • maxConnectionsTotal

      public MultiEndpointPool.Builder<E> maxConnectionsTotal(int maxConnectionsTotal)
      Sets the maximum number of Connections the pool is allowed to have. Default value is 16.
      Parameters:
      maxConnectionsTotal -
      Returns:
      this MultiEndpointPool.Builder
    • delayExecutor

      public MultiEndpointPool.Builder<E> delayExecutor(org.glassfish.grizzly.utils.DelayedExecutor delayedExecutor)
      Sets the custom DelayedExecutor to be used for keep-alive and reconnect mechanisms. If none is set - the SingleEndpointPool will create its own DelayedExecutor.
      Parameters:
      delayedExecutor -
      Returns:
      this MultiEndpointPool.Builder
    • connectTimeout

      public MultiEndpointPool.Builder<E> connectTimeout(long connectTimeout, TimeUnit timeunit)
      Sets the max time Connection connect operation may take. If timeout expires - the connect operation is considered failed. If connectTimeout < 0 - the connect timeout mechanism will be disabled. By default the connect timeout mechanism is disabled.
      Parameters:
      connectTimeout - the max time Connection connect operation may take. If timeout expires - the connect operation is considered failed. The negative value disables the connect timeout mechanism.
      timeunit - a TimeUnit determining how to interpret the timeout parameter
      Returns:
      this MultiEndpointPool.Builder
    • reconnectDelay

      public MultiEndpointPool.Builder<E> reconnectDelay(long reconnectDelay, TimeUnit timeunit)
      Sets the delay to be used before the pool will repeat the attempt to connect to the endpoint after previous connect operation had failed. If reconnectDelay < 0 - the reconnect mechanism will be disabled. By default the reconnect mechanism is disabled.
      Parameters:
      reconnectDelay - the delay to be used before the pool will repeat the attempt to connect to the endpoint after previous connect operation had failed. The negative value disables the reconnect mechanism.
      timeunit - a TimeUnit determining how to interpret the timeout parameter
      Returns:
      this MultiEndpointPool.Builder
    • maxReconnectAttempts

      public MultiEndpointPool.Builder<E> maxReconnectAttempts(int maxReconnectAttempts)
      If the reconnect mechanism is enabled, then this property will affect how many times a reconnection attempt can be made consecutively before a failure is flagged.
      Parameters:
      maxReconnectAttempts - the maximum number of reconnect attempts. If the reconnect mechanism isn't enabled, this property is ignored.
      Returns:
      this MultiEndpointPool.Builder
    • asyncPollTimeout

      public MultiEndpointPool.Builder<E> asyncPollTimeout(long asyncPollTimeout, TimeUnit timeunit)
      Sets the max time consumer will wait for a Connection to become available. When timeout expires the consumer will be notified about the failure (TimeoutException) via CompletionHandler or Future. If asyncPollTimeout < 0 - timeout will not be set. By default the timeout is not set and consumer may wait forever for a Connection.
      Parameters:
      asyncPollTimeout - the maximum time, the async poll operation could wait for a connection to become available
      timeunit - a TimeUnit determining how to interpret the timeout parameter
      Returns:
      this MultiEndpointPool.Builder
    • connectionTTL

      public MultiEndpointPool.Builder<E> connectionTTL(long connectionTTL, TimeUnit timeunit)
      Sets the max amount of time a Connection could be associated with the pool. Once timeout expired the Connection will be either closed, if it's idle, or detached from the pool, if it's being used. If connectionTTL < 0 - the Connection time to live will not be set and the Connection can be associated with a pool forever, if no other limit is hit (like keep-alive). By default the connectionTTL is not set.
      Parameters:
      connectionTTL - the max amount of time a Connection could be associated with the pool
      timeunit - a TimeUnit determining how to interpret the connectionTTL parameter
      Returns:
      this MultiEndpointPool.Builder
    • failFastWhenMaxSizeReached

      public MultiEndpointPool.Builder<E> failFastWhenMaxSizeReached(boolean failFastWhenMaxSizeReached)
      if true, the "take" method will fail fast if there is no free connection in the pool and max pool size is reached. Otherwise the pool will queue up the take request and wait for a Connection to become available
      Parameters:
      failFastWhenMaxSizeReached -
      Returns:
      this MultiEndpointPool.Builder
    • keepAliveTimeout

      public MultiEndpointPool.Builder<E> keepAliveTimeout(long keepAliveTimeout, TimeUnit timeunit)
      Sets the maximum number of milliseconds an idle Connection will be kept in the pool. The idle Connections will be closed till the pool size is greater than corePoolSize. If keepAliveTimeout < 0 - the keep-alive mechanism will be disabled. By default the keep-alive timeout is set to 30 seconds.
      Parameters:
      keepAliveTimeout - the maximum number of milliseconds an idle Connection will be kept in the pool. The negative value disables the keep-alive mechanism.
      timeunit - a TimeUnit determining how to interpret the timeout parameter
      Returns:
      this MultiEndpointPool.Builder
    • keepAliveCheckInterval

      public MultiEndpointPool.Builder<E> keepAliveCheckInterval(long keepAliveCheckInterval, TimeUnit timeunit)
      Sets the interval, which specifies how often the pool will perform idle Connections check.
      Parameters:
      keepAliveCheckInterval - the interval, which specifies how often the pool will perform idle Connections check
      timeunit - a TimeUnit determining how to interpret the timeout parameter
      Returns:
      this MultiEndpointPool.Builder
    • endpointPoolCustomizer

      public MultiEndpointPool.Builder<E> endpointPoolCustomizer(MultiEndpointPool.EndpointPoolCustomizer<E> endpointPoolCustomizer)
      Set the customizer, which will be used to modify a specific endpoint pool settings and overwrite the default settings assigned by this MultiEndpointPool.
      Parameters:
      endpointPoolCustomizer - MultiEndpointPool.EndpointPoolCustomizer
      Returns:
      this MultiEndpointPool.Builder
    • build

      public MultiEndpointPool<E> build()
      Constructs MultiEndpointPool.
      Returns:
      MultiEndpointPool