Enum ServerFeature

    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
      ALT_REQUEST
      Allows the server to accept requests with flexible extras.
      CLUSTERMAP_CHANGE_NOTIFICATION
      The client wants the server to send a CLUSTERMAP_CHANGE_NOTIFICATION request to the client whenever a new bucket config is available for the connected bucket, or global config if no bucket is selected.
      CLUSTERMAP_CHANGE_NOTIFICATION_BRIEF
      The client wants the server to send a CLUSTERMAP_CHANGE_NOTIFICATION request to the client whenever a new bucket config is available for the connected bucket, or global config if no bucket is selected.
      COLLECTIONS
      Enables the collections feature.
      CREATE_AS_DELETED
      Enables the "create as deleted" flag, allowing a document to be created in a tombstoned state.
      DATATYPE
      Deprecated.
      this feature is considered retired.
      DEDUPE_NOT_MY_VBUCKET_CLUSTERMAP
      Notify the server that the client correctly deals with the optional payload in a "Not My Vbucket" response.
      DUPLEX
      Enables Duplex mode support.
      GET_CLUSTER_CONFIG_WITH_KNOWN_VERSION
      If enabled, the client may include its current config version in a GET_CLUSTER_CONFIG request, and the server may respond to such a request with an empty value to indicate the client already has the latest version.
      JSON
      Enables JSON data identification support.
      MUTATION_SEQNO
      Returns the sequence number on every mutation.
      PRESERVE_TTL
      Enables preserving expiry when updating document.
      REPORT_UNIT_USAGE
      When enabled, the server will insert frame info field(s) in the response containing the amount of read and write units the command used on the server, and the time the command spent throttled on the server.
      SELECT_BUCKET
      Enable select_bucket support.
      SNAPPY
      Enable snappy-based compression support for CRUD operations.
      SNAPPY_EVERYWHERE
      Notify the server that the client honors the Snappy datatype bit on all response packets, regardless of request opcode.
      SUBDOC_READ_REPLICA
      When enabled, the server will allow SUBDOC_MULTI_LOOKUP for a document to be accepted by a replica node and will return the replica for the document.
      SYNC_REPLICATION
      Specify durability requirements for mutations.
      TCPDELAY
      Disable TCP Nodelay.
      TCPNODELAY
      Enables TCP Nodelay.
      TLS
      The TLS feature.
      TRACING
      Enable tracing support.
      UNORDERED_EXECUTION
      Tell the server that we're ok with the server reordering the execution of commands.
      VATTR
      Enables the vattr feature.
      XATTR
      Enable xattr support.
      XERROR
      Enable extended error map support.
    • Enum Constant Detail

      • SNAPPY

        @SinceCouchbase("5.5")
        public static final ServerFeature SNAPPY
        Enable snappy-based compression support for CRUD operations.

        History note: Due to incorrect implementations in some clients, this feature enables Snappy compression only for CRUD operations.

        See Also:
        SNAPPY_EVERYWHERE
      • CLUSTERMAP_CHANGE_NOTIFICATION

        @SinceCouchbase("5.5")
        public static final ServerFeature CLUSTERMAP_CHANGE_NOTIFICATION
        The client wants the server to send a CLUSTERMAP_CHANGE_NOTIFICATION request to the client whenever a new bucket config is available for the connected bucket, or global config if no bucket is selected.

        The notification includes the config epoch and revision (as extras), as well as the full config JSON in the value of the request.

        Note: When DEDUPE_NOT_MY_VBUCKET_CLUSTERMAP is also enabled, the server does not send a notification if it previously sent the new config in the body of a "Not My Vbucket" response.

        See Also:
        CLUSTERMAP_CHANGE_NOTIFICATION_BRIEF
      • UNORDERED_EXECUTION

        @SinceCouchbase("5.5")
        public static final ServerFeature UNORDERED_EXECUTION
        Tell the server that we're ok with the server reordering the execution of commands.
      • ALT_REQUEST

        @SinceCouchbase("6.5")
        public static final ServerFeature ALT_REQUEST
        Allows the server to accept requests with flexible extras.
      • SYNC_REPLICATION

        @SinceCouchbase("6.5")
        public static final ServerFeature SYNC_REPLICATION
        Specify durability requirements for mutations.
      • COLLECTIONS

        @SinceCouchbase("7.0")
        public static final ServerFeature COLLECTIONS
        Enables the collections feature.

        History note: There was a "collections" feature in Couchbase in 5.0, but it had a different code (0x09) that has since been retired.

      • SNAPPY_EVERYWHERE

        @SinceCouchbase("7.6")
        public static final ServerFeature SNAPPY_EVERYWHERE
        Notify the server that the client honors the Snappy datatype bit on all response packets, regardless of request opcode.
        See Also:
        SNAPPY
      • VATTR

        @SinceCouchbase("6.5.1")
        public static final ServerFeature VATTR
        Enables the vattr feature.

        Note that vattrs (such as $document) were available before this, but this flag signifies that if a vattr is requested that the server does not recognise, it will be rejected with the correct XATTR_UNKNOWN_VATTR error, rather than the connection being disconnected.

      • CREATE_AS_DELETED

        @SinceCouchbase("6.6")
        public static final ServerFeature CREATE_AS_DELETED
        Enables the "create as deleted" flag, allowing a document to be created in a tombstoned state.
      • REPORT_UNIT_USAGE

        @SinceCouchbase("7.2")
        public static final ServerFeature REPORT_UNIT_USAGE
        When enabled, the server will insert frame info field(s) in the response containing the amount of read and write units the command used on the server, and the time the command spent throttled on the server. The fields will only be inserted if non-zero.
      • SUBDOC_READ_REPLICA

        @SinceCouchbase("7.6")
        public static final ServerFeature SUBDOC_READ_REPLICA
        When enabled, the server will allow SUBDOC_MULTI_LOOKUP for a document to be accepted by a replica node and will return the replica for the document.
      • GET_CLUSTER_CONFIG_WITH_KNOWN_VERSION

        @SinceCouchbase("7.6")
        public static final ServerFeature GET_CLUSTER_CONFIG_WITH_KNOWN_VERSION
        If enabled, the client may include its current config version in a GET_CLUSTER_CONFIG request, and the server may respond to such a request with an empty value to indicate the client already has the latest version.

        Note: Does not control server behavior. A server that supports this feature always allows such requests, regardless of whether the feature was enabled.

      • DEDUPE_NOT_MY_VBUCKET_CLUSTERMAP

        @SinceCouchbase("7.6")
        public static final ServerFeature DEDUPE_NOT_MY_VBUCKET_CLUSTERMAP
        Notify the server that the client correctly deals with the optional payload in a "Not My Vbucket" response. When enabled, this prevents the server from sending redundant config change notifications across "Not My Vbucket" responses as well as clustermap change notification server requests.
        See Also:
        CLUSTERMAP_CHANGE_NOTIFICATION, CLUSTERMAP_CHANGE_NOTIFICATION_BRIEF
      • CLUSTERMAP_CHANGE_NOTIFICATION_BRIEF

        @SinceCouchbase("7.6")
        public static final ServerFeature CLUSTERMAP_CHANGE_NOTIFICATION_BRIEF
        The client wants the server to send a CLUSTERMAP_CHANGE_NOTIFICATION request to the client whenever a new bucket config is available for the connected bucket, or global config if no bucket is selected.

        The client wants the notification to be "brief", including only the config epoch and revision (as extras), but not the full config JSON itself.

        This feature is an upgrade from CLUSTERMAP_CHANGE_NOTIFICATION. If the server supports both, and the client requests both, only the brief version is enabled.

        NOTE: When DEDUPE_NOT_MY_VBUCKET_CLUSTERMAP is also enabled, the server does not send a notification if it previously sent the new config in the body of a "Not My Vbucket" response.

        See Also:
        CLUSTERMAP_CHANGE_NOTIFICATION
    • Method Detail

      • values

        public static ServerFeature[] values()
        Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
        for (ServerFeature c : ServerFeature.values())
            System.out.println(c);
        
        Returns:
        an array containing the constants of this enum type, in the order they are declared
      • valueOf

        public static ServerFeature valueOf​(String name)
        Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
        Parameters:
        name - the name of the enum constant to be returned.
        Returns:
        the enum constant with the specified name
        Throws:
        IllegalArgumentException - if this enum type has no constant with the specified name
        NullPointerException - if the argument is null
      • value

        public int value()
        Returns an int whose low 16 bits contain the feature's value in the wire protocol.
        Returns:
        the actual wire value.