当前位置: 首页>>代码示例>>Java>>正文


Java QuorumCnxManager.halt方法代码示例

本文整理汇总了Java中org.apache.zookeeper.server.quorum.QuorumCnxManager.halt方法的典型用法代码示例。如果您正苦于以下问题:Java QuorumCnxManager.halt方法的具体用法?Java QuorumCnxManager.halt怎么用?Java QuorumCnxManager.halt使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.zookeeper.server.quorum.QuorumCnxManager的用法示例。


在下文中一共展示了QuorumCnxManager.halt方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: testSocketTimeout

import org.apache.zookeeper.server.quorum.QuorumCnxManager; //导入方法依赖的package包/类
@Test
public void testSocketTimeout() throws Exception {
    QuorumPeer peer = new QuorumPeer(peers, peerTmpdir[1], peerTmpdir[1], peerClientPort[1], 3, 1, 2000, 2, 2);
    QuorumCnxManager cnxManager = new QuorumCnxManager(peer);
    QuorumCnxManager.Listener listener = cnxManager.listener;
    if(listener != null){
        listener.start();
    } else {
        LOG.error("Null listener when initializing cnx manager");
    }
    int port = peers.get(peer.getId()).electionAddr.getPort();
    LOG.info("Election port: " + port);
    Thread.sleep(1000);

    Socket sock = new Socket();
    sock.connect(peers.get(1L).electionAddr, 5000);
    long begin = Time.currentElapsedTime();
    // Read without sending data. Verify timeout.
    cnxManager.receiveConnection(sock);
    long end = Time.currentElapsedTime();
    if((end - begin) > ((peer.getSyncLimit() * peer.getTickTime()) + 500)) Assert.fail("Waited more than necessary");
    cnxManager.halt();
    Assert.assertFalse(cnxManager.listener.isAlive());
}
 
开发者ID:didichuxing2,项目名称:https-github.com-apache-zookeeper,代码行数:25,代码来源:CnxManagerTest.java

示例2: testCnxManager

import org.apache.zookeeper.server.quorum.QuorumCnxManager; //导入方法依赖的package包/类
@Test
public void testCnxManager() throws Exception {
    CnxManagerThread thread = new CnxManagerThread();

    thread.start();

    QuorumPeer peer = new QuorumPeer(peers, peerTmpdir[1], peerTmpdir[1], peerClientPort[1], 3, 1, 1000, 2, 2);
    QuorumCnxManager cnxManager = new QuorumCnxManager(peer);
    QuorumCnxManager.Listener listener = cnxManager.listener;
    if(listener != null){
        listener.start();
    } else {
        LOG.error("Null listener when initializing cnx manager");
    }

    cnxManager.toSend(0L, createMsg(ServerState.LOOKING.ordinal(), 1, -1, 1));

    Message m = null;
    int numRetries = 1;
    while((m == null) && (numRetries++ <= THRESHOLD)){
        m = cnxManager.pollRecvQueue(3000, TimeUnit.MILLISECONDS);
        if(m == null) cnxManager.connectAll();
    }

    Assert.assertTrue("Exceeded number of retries", numRetries <= THRESHOLD);

    thread.join(5000);
    if (thread.isAlive()) {
        Assert.fail("Thread didn't join");
    } else {
        if(thread.failed)
            Assert.fail("Did not receive expected message");
    }
    cnxManager.halt();
    Assert.assertFalse(cnxManager.listener.isAlive());
}
 
开发者ID:didichuxing2,项目名称:https-github.com-apache-zookeeper,代码行数:37,代码来源:CnxManagerTest.java

示例3: testCnxManagerTimeout

import org.apache.zookeeper.server.quorum.QuorumCnxManager; //导入方法依赖的package包/类
@Test
public void testCnxManagerTimeout() throws Exception {
    Random rand = new Random();
    byte b = (byte) rand.nextInt();
    int deadPort = PortAssignment.unique();
    String deadAddress = "10.1.1." + b;

    LOG.info("This is the dead address I'm trying: " + deadAddress);

    peers.put(Long.valueOf(2),
            new QuorumServer(2,
                    new InetSocketAddress(deadAddress, deadPort),
                    new InetSocketAddress(deadAddress, PortAssignment.unique()),
                    new InetSocketAddress(deadAddress, PortAssignment.unique())));
    peerTmpdir[2] = ClientBase.createTmpDir();

    QuorumPeer peer = new QuorumPeer(peers, peerTmpdir[1], peerTmpdir[1], peerClientPort[1], 3, 1, 1000, 2, 2);
    QuorumCnxManager cnxManager = new QuorumCnxManager(peer);
    QuorumCnxManager.Listener listener = cnxManager.listener;
    if(listener != null){
        listener.start();
    } else {
        LOG.error("Null listener when initializing cnx manager");
    }

    long begin = Time.currentElapsedTime();
    cnxManager.toSend(2L, createMsg(ServerState.LOOKING.ordinal(), 1, -1, 1));
    long end = Time.currentElapsedTime();

    if((end - begin) > 6000) Assert.fail("Waited more than necessary");
    cnxManager.halt();
    Assert.assertFalse(cnxManager.listener.isAlive());
}
 
