List of usage examples for org.apache.zookeeper.server ZKDatabase ZKDatabase
public ZKDatabase(FileTxnSnapLog snapLog)
From source file:com.chiralBehaviors.autoconfigure.ZookeeperLauncher.java
License:Open Source License
/** * Copied from QuorumPeerMain//from w ww . j a v a 2 s. c om */ protected void runFromConfig(QuorumPeerConfig config) throws IOException { LOG.info("Starting quorum peer"); ServerCnxnFactory cnxnFactory = ServerCnxnFactory.createFactory(); cnxnFactory.configure(config.getClientPortAddress(), config.getMaxClientCnxns()); quorumPeer = new QuorumPeer(); quorumPeer.setClientPortAddress(config.getClientPortAddress()); quorumPeer .setTxnFactory(new FileTxnSnapLog(new File(config.getDataLogDir()), new File(config.getDataDir()))); quorumPeer.setQuorumPeers(config.getServers()); quorumPeer.setElectionType(config.getElectionAlg()); quorumPeer.setMyid(config.getServerId()); quorumPeer.setTickTime(config.getTickTime()); quorumPeer.setMinSessionTimeout(config.getMinSessionTimeout()); quorumPeer.setMaxSessionTimeout(config.getMaxSessionTimeout()); quorumPeer.setInitLimit(config.getInitLimit()); quorumPeer.setSyncLimit(config.getSyncLimit()); quorumPeer.setQuorumVerifier(config.getQuorumVerifier()); quorumPeer.setCnxnFactory(cnxnFactory); quorumPeer.setZKDatabase(new ZKDatabase(quorumPeer.getTxnFactory())); quorumPeer.setLearnerType(config.getPeerType()); quorumPeer.start(); }
From source file:com.glaf.cluster.catalina.session.QuorumPeerMain.java
License:Apache License
public void runFromConfig(QuorumPeerConfig config) throws IOException { try {/* w ww . ja v a2s . co m*/ ManagedUtil.registerLog4jMBeans(); } catch (JMException e) { LOG.warn("Unable to register log4j JMX control", e); } LOG.info("Starting quorum peer"); try { ServerCnxnFactory cnxnFactory = ServerCnxnFactory.createFactory(); cnxnFactory.configure(config.getClientPortAddress(), config.getMaxClientCnxns()); quorumPeer = new QuorumPeer(); quorumPeer.setClientPortAddress(config.getClientPortAddress()); quorumPeer.setTxnFactory( new FileTxnSnapLog(new File(config.getDataLogDir()), new File(config.getDataDir()))); quorumPeer.setQuorumPeers(config.getServers()); quorumPeer.setElectionType(config.getElectionAlg()); quorumPeer.setMyid(config.getServerId()); quorumPeer.setTickTime(config.getTickTime()); quorumPeer.setMinSessionTimeout(config.getMinSessionTimeout()); quorumPeer.setMaxSessionTimeout(config.getMaxSessionTimeout()); quorumPeer.setInitLimit(config.getInitLimit()); quorumPeer.setSyncLimit(config.getSyncLimit()); quorumPeer.setQuorumVerifier(config.getQuorumVerifier()); quorumPeer.setCnxnFactory(cnxnFactory); quorumPeer.setZKDatabase(new ZKDatabase(quorumPeer.getTxnFactory())); quorumPeer.setLearnerType(config.getPeerType()); quorumPeer.start(); quorumPeer.join(); } catch (InterruptedException e) { // warn, but generally this is ok LOG.warn("Quorum Peer interrupted", e); } }
From source file:com.linkedin.d2.quorum.ZKPeer.java
License:Apache License
public void setQuorumPeer(int peersCount, Map<Long, QuorumServer> peersView, FileTxnSnapLog fts) throws IOException { NIOServerCnxn.Factory cnxnFactory = new NIOServerCnxn.Factory( new InetSocketAddress("127.0.0.1", _clientPort), _maxClientCnxns); _peer = new QuorumPeer(); _peer.setClientPortAddress(new InetSocketAddress("127.0.0.1", _clientPort)); _peer.setTxnFactory(fts);/*www . ja va 2 s . c om*/ _peer.setQuorumPeers(peersView); _peer.setElectionType(_electionAlg); _peer.setMyid(_id); _peer.setTickTime(_tickTime); _peer.setMinSessionTimeout(_minSessionTimeout); _peer.setMaxSessionTimeout(_maxSessionTimeout); _peer.setInitLimit(_initLimit); _peer.setSyncLimit(_syncLimit); _peer.setQuorumVerifier(new QuorumMaj(peersCount)); _peer.setCnxnFactory(cnxnFactory); _peer.setZKDatabase(new ZKDatabase(_peer.getTxnFactory())); _peer.setPeerType(LearnerType.PARTICIPANT); }
From source file:com.nesscomputing.service.discovery.server.zookeeper.ManagedQuorumPeer.java
License:Apache License
@Inject ManagedQuorumPeer(final QuorumPeerConfig quorumPeerConfig, final NIOServerCnxn.Factory cnxnFactory, final FileTxnSnapLog fileTxnSnapLog) { quorumPeer = new QuorumPeer(); quorumPeer.setClientPortAddress(quorumPeerConfig.getClientPortAddress()); quorumPeer.setTxnFactory(fileTxnSnapLog); quorumPeer.setQuorumPeers(quorumPeerConfig.getServers()); quorumPeer.setElectionType(quorumPeerConfig.getElectionAlg()); quorumPeer.setMyid(quorumPeerConfig.getServerId()); quorumPeer.setTickTime(quorumPeerConfig.getTickTime()); quorumPeer.setMinSessionTimeout(quorumPeerConfig.getMinSessionTimeout()); quorumPeer.setMaxSessionTimeout(quorumPeerConfig.getMaxSessionTimeout()); quorumPeer.setInitLimit(quorumPeerConfig.getInitLimit()); quorumPeer.setSyncLimit(quorumPeerConfig.getSyncLimit()); quorumPeer.setQuorumVerifier(quorumPeerConfig.getQuorumVerifier()); quorumPeer.setCnxnFactory(cnxnFactory); quorumPeer.setZKDatabase(new ZKDatabase(quorumPeer.getTxnFactory())); quorumPeer.setLearnerType(quorumPeerConfig.getPeerType()); }
From source file:com.splicemachine.test.SpliceZoo.java
License:Apache License
public SpliceZoo(QuorumPeerConfig config, int number) throws IOException { this.config = config; this.peer = new QuorumPeer(); ServerCnxnFactory cnxnFactory = ServerCnxnFactory.createFactory(); cnxnFactory.configure(config.getClientPortAddress(), config.getMaxClientCnxns()); peer.setClientPortAddress(config.getClientPortAddress()); peer.setTxnFactory(new FileTxnSnapLog(new File(config.getDataLogDir()), new File(config.getDataDir()))); peer.setQuorumPeers(config.getServers()); peer.setElectionType(config.getElectionAlg()); peer.setMyid(config.getServerId());// w w w.ja v a2 s . c o m peer.setTickTime(config.getTickTime()); peer.setMinSessionTimeout(config.getMinSessionTimeout()); peer.setMaxSessionTimeout(config.getMaxSessionTimeout()); peer.setInitLimit(config.getInitLimit()); peer.setSyncLimit(config.getSyncLimit()); peer.setQuorumVerifier(config.getQuorumVerifier()); peer.setCnxnFactory(cnxnFactory); peer.setZKDatabase(new ZKDatabase(peer.getTxnFactory())); peer.setLearnerType(config.getPeerType()); peer.setMyid(number); }
From source file:io.fabric8.core.zookeeper.FabricZooKeeperServer.java
License:Apache License
private Destroyable activateInternal(Map<String, ?> configuration) throws Exception { LOGGER.info("Creating zookeeper server with: {}", configuration); Properties props = new Properties(); for (Map.Entry<String, ?> entry : configuration.entrySet()) { props.put(entry.getKey(), entry.getValue()); }/* ww w. ja va 2s. co m*/ //Check required directories exist or create them. if (!dataDir.exists() && !dataDir.mkdirs()) { throw new IOException("Failed to create ZooKeeper dataDir at: " + dataDir.getAbsolutePath()); } if (!dataLogDir.exists() && !dataLogDir.mkdirs()) { throw new IOException("Failed to create ZooKeeper dataLogDir at: " + dataLogDir.getAbsolutePath()); } // Create myid file String serverId = (String) props.get(SERVER_ID); if (serverId != null) { props.remove(SERVER_ID); File myId = new File(dataDir, MY_ID); if (myId.exists() && !myId.delete()) { throw new IOException("Failed to delete " + myId); } if (myId.getParentFile() == null || (!myId.getParentFile().exists() && !myId.getParentFile().mkdirs())) { throw new IOException("Failed to create " + myId.getParent()); } FileOutputStream fos = new FileOutputStream(myId); try { fos.write((serverId + "\n").getBytes()); } finally { fos.close(); } } QuorumPeerConfig peerConfig = getPeerConfig(props); if (!peerConfig.getServers().isEmpty()) { NIOServerCnxnFactory cnxnFactory = new NIOServerCnxnFactory(); cnxnFactory.configure(peerConfig.getClientPortAddress(), peerConfig.getMaxClientCnxns()); QuorumPeer quorumPeer = new QuorumPeer(); quorumPeer.setClientPortAddress(peerConfig.getClientPortAddress()); quorumPeer.setTxnFactory( new FileTxnSnapLog(new File(peerConfig.getDataLogDir()), new File(peerConfig.getDataDir()))); quorumPeer.setQuorumPeers(peerConfig.getServers()); quorumPeer.setElectionType(peerConfig.getElectionAlg()); quorumPeer.setMyid(peerConfig.getServerId()); quorumPeer.setTickTime(peerConfig.getTickTime()); quorumPeer.setMinSessionTimeout(peerConfig.getMinSessionTimeout()); quorumPeer.setMaxSessionTimeout(peerConfig.getMaxSessionTimeout()); quorumPeer.setInitLimit(peerConfig.getInitLimit()); quorumPeer.setSyncLimit(peerConfig.getSyncLimit()); quorumPeer.setQuorumVerifier(peerConfig.getQuorumVerifier()); quorumPeer.setCnxnFactory(cnxnFactory); quorumPeer.setZKDatabase(new ZKDatabase(quorumPeer.getTxnFactory())); quorumPeer.setLearnerType(peerConfig.getPeerType()); try { LOGGER.debug("Starting quorum peer \"%s\" on address %s", quorumPeer.getMyid(), peerConfig.getClientPortAddress()); quorumPeer.start(); LOGGER.debug("Started quorum peer \"%s\"", quorumPeer.getMyid()); } catch (Exception e) { LOGGER.warn(String.format("Failed to start quorum peer \"%s\", reason : %s ", quorumPeer.getMyid(), e.getMessage())); quorumPeer.shutdown(); throw e; } // Register stats provider ClusteredServer server = new ClusteredServer(quorumPeer); return server; } else { ServerConfig serverConfig = getServerConfig(peerConfig); ZooKeeperServer zkServer = new ZooKeeperServer(); FileTxnSnapLog ftxn = new FileTxnSnapLog(new File(serverConfig.getDataLogDir()), new File(serverConfig.getDataDir())); zkServer.setTxnLogFactory(ftxn); zkServer.setTickTime(serverConfig.getTickTime()); zkServer.setMinSessionTimeout(serverConfig.getMinSessionTimeout()); zkServer.setMaxSessionTimeout(serverConfig.getMaxSessionTimeout()); NIOServerCnxnFactory cnxnFactory = new NIOServerCnxnFactory() { protected void configureSaslLogin() throws IOException { } }; cnxnFactory.configure(serverConfig.getClientPortAddress(), serverConfig.getMaxClientCnxns()); try { LOGGER.debug("Starting ZooKeeper server on address %s", peerConfig.getClientPortAddress()); cnxnFactory.startup(zkServer); LOGGER.debug("Started ZooKeeper server"); } catch (Exception e) { LOGGER.warn(String.format("Failed to start ZooKeeper server, reason : %s", e)); cnxnFactory.shutdown(); throw e; } // Register stats provider SimpleServer server = new SimpleServer(zkServer, cnxnFactory); return server; } }
From source file:io.fabric8.zookeeper.bootstrap.ZooKeeperServerFactory.java
License:Apache License
public ZooKeeperServerFactory(QuorumPeerConfig peerConfig, String serverId) throws IOException, InterruptedException { this.peerConfig = peerConfig; this.serverId = serverId; LOGGER.info("Creating zookeeper server with: {}", peerConfig); if (!peerConfig.getServers().isEmpty()) { NIOServerCnxnFactory cnxnFactory = new NIOServerCnxnFactory(); cnxnFactory.configure(peerConfig.getClientPortAddress(), peerConfig.getMaxClientCnxns()); QuorumPeer quorumPeer = new QuorumPeer(); quorumPeer.setClientPortAddress(peerConfig.getClientPortAddress()); quorumPeer.setTxnFactory(//w w w . ja va2 s. c om new FileTxnSnapLog(new File(peerConfig.getDataLogDir()), new File(peerConfig.getDataDir()))); quorumPeer.setQuorumPeers(peerConfig.getServers()); quorumPeer.setElectionType(peerConfig.getElectionAlg()); quorumPeer.setMyid(peerConfig.getServerId()); quorumPeer.setTickTime(peerConfig.getTickTime()); quorumPeer.setMinSessionTimeout(peerConfig.getMinSessionTimeout()); quorumPeer.setMaxSessionTimeout(peerConfig.getMaxSessionTimeout()); quorumPeer.setInitLimit(peerConfig.getInitLimit()); quorumPeer.setSyncLimit(peerConfig.getSyncLimit()); quorumPeer.setQuorumVerifier(peerConfig.getQuorumVerifier()); quorumPeer.setCnxnFactory(cnxnFactory); quorumPeer.setZKDatabase(new ZKDatabase(quorumPeer.getTxnFactory())); quorumPeer.setLearnerType(peerConfig.getPeerType()); try { LOGGER.debug("Starting quorum peer \"%s\" on address %s", quorumPeer.getMyid(), peerConfig.getClientPortAddress()); quorumPeer.start(); LOGGER.debug("Started quorum peer \"%s\"", quorumPeer.getMyid()); } catch (Exception e) { LOGGER.warn(String.format("Failed to start quorum peer \"%s\", reason : %s ", quorumPeer.getMyid(), e.getMessage())); quorumPeer.shutdown(); throw e; } updateZooKeeperURL(cnxnFactory.getLocalAddress(), cnxnFactory.getLocalPort()); // Register stats provider this.clusteredServer = new ClusteredServer(quorumPeer); /* registration = context.registerService(QuorumStats.Provider.class, server, null); */ } else { ServerConfig serverConfig = getServerConfig(peerConfig); ZooKeeperServer zkServer = new ZooKeeperServer(); FileTxnSnapLog ftxn = new FileTxnSnapLog(new File(serverConfig.getDataLogDir()), new File(serverConfig.getDataDir())); zkServer.setTxnLogFactory(ftxn); zkServer.setTickTime(serverConfig.getTickTime()); zkServer.setMinSessionTimeout(serverConfig.getMinSessionTimeout()); zkServer.setMaxSessionTimeout(serverConfig.getMaxSessionTimeout()); NIOServerCnxnFactory cnxnFactory = new NIOServerCnxnFactory() { protected void configureSaslLogin() throws IOException { } }; InetSocketAddress clientPortAddress = serverConfig.getClientPortAddress(); cnxnFactory.configure(clientPortAddress, serverConfig.getMaxClientCnxns()); updateZooKeeperURL(cnxnFactory.getLocalAddress(), cnxnFactory.getLocalPort()); try { LOGGER.debug("Starting ZooKeeper server on address %s", peerConfig.getClientPortAddress()); cnxnFactory.startup(zkServer); LOGGER.debug("Started ZooKeeper server"); } catch (Exception e) { LOGGER.warn(String.format("Failed to start ZooKeeper server, reason : %s", e)); cnxnFactory.shutdown(); throw e; } // Register stats provider this.simplerServer = new SimpleServer(zkServer, cnxnFactory); /* registration = context.registerService(ServerStats.Provider.class, server, null); */ } }
From source file:org.apache.nifi.controller.state.server.ZooKeeperStateServer.java
License:Apache License
private void startDistributed() throws IOException { logger.info("Starting Embedded ZooKeeper Peer"); try {/*from w w w . ja v a2s . co m*/ transactionLog = new FileTxnSnapLog(new File(quorumPeerConfig.getDataLogDir()), new File(quorumPeerConfig.getDataDir())); connectionFactory = ServerCnxnFactory.createFactory(); connectionFactory.configure(quorumPeerConfig.getClientPortAddress(), quorumPeerConfig.getMaxClientCnxns()); quorumPeer = new QuorumPeer(); quorumPeer.setClientPortAddress(quorumPeerConfig.getClientPortAddress()); quorumPeer.setTxnFactory(new FileTxnSnapLog(new File(quorumPeerConfig.getDataLogDir()), new File(quorumPeerConfig.getDataDir()))); quorumPeer.setQuorumPeers(quorumPeerConfig.getServers()); quorumPeer.setElectionType(quorumPeerConfig.getElectionAlg()); quorumPeer.setMyid(quorumPeerConfig.getServerId()); quorumPeer.setTickTime(quorumPeerConfig.getTickTime()); quorumPeer.setMinSessionTimeout(quorumPeerConfig.getMinSessionTimeout()); quorumPeer.setMaxSessionTimeout(quorumPeerConfig.getMaxSessionTimeout()); quorumPeer.setInitLimit(quorumPeerConfig.getInitLimit()); quorumPeer.setSyncLimit(quorumPeerConfig.getSyncLimit()); quorumPeer.setQuorumVerifier(quorumPeerConfig.getQuorumVerifier()); quorumPeer.setCnxnFactory(connectionFactory); quorumPeer.setZKDatabase(new ZKDatabase(quorumPeer.getTxnFactory())); quorumPeer.setLearnerType(quorumPeerConfig.getPeerType()); quorumPeer.setSyncEnabled(quorumPeerConfig.getSyncEnabled()); quorumPeer.setQuorumListenOnAllIPs(quorumPeerConfig.getQuorumListenOnAllIPs()); quorumPeer.start(); } catch (final IOException ioe) { throw new IOException("Failed to start embedded ZooKeeper Peer", ioe); } catch (final Exception e) { throw new RuntimeException("Failed to start embedded ZooKeeper Peer", e); } }
From source file:org.dcache.zookeeper.service.ZooKeeperCell.java
License:Open Source License
@Override protected void starting() throws Exception { super.starting(); InetSocketAddress socketAddress = Strings.isNullOrEmpty(address) ? new InetSocketAddress(port) : new InetSocketAddress(address, port); checkArgument(autoPurgeInterval > 0, "zookeeper.auto-purge.purge-interval must be non-negative."); zkServer = new PatchedZooKeeperServer(); txnLog = new FileTxnSnapLog(dataLogDir, dataDir); zkServer.setTxnLogFactory(txnLog);/*from w w w . j a va2 s . c o m*/ zkServer.setTickTime((int) tickTimeUnit.toMillis(tickTime)); zkServer.setMinSessionTimeout( minSessionTimeout == -1 ? -1 : (int) minSessionTimeoutUnit.toMillis(minSessionTimeout)); zkServer.setMaxSessionTimeout( maxSessionTimeout == -1 ? -1 : (int) maxSessionTimeoutUnit.toMillis(maxSessionTimeout)); zkServer.setZKDatabase(new ZKDatabase(txnLog)); // Work-around https://issues.apache.org/jira/browse/ZOOKEEPER-2810 zkServer.createSessionTracker(); // Work around https://issues.apache.org/jira/browse/ZOOKEEPER-2812 ServerCnxnFactory cnxnFactory; cnxnFactory = new NIOServerCnxnFactory() { @Override protected void configureSaslLogin() throws IOException { // ZooKeeper gets confused by dCache configuring a JAAS configuration without a section for ZooKeeper, so // we disable the whole thing. Use a non-embedded ZooKeeper if you want security. } }; cnxnFactory.configure(socketAddress, maxClientConnections); this.cnxnFactory = cnxnFactory; this.cnxnFactory.startup(zkServer); // FileTxnSnapLog constructor creates dataDir and dataLogDir if they // don't already exist, but in a non-thread safe fashion. // Unfortunately, DatadirCleanupManager#start launches an asynchronous // task that runs immediately and creates a FileTxnSnapLog object. This // can creating a race between the constructor above. To avoid this, // we must call DatadirCleanupManager#start after the FileTxnSnapLog // object has been created. int purgeIntervalHours = (int) TimeUnit.HOURS.convert(autoPurgeInterval, autoPurgeIntervalUnit); DatadirCleanupManager purgeMgr = new DatadirCleanupManager(dataDir.getAbsolutePath(), dataLogDir.getAbsolutePath(), autoPurgeRetainCount, purgeIntervalHours); purgeMgr.start(); }
From source file:org.fusesource.fabric.zookeeper.bootstrap.ZooKeeperServerFactory.java
License:Apache License
private Destroyable activateInternal(BundleContext context, Map<String, ?> configuration) throws Exception { LOGGER.info("Creating zookeeper server with: {}", configuration); Properties props = new Properties(); for (Entry<String, ?> entry : configuration.entrySet()) { props.put(entry.getKey(), entry.getValue()); }/*w w w .j av a 2 s .com*/ // Remove the dependency on the current dir from dataDir String dataDir = props.getProperty("dataDir"); if (dataDir != null && dataDir.startsWith(CreateEnsembleOptions.DEFAULT_DATA_DIR)) { RuntimeProperties sysprops = runtimeProperties.get(); dataDir = dataDir.substring(dataDir.indexOf('/')); dataDir = sysprops.getProperty(SystemProperties.KARAF_DATA) + dataDir; props.setProperty("dataDir", dataDir); } // Create myid file String serverId = (String) props.get("server.id"); if (serverId != null) { props.remove("server.id"); File myId = new File(dataDir, "myid"); if (myId.exists() && !myId.delete()) { throw new IOException("Failed to delete " + myId); } if (myId.getParentFile() == null || (!myId.getParentFile().exists() && !myId.getParentFile().mkdirs())) { throw new IOException("Failed to create " + myId.getParent()); } FileOutputStream fos = new FileOutputStream(myId); try { fos.write((serverId + "\n").getBytes()); } finally { fos.close(); } } QuorumPeerConfig peerConfig = getPeerConfig(props); if (!peerConfig.getServers().isEmpty()) { NIOServerCnxnFactory cnxnFactory = new NIOServerCnxnFactory(); cnxnFactory.configure(peerConfig.getClientPortAddress(), peerConfig.getMaxClientCnxns()); QuorumPeer quorumPeer = new QuorumPeer(); quorumPeer.setClientPortAddress(peerConfig.getClientPortAddress()); quorumPeer.setTxnFactory( new FileTxnSnapLog(new File(peerConfig.getDataLogDir()), new File(peerConfig.getDataDir()))); quorumPeer.setQuorumPeers(peerConfig.getServers()); quorumPeer.setElectionType(peerConfig.getElectionAlg()); quorumPeer.setMyid(peerConfig.getServerId()); quorumPeer.setTickTime(peerConfig.getTickTime()); quorumPeer.setMinSessionTimeout(peerConfig.getMinSessionTimeout()); quorumPeer.setMaxSessionTimeout(peerConfig.getMaxSessionTimeout()); quorumPeer.setInitLimit(peerConfig.getInitLimit()); quorumPeer.setSyncLimit(peerConfig.getSyncLimit()); quorumPeer.setQuorumVerifier(peerConfig.getQuorumVerifier()); quorumPeer.setCnxnFactory(cnxnFactory); quorumPeer.setZKDatabase(new ZKDatabase(quorumPeer.getTxnFactory())); quorumPeer.setLearnerType(peerConfig.getPeerType()); try { LOGGER.debug("Starting quorum peer \"%s\" on address %s", quorumPeer.getMyid(), peerConfig.getClientPortAddress()); quorumPeer.start(); LOGGER.debug("Started quorum peer \"%s\"", quorumPeer.getMyid()); } catch (Exception e) { LOGGER.warn(String.format("Failed to start quorum peer \"%s\", reason : %s ", quorumPeer.getMyid(), e.getMessage())); quorumPeer.shutdown(); throw e; } // Register stats provider ClusteredServer server = new ClusteredServer(quorumPeer); registration = context.registerService(QuorumStats.Provider.class, server, null); return server; } else { ServerConfig serverConfig = getServerConfig(peerConfig); ZooKeeperServer zkServer = new ZooKeeperServer(); FileTxnSnapLog ftxn = new FileTxnSnapLog(new File(serverConfig.getDataLogDir()), new File(serverConfig.getDataDir())); zkServer.setTxnLogFactory(ftxn); zkServer.setTickTime(serverConfig.getTickTime()); zkServer.setMinSessionTimeout(serverConfig.getMinSessionTimeout()); zkServer.setMaxSessionTimeout(serverConfig.getMaxSessionTimeout()); NIOServerCnxnFactory cnxnFactory = new NIOServerCnxnFactory() { protected void configureSaslLogin() throws IOException { } }; cnxnFactory.configure(serverConfig.getClientPortAddress(), serverConfig.getMaxClientCnxns()); try { LOGGER.debug("Starting ZooKeeper server on address %s", peerConfig.getClientPortAddress()); cnxnFactory.startup(zkServer); LOGGER.debug("Started ZooKeeper server"); } catch (Exception e) { LOGGER.warn(String.format("Failed to start ZooKeeper server, reason : %s", e)); cnxnFactory.shutdown(); throw e; } // Register stats provider SimpleServer server = new SimpleServer(zkServer, cnxnFactory); registration = context.registerService(ServerStats.Provider.class, server, null); return server; } }