ZooKeeperAdmin (Apache ZooKeeper - Server 3.7.0 API)
Date: 2021-03-17

org.apache.zookeeper.admin

## Class ZooKeeperAdmin

- java.lang.Object
- - org.apache.zookeeper.ZooKeeper
  - - org.apache.zookeeper.admin.ZooKeeperAdmin

- All Implemented Interfaces:
    AutoCloseable

      @InterfaceAudience.Public
      public class ZooKeeperAdmin
      extends ZooKeeper

  This is the main class for ZooKeeperAdmin client library. This library is used to perform cluster administration tasks, such as reconfigure cluster membership. The ZooKeeperAdmin class inherits ZooKeeper and has similar usage pattern as ZooKeeper class. Please check `ZooKeeper` class document for more details.
  Since:
    3.5.3

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.zookeeper.ZooKeeper

      `ZooKeeper.States, ZooKeeper.WatchRegistration`

  - ### Field Summary

    - ### Fields inherited from class org.apache.zookeeper.ZooKeeper

      `cnxn, hostProvider, SECURE_CLIENT, ZOOKEEPER_CLIENT_CNXN_SOCKET`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ZooKeeperAdmin(String connectString, int sessionTimeout, Watcher watcher)` Create a ZooKeeperAdmin object which is used to perform dynamic reconfiguration operations.
    `ZooKeeperAdmin(String connectString, int sessionTimeout, Watcher watcher, boolean canBeReadOnly)` Create a ZooKeeperAdmin object which is used to perform dynamic reconfiguration operations.
    `ZooKeeperAdmin(String connectString, int sessionTimeout, Watcher watcher, boolean canBeReadOnly, ZKClientConfig conf)` Create a ZooKeeperAdmin object which is used to perform dynamic reconfiguration operations.
    `ZooKeeperAdmin(String connectString, int sessionTimeout, Watcher watcher, ZKClientConfig conf)` Create a ZooKeeperAdmin object which is used to perform dynamic reconfiguration operations.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `reconfigure(List<String> joiningServers, List<String> leavingServers, List<String> newMembers, long fromConfig, AsyncCallback.DataCallback cb, Object ctx)` Convenience wrapper around asynchronous reconfig that takes Lists of strings instead of comma-separated servers.
    `byte[]` | `reconfigure(List<String> joiningServers, List<String> leavingServers, List<String> newMembers, long fromConfig, Stat stat)` Convenience wrapper around reconfig that takes Lists of strings instead of comma-separated servers.
    `void` | `reconfigure(String joiningServers, String leavingServers, String newMembers, long fromConfig, AsyncCallback.DataCallback cb, Object ctx)` The Asynchronous version of reconfig.
    `byte[]` | `reconfigure(String joiningServers, String leavingServers, String newMembers, long fromConfig, Stat stat)` Reconfigure - add/remove servers.
    `String` | `toString()` String representation of this ZooKeeperAdmin client.

    - ### Methods inherited from class org.apache.zookeeper.ZooKeeper

      `addAuthInfo, addWatch, addWatch, addWatch, addWatch, close, close, create, create, create, create, create, create, delete, delete, exists, exists, exists, exists, getACL, getACL, getAllChildrenNumber, getAllChildrenNumber, getChildren, getChildren, getChildren, getChildren, getChildren, getChildren, getChildren, getChildren, getChildWatches, getClientConfig, getConfig, getConfig, getConfig, getConfig, getData, getData, getData, getData, getDataWatches, getEphemerals, getEphemerals, getEphemerals, getEphemerals, getExistWatches, getPersistentRecursiveWatches, getPersistentWatches, getSaslClient, getSessionId, getSessionPasswd, getSessionTimeout, getState, getTestable, multi, multi, multiInternal, multiInternal, register, removeAllWatches, removeAllWatches, removeWatches, removeWatches, setACL, setACL, setData, setData, sync, testableLocalSocketAddress, testableRemoteSocketAddress, testableWaitForShutdown, transaction, updateServerList, whoAmI`

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

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

- - ### Constructor Detail

    - #### ZooKeeperAdmin

          public ZooKeeperAdmin(String connectString,
                                int sessionTimeout,
                                Watcher watcher)
                         throws IOException

      Create a ZooKeeperAdmin object which is used to perform dynamic reconfiguration operations.
      Parameters:
        `connectString` - comma separated host:port pairs, each corresponding to a zk server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002" If the optional chroot suffix is used the example would look like: "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002/app/a" where the client would be rooted at "/app/a" and all paths would be relative to this root - ie getting/setting/etc... "/foo/bar" would result in operations being run on "/app/a/foo/bar" (from the server perspective).
        `sessionTimeout` - session timeout in milliseconds
        `watcher` - a watcher object which will be notified of state changes, may also be notified for node events
      Throws:
        `IOException` - in cases of network failure
        `IllegalArgumentException` - if an invalid chroot path is specified
      See Also:
        `ZooKeeper(String, int, Watcher)`

    - #### ZooKeeperAdmin

          public ZooKeeperAdmin(String connectString,
                                int sessionTimeout,
                                Watcher watcher,
                                ZKClientConfig conf)
                         throws IOException

      Create a ZooKeeperAdmin object which is used to perform dynamic reconfiguration operations.
      Parameters:
        `connectString` - comma separated host:port pairs, each corresponding to a zk server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002" If the optional chroot suffix is used the example would look like: "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002/app/a" where the client would be rooted at "/app/a" and all paths would be relative to this root - ie getting/setting/etc... "/foo/bar" would result in operations being run on "/app/a/foo/bar" (from the server perspective).
        `sessionTimeout` - session timeout in milliseconds
        `watcher` - a watcher object which will be notified of state changes, may also be notified for node events
        `conf` - passing this conf object gives each client the flexibility of configuring properties differently compared to other instances
      Throws:
        `IOException` - in cases of network failure
        `IllegalArgumentException` - if an invalid chroot path is specified
      See Also:
        `ZooKeeper(String, int, Watcher, ZKClientConfig)`

    - #### ZooKeeperAdmin

          public ZooKeeperAdmin(String connectString,
                                int sessionTimeout,
                                Watcher watcher,
                                boolean canBeReadOnly,
                                ZKClientConfig conf)
                         throws IOException

      Create a ZooKeeperAdmin object which is used to perform dynamic reconfiguration operations.
      Parameters:
        `connectString` - comma separated host:port pairs, each corresponding to a zk server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002" If the optional chroot suffix is used the example would look like: "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002/app/a" where the client would be rooted at "/app/a" and all paths would be relative to this root - ie getting/setting/etc... "/foo/bar" would result in operations being run on "/app/a/foo/bar" (from the server perspective).
        `sessionTimeout` - session timeout in milliseconds
        `watcher` - a watcher object which will be notified of state changes, may also be notified for node events
        `canBeReadOnly` - whether the created client is allowed to go to read-only mode in case of partitioning. Read-only mode basically means that if the client can't find any majority servers but there's partitioned server it could reach, it connects to one in read-only mode, i.e. read requests are allowed while write requests are not. It continues seeking for majority in the background.
        `conf` - passing this conf object gives each client the flexibility of configuring properties differently compared to other instances
      Throws:
        `IOException` - in cases of network failure
        `IllegalArgumentException` - if an invalid chroot path is specified
      Since:
        3.6.1
      See Also:
        `ZooKeeper(String, int, Watcher, boolean, ZKClientConfig)`

    - #### ZooKeeperAdmin

          public ZooKeeperAdmin(String connectString,
                                int sessionTimeout,
                                Watcher watcher,
                                boolean canBeReadOnly)
                         throws IOException

      Create a ZooKeeperAdmin object which is used to perform dynamic reconfiguration operations.
      Parameters:
        `connectString` - comma separated host:port pairs, each corresponding to a zk server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002" If the optional chroot suffix is used the example would look like: "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002/app/a" where the client would be rooted at "/app/a" and all paths would be relative to this root - ie getting/setting/etc... "/foo/bar" would result in operations being run on "/app/a/foo/bar" (from the server perspective).
        `sessionTimeout` - session timeout in milliseconds
        `watcher` - a watcher object which will be notified of state changes, may also be notified for node events
        `canBeReadOnly` - whether the created client is allowed to go to read-only mode in case of partitioning. Read-only mode basically means that if the client can't find any majority servers but there's partitioned server it could reach, it connects to one in read-only mode, i.e. read requests are allowed while write requests are not. It continues seeking for majority in the background.
      Throws:
        `IOException` - in cases of network failure
        `IllegalArgumentException` - if an invalid chroot path is specified
      See Also:
        `ZooKeeper(String, int, Watcher, boolean)`

  - ### Method Detail

    - #### reconfigure

          public byte[] reconfigure(String joiningServers,
                                    String leavingServers,
                                    String newMembers,
                                    long fromConfig,
                                    Stat stat)
                             throws KeeperException,
                                    InterruptedException

      Reconfigure - add/remove servers. Return the new configuration.
      Parameters:
        `joiningServers` - a comma separated list of servers being added (incremental reconfiguration)
        `leavingServers` - a comma separated list of servers being removed (incremental reconfiguration)
        `newMembers` - a comma separated list of new membership (non-incremental reconfiguration)
        `fromConfig` - version of the current configuration (optional - causes reconfiguration to throw an exception if configuration is no longer current)
        `stat` - the stat of /zookeeper/config znode will be copied to this parameter if not null.
      Returns:
        new configuration
      Throws:
        `InterruptedException` - If the server transaction is interrupted.
        `KeeperException` - If the server signals an error with a non-zero error code.

    - #### reconfigure

          public byte[] reconfigure(List<String> joiningServers,
                                    List<String> leavingServers,
                                    List<String> newMembers,
                                    long fromConfig,
                                    Stat stat)
                             throws KeeperException,
                                    InterruptedException

      Convenience wrapper around reconfig that takes Lists of strings instead of comma-separated servers.
      Throws:
        `KeeperException`
        `InterruptedException`
      See Also:
        `reconfigure(java.lang.String, java.lang.String, java.lang.String, long, org.apache.zookeeper.data.Stat)`

    - #### reconfigure

          public void reconfigure(String joiningServers,
                                  String leavingServers,
                                  String newMembers,
                                  long fromConfig,
                                  AsyncCallback.DataCallback cb,
                                  Object ctx)

      The Asynchronous version of reconfig.
      See Also:
        `reconfigure(java.lang.String, java.lang.String, java.lang.String, long, org.apache.zookeeper.data.Stat)`

    - #### reconfigure

          public void reconfigure(List<String> joiningServers,
                                  List<String> leavingServers,
                                  List<String> newMembers,
                                  long fromConfig,
                                  AsyncCallback.DataCallback cb,
                                  Object ctx)

      Convenience wrapper around asynchronous reconfig that takes Lists of strings instead of comma-separated servers.
      See Also:
        `reconfigure(java.lang.String, java.lang.String, java.lang.String, long, org.apache.zookeeper.data.Stat)`

    - #### toString

          public String toString()

      String representation of this ZooKeeperAdmin client. Suitable for things like logging. Do NOT count on the format of this string, it may change without warning.
      Overrides:
        `toString` in class `ZooKeeper`
      Since:
        3.5.3

Copyright © 2008–2021 The Apache Software Foundation. All rights reserved.