开发者ID:didichuxing2,项目名称:https-github.com-apache-zookeeper,代码行数:34,代码来源:CnxManagerTest.java

示例4: testCnxManagerSpinLock

import org.apache.zookeeper.server.quorum.QuorumCnxManager; //导入方法依赖的package包/类
/**
 * Tests a bug in QuorumCnxManager that causes a spin lock
 * when a negative value is sent. This test checks if the 
 * connection is being closed upon a message with negative
 * length.
 * 
 * @throws Exception
 */
@Test
public void testCnxManagerSpinLock() throws Exception {               
    QuorumPeer peer = new QuorumPeer(peers, peerTmpdir[1], peerTmpdir[1], peerClientPort[1], 3, 1, 1000, 2, 2);
    QuorumCnxManager cnxManager = new QuorumCnxManager(peer);
    QuorumCnxManager.Listener listener = cnxManager.listener;
    if(listener != null){
        listener.start();
    } else {
        LOG.error("Null listener when initializing cnx manager");
    }
    
    int port = peers.get(peer.getId()).electionAddr.getPort();
    LOG.info("Election port: " + port);
    InetSocketAddress addr = new InetSocketAddress(port);
    
    Thread.sleep(1000);
    
    SocketChannel sc = SocketChannel.open();
    sc.socket().connect(peers.get(new Long(1)).electionAddr, 5000);
    
    /*
     * Write id first then negative length.
     */
    byte[] msgBytes = new byte[8];
    ByteBuffer msgBuffer = ByteBuffer.wrap(msgBytes);
    msgBuffer.putLong(new Long(2));
    msgBuffer.position(0);
    sc.write(msgBuffer);
    
    msgBuffer = ByteBuffer.wrap(new byte[4]);
    msgBuffer.putInt(-20);
    msgBuffer.position(0);
    sc.write(msgBuffer);
    
    Thread.sleep(1000);
    
    try{
        /*
         * Write a number of times until it
         * detects that the socket is broken.
         */
        for(int i = 0; i < 100; i++){
            msgBuffer.position(0);
            sc.write(msgBuffer);
        }
        Assert.fail("Socket has not been closed");
    } catch (Exception e) {
        LOG.info("Socket has been closed as expected");
    }
    peer.shutdown();
    cnxManager.halt();
}
 
开发者ID:maoling,项目名称:fuck_zookeeper,代码行数:61,代码来源:CnxManagerTest.java

示例5: testCnxManagerSpinLock

import org.apache.zookeeper.server.quorum.QuorumCnxManager; //导入方法依赖的package包/类
/**
 * Tests a bug in QuorumCnxManager that causes a spin lock
 * when a negative value is sent. This test checks if the
 * connection is being closed upon a message with negative
 * length.
 *
 * @throws Exception
 */
@Test
public void testCnxManagerSpinLock() throws Exception {
    QuorumPeer peer = new QuorumPeer(peers, peerTmpdir[1], peerTmpdir[1], peerClientPort[1], 3, 1, 1000, 2, 2);
    QuorumCnxManager cnxManager = new QuorumCnxManager(peer);
    QuorumCnxManager.Listener listener = cnxManager.listener;
    if(listener != null){
        listener.start();
    } else {
        LOG.error("Null listener when initializing cnx manager");
    }

    int port = peers.get(peer.getId()).electionAddr.getPort();
    LOG.info("Election port: " + port);

    Thread.sleep(1000);

    SocketChannel sc = SocketChannel.open();
    sc.socket().connect(peers.get(1L).electionAddr, 5000);

    InetSocketAddress otherAddr = peers.get(new Long(2)).electionAddr;
    DataOutputStream dout = new DataOutputStream(sc.socket().getOutputStream());
    dout.writeLong(QuorumCnxManager.PROTOCOL_VERSION);
    dout.writeLong(new Long(2));
    String addr = otherAddr.getHostString()+ ":" + otherAddr.getPort();
    byte[] addr_bytes = addr.getBytes();
    dout.writeInt(addr_bytes.length);
    dout.write(addr_bytes);
    dout.flush();
    

    ByteBuffer msgBuffer = ByteBuffer.wrap(new byte[4]);
    msgBuffer.putInt(-20);
    msgBuffer.position(0);
    sc.write(msgBuffer);

    Thread.sleep(1000);

    try{
        /*
         * Write a number of times until it
         * detects that the socket is broken.
         */
        for(int i = 0; i < 100; i++){
            msgBuffer.position(0);
            sc.write(msgBuffer);
        }
        Assert.fail("Socket has not been closed");
    } catch (Exception e) {
        LOG.info("Socket has been closed as expected");
    }
    peer.shutdown();
    cnxManager.halt();
    Assert.assertFalse(cnxManager.listener.isAlive());
}
 
