Class Cluster.Builder

  • Enclosing class:
    Cluster

    public static final class Cluster.Builder
    extends Object
    • Method Detail

      • nioPoolSize

        public Cluster.Builder nioPoolSize​(int nioPoolSize)
        Size of the pool for handling request/response operations. Defaults to the number of available processors.
      • workerPoolSize

        public Cluster.Builder workerPoolSize​(int workerPoolSize)
        Size of the pool for handling background work. Defaults to the number of available processors multiplied by 2
      • path

        public Cluster.Builder path​(String path)
        The path to the Gremlin service on the host which is "/gremlin" by default.
      • enableSsl

        public Cluster.Builder enableSsl​(boolean enable)
        Enables connectivity over SSL - note that the server should be configured with SSL turned on for this setting to work properly.
      • sslContext

        public Cluster.Builder sslContext​(io.netty.handler.ssl.SslContext sslContext)
        Explicitly set the SslContext for when more flexibility is required in the configuration than is allowed by the Cluster.Builder. If this value is set to something other than null then all other related SSL settings are ignored. The enableSsl setting should still be set to true for this setting to take effect.
      • keepAliveInterval

        public Cluster.Builder keepAliveInterval​(long keepAliveInterval)
        Length of time in milliseconds to wait on an idle connection before sending a keep-alive request. Set to zero to disable this feature.
      • keyStore

        public Cluster.Builder keyStore​(String keyStore)
        The file location of the private key in JKS or PKCS#12 format.
      • keyStorePassword

        public Cluster.Builder keyStorePassword​(String keyStorePassword)
        The password of the keyStore, or null if it's not password-protected.
      • trustStore

        public Cluster.Builder trustStore​(String trustStore)
        The file location for a SSL Certificate Chain to use when SSL is enabled. If this value is not provided and SSL is enabled, the default TrustManager will be used, which will have a set of common public certificates installed to it.
      • trustStorePassword

        public Cluster.Builder trustStorePassword​(String trustStorePassword)
        The password of the trustStore, or null if it's not password-protected.
      • sslSkipCertValidation

        public Cluster.Builder sslSkipCertValidation​(boolean sslSkipCertValidation)
        If true, trust all certificates and do not perform any validation.
      • minInProcessPerConnection

        public Cluster.Builder minInProcessPerConnection​(int minInProcessPerConnection)
        The minimum number of in-flight requests that can occur on a Connection before it is considered for closing on return to the ConnectionPool.
      • maxInProcessPerConnection

        public Cluster.Builder maxInProcessPerConnection​(int maxInProcessPerConnection)
        The maximum number of in-flight requests that can occur on a Connection. This represents an indication of how busy a Connection is allowed to be. This number is linked to the maxSimultaneousUsagePerConnection setting, but is slightly different in that it refers to the total number of requests on a Connection. In other words, a Connection might be borrowed once to have multiple requests executed against it. This number controls the maximum number of requests whereas maxSimultaneousUsagePerConnection controls the times borrowed.
      • maxSimultaneousUsagePerConnection

        public Cluster.Builder maxSimultaneousUsagePerConnection​(int maxSimultaneousUsagePerConnection)
        The maximum number of times that a Connection can be borrowed from the pool simultaneously. This represents an indication of how busy a Connection is allowed to be. Set too large and the Connection may queue requests too quickly, rather than wait for an available Connection or create a fresh one. If set too small, the Connection will show as busy very quickly thus forcing waits for available Connection instances in the pool when there is more capacity available.
      • minSimultaneousUsagePerConnection

        public Cluster.Builder minSimultaneousUsagePerConnection​(int minSimultaneousUsagePerConnection)
        The minimum number of times that a Connection should be borrowed from the pool before it falls under consideration for closing. If a Connection is not busy and the minConnectionPoolSize is exceeded, then there is no reason to keep that connection open. Set too large and Connection that isn't busy will continue to consume resources when it is not being used. Set too small and Connection instances will be destroyed when the driver might still be busy.
      • maxConnectionPoolSize

        public Cluster.Builder maxConnectionPoolSize​(int maxSize)
        The maximum size that the ConnectionPool can grow.
      • minConnectionPoolSize

        public Cluster.Builder minConnectionPoolSize​(int minSize)
        The minimum size of the ConnectionPool. When the Client is started, Connection objects will be initially constructed to this size.
      • resultIterationBatchSize

        public Cluster.Builder resultIterationBatchSize​(int size)
        Override the server setting that determines how many results are returned per batch.
      • maxWaitForConnection

        public Cluster.Builder maxWaitForConnection​(int maxWait)
        The maximum amount of time to wait for a connection to be borrowed from the connection pool.
      • maxWaitForClose

        public Cluster.Builder maxWaitForClose​(int maxWait)
        The amount of time in milliseconds to wait the connection to close before timing out where the default value is 3000. This timeout allows for a delay to occur in waiting for remaining messages that may still be returning from the server while a Client.close() is called.
      • maxContentLength

        public Cluster.Builder maxContentLength​(int maxContentLength)
        The maximum size in bytes of any request sent to the server. This number should not exceed the same setting defined on the server.
      • channelizer

        public Cluster.Builder channelizer​(String channelizerClass)
        Specify the Channelizer implementation to use on the client when creating a Connection.
      • channelizer

        public Cluster.Builder channelizer​(Class channelizerClass)
        Specify the Channelizer implementation to use on the client when creating a Connection.
      • validationRequest

        public Cluster.Builder validationRequest​(String script)
        Specify a valid Gremlin script that can be used to test remote operations. This script should be designed to return quickly with the least amount of overhead possible. By default, the script sends an empty string. If the graph does not support that sort of script because it requires all scripts to include a reference to a graph then a good option might be g.inject().
      • reconnectInterval

        public Cluster.Builder reconnectInterval​(int interval)
        Time in milliseconds to wait between retries when attempting to reconnect to a dead host.
      • loadBalancingStrategy

        public Cluster.Builder loadBalancingStrategy​(LoadBalancingStrategy loadBalancingStrategy)
        Specifies the load balancing strategy to use on the client side.
      • authProperties

        public Cluster.Builder authProperties​(AuthProperties authProps)
        Specifies parameters for authentication to Gremlin Server.
      • addContactPoint

        public Cluster.Builder addContactPoint​(String address)
        Adds the address of a Gremlin Server to the list of servers a Client will try to contact to send requests to. The address should be parseable by InetAddress.getByName(String). That's the only validation performed at this point. No connection to the host is attempted.
      • addContactPoints

        public Cluster.Builder addContactPoints​(String... addresses)
        Add one or more the addresses of a Gremlin Servers to the list of servers a Client will try to contact to send requests to. The address should be parseable by InetAddress.getByName(String). That's the only validation performed at this point. No connection to the host is attempted.
      • port

        public Cluster.Builder port​(int port)
        Sets the port that the Gremlin Servers will be listening on.
      • connectionSetupTimeoutMillis

        public Cluster.Builder connectionSetupTimeoutMillis​(long connectionSetupTimeoutMillis)
        Sets the duration of time in milliseconds provided for connection setup to complete which includes WebSocket handshake and SSL handshake. Beyond this duration an exception would be thrown.
      • enableUserAgentOnConnect

        public Cluster.Builder enableUserAgentOnConnect​(boolean enableUserAgentOnConnect)
        Configures whether cluster will send a user agent during web socket handshakes
        Parameters:
        enableUserAgentOnConnect - true enables the useragent. false disables the useragent.