开发者ID:didichuxing2,项目名称:https-github.com-apache-zookeeper,代码行数:63,代码来源:CnxManagerTest.java

示例6: testCnxManagerNPE

import org.apache.zookeeper.server.quorum.QuorumCnxManager; //导入方法依赖的package包/类
/**
 * Tests a bug in QuorumCnxManager that causes a NPE when a 3.4.6
 * observer connects to a 3.5.0 server. 
 * {@link https://issues.apache.org/jira/browse/ZOOKEEPER-1789}
 * 
 * @throws Exception
 */
@Test
public void testCnxManagerNPE() throws Exception {
    // the connecting peer (id = 2) is a 3.4.6 observer
    peers.get(2L).type = LearnerType.OBSERVER;
    QuorumPeer peer = new QuorumPeer(peers, peerTmpdir[1], peerTmpdir[1],
            peerClientPort[1], 3, 1, 1000, 2, 2);
    QuorumCnxManager cnxManager = new QuorumCnxManager(peer);
    QuorumCnxManager.Listener listener = cnxManager.listener;
    if (listener != null) {
        listener.start();
    } else {
        LOG.error("Null listener when initializing cnx manager");
    }
    int port = peers.get(peer.getId()).electionAddr.getPort();
    LOG.info("Election port: " + port);

    Thread.sleep(1000);

    SocketChannel sc = SocketChannel.open();
    sc.socket().connect(peers.get(1L).electionAddr, 5000);

    /*
     * Write id (3.4.6 protocol). This previously caused a NPE in
     * QuorumCnxManager.
     */
    byte[] msgBytes = new byte[8];
    ByteBuffer msgBuffer = ByteBuffer.wrap(msgBytes);
    msgBuffer.putLong(2L);
    msgBuffer.position(0);
    sc.write(msgBuffer);

    msgBuffer = ByteBuffer.wrap(new byte[8]);
    // write length of message
    msgBuffer.putInt(4);
    // write message
    msgBuffer.putInt(5);
    msgBuffer.position(0);
    sc.write(msgBuffer);

    Message m = cnxManager.pollRecvQueue(1000, TimeUnit.MILLISECONDS);
    Assert.assertNotNull(m);

    peer.shutdown();
    cnxManager.halt();
    Assert.assertFalse(cnxManager.listener.isAlive());
}
 
开发者ID:didichuxing2,项目名称:https-github.com-apache-zookeeper,代码行数:54,代码来源:CnxManagerTest.java

示例7: testCnxManagerSpinLock

import org.apache.zookeeper.server.quorum.QuorumCnxManager; //导入方法依赖的package包/类
/**
 * Tests a bug in QuorumCnxManager that causes a spin lock
 * when a negative value is sent. This test checks if the 
 * connection is being closed upon a message with negative
 * length.
 * 
 * @throws Exception
 */
@Test
public void testCnxManagerSpinLock() throws Exception {               
    QuorumPeer peer = new QuorumPeer(peers, peerTmpdir[1], peerTmpdir[1], peerClientPort[1], 3, 1, 1000, 2, 2);
    QuorumCnxManager cnxManager = peer.createCnxnManager();
    QuorumCnxManager.Listener listener = cnxManager.listener;
    if(listener != null){
        listener.start();
    } else {
        LOG.error("Null listener when initializing cnx manager");
    }
    
    int port = peers.get(peer.getId()).electionAddr.getPort();
    LOG.info("Election port: " + port);
    InetSocketAddress addr = new InetSocketAddress(port);
    
    Thread.sleep(1000);
    
    SocketChannel sc = SocketChannel.open();
    sc.socket().connect(peers.get(new Long(1)).electionAddr, 5000);
    
    /*
     * Write id first then negative length.
     */
    byte[] msgBytes = new byte[8];
    ByteBuffer msgBuffer = ByteBuffer.wrap(msgBytes);
    msgBuffer.putLong(new Long(2));
    msgBuffer.position(0);
    sc.write(msgBuffer);
    
    msgBuffer = ByteBuffer.wrap(new byte[4]);
    msgBuffer.putInt(-20);
    msgBuffer.position(0);
    sc.write(msgBuffer);
    
    Thread.sleep(1000);
    
    try{
        /*
         * Write a number of times until it
         * detects that the socket is broken.
         */
        for(int i = 0; i < 100; i++){
            msgBuffer.position(0);
            sc.write(msgBuffer);
        }
        Assert.fail("Socket has not been closed");
    } catch (Exception e) {
        LOG.info("Socket has been closed as expected");
    }
    peer.shutdown();
    cnxManager.halt();
}
 
开发者ID:l294265421,项目名称:ZooKeeper,代码行数:61,代码来源:CnxManagerTest.java

示例8: testCnxManagerSpinLock

import org.apache.zookeeper.server.quorum.QuorumCnxManager; //导入方法依赖的package包/类
/**
 * Tests a bug in QuorumCnxManager that causes a spin lock
 * when a negative value is sent. This test checks if the 
 * connection is being closed upon a message with negative
 * length.
 * 
 * @throws Exception
 */
@Test
public void testCnxManagerSpinLock() throws Exception {               
    QuorumPeer peer = new QuorumPeer(peers, peerTmpdir[1], peerTmpdir[1], peerClientPort[1], 3, 1, 2, 2, 2);
    QuorumCnxManager cnxManager = new QuorumCnxManager(peer);
    QuorumCnxManager.Listener listener = cnxManager.listener;
    if(listener != null){
        listener.start();
    } else {
        LOG.error("Null listener when initializing cnx manager");
    }
    
    int port = peers.get(peer.getId()).electionAddr.getPort();
    LOG.info("Election port: " + port);
    InetSocketAddress addr = new InetSocketAddress(port);
    
    Thread.sleep(1000);
    
    SocketChannel sc = SocketChannel.open();
    sc.socket().connect(peers.get(new Long(1)).electionAddr, 5000);
    
    /*
     * Write id first then negative length.
     */
    byte[] msgBytes = new byte[8];
    ByteBuffer msgBuffer = ByteBuffer.wrap(msgBytes);
    msgBuffer.putLong(new Long(2));
    msgBuffer.position(0);
    sc.write(msgBuffer);
    
    msgBuffer = ByteBuffer.wrap(new byte[4]);
    msgBuffer.putInt(-20);
    msgBuffer.position(0);
    sc.write(msgBuffer);
    
    Thread.sleep(1000);
    
    try{
        /*
         * Write a number of times until it
         * detects that the socket is broken.
         */
        for(int i = 0; i < 100; i++){
            msgBuffer.position(0);
            sc.write(msgBuffer);
        }
        Assert.fail("Socket has not been closed");
    } catch (Exception e) {
        LOG.info("Socket has been closed as expected");
    }
    peer.shutdown();
    cnxManager.halt();
}
 
开发者ID:gerritjvv,项目名称:bigstreams,代码行数:61,代码来源:CnxManagerTest.java

示例9: testCnxManagerSpinLock

import org.apache.zookeeper.server.quorum.QuorumCnxManager; //导入方法依赖的package包/类
/**
 * Tests a bug in QuorumCnxManager that causes a spin lock
 * when a negative value is sent. This test checks if the 
 * connection is being closed upon a message with negative
 * length.
 * 
 * @throws Exception
 */
@Test
public void testCnxManagerSpinLock() throws Exception {               
    QuorumPeer peer = new QuorumPeer(peers, peerTmpdir[1], peerTmpdir[1], peerClientPort[1], 3, 1, 1000, 2, 2);
    QuorumCnxManager cnxManager = new QuorumCnxManager(peer);
    QuorumCnxManager.Listener listener = cnxManager.listener;
    if(listener != null){
        listener.start();
    } else {
        LOG.error("Null listener when initializing cnx manager");
    }
    
    int port = peers.get(peer.getId()).electionAddr.getPort();
    LOG.info("Election port: " + port);
    InetSocketAddress addr = new InetSocketAddress(port);
    
    Thread.sleep(1000);
    
    SocketChannel sc = SocketChannel.open();
    sc.socket().connect(peers.get(new Long(1)).electionAddr, 5000);
    
    /*
     * Write id first then negative length.
     */
    byte[] msgBytes = new byte[8];
    ByteBuffer msgBuffer = ByteBuffer.wrap(msgBytes);
    msgBuffer.putLong(new Long(2));
    msgBuffer.position(0);
    sc.write(msgBuffer);
    
    msgBuffer = ByteBuffer.wrap(new byte[4]);
    msgBuffer.putInt(-20);
    msgBuffer.position(0);
    sc.write(msgBuffer);
    
    Thread.sleep(1000);
    
    try{
        /*
         * Write a number of times until it
         * detects that the socket is broken.
         */
        for(int i = 0; i < 100; i++){
            msgBuffer.position(0);
            sc.write(msgBuffer);
        }
        fail("Socket has not been closed");
    } catch (Exception e) {
        LOG.info("Socket has been closed as expected");
    }
    peer.shutdown();
    cnxManager.halt();
}
 
开发者ID:prodigeni,项目名称:zookeeper.dsc,代码行数:61,代码来源:CnxManagerTest.java


注:本文中的org.apache.zookeeper.server.quorum.QuorumCnxManager.halt方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。