Package org.jboss.test.messaging.tools.container

Examples of org.jboss.test.messaging.tools.container.Server


      {
         log.info("server " + i + " has not been created or has already been killed, so it cannot be killed");
      }
      else
      {
         Server server = servers[i].getServer();
         log.info("invoking kill() on server " + i);
         try
         {
           server.kill();
         }
         catch (Throwable t)
         {
           // This is likely to throw an exception since the server dies before the response is received
         }        
         servers[i] = null;
        
         log.info("Waiting for server to die");
        
         try
         {
            while(true)
            {
               server.ping();
               log.debug("server " + i + " still alive ...");
               Thread.sleep(100);
            }
         }
         catch (Throwable e)
View Full Code Here


      for(int i = 0; i < servers.length; i++)
      {
         if (servers[i] != null && servers[i].isSpawned())
         {
            Server s = servers[i].getServer();
            destroyed.add(new Integer(s.getServerID()));
           
            log.info("Killing spawned server " + i);

            try
            {
              s.kill();
            }
            catch (Throwable t)
            {             
            }
            servers[i] = null;
View Full Code Here

      // put the invoking thread on wait until the server is actually up and running and bound
      // in the RMI registry

      log.info("spawned server " + i + ", waiting for it to come online");

      Server s = acquireRemote(500, i, true);
     
      log.info("Server contacted");

      if (s == null)
      {
View Full Code Here

    *         server after use.
    */
   public static Server poisonTheServer(int serverIndex, int type) throws Exception
   {
      insureStarted(serverIndex);
      Server poisoned = servers[serverIndex].getServer();

      //We set the server to null so it can be recreated again, but ONLY for those poisons that cause the server to get killed
      //We do not do this for other poisons that don't
     
      if (type != PoisonInterceptor.LONG_SEND && type != PoisonInterceptor.NULL)
      {
        servers[serverIndex] = null;
      }
     
      poisoned.poisonTheServer(type);

      return poisoned;
   }
View Full Code Here

   {
      String name =
         "//localhost:" + RMITestServer.DEFAULT_REGISTRY_PORT + "/" +
         RMITestServer.RMI_SERVER_PREFIX + index;

      Server s = null;
      int retries = initialRetries;

      while (s == null && retries > 0)
      {
         int attempt = initialRetries - retries + 1;
View Full Code Here

    * cleaned-up.
    */
   public void testClientCrash() throws Exception
   {   
      ServerManagement.create(2);
      Server remoteServer = ServerManagement.getServer(2);

      // We need to make sure that any previously downloaded CF should be released
      WeakReference ref = new WeakReference(ic[0].lookup("/ClusteredConnectionFactory"));
      int count=0;
      while (ref.get() != null)
      {
         System.gc();
         Thread.sleep(1000);
         if ((count++>10) && ref.get() != null)
         {
            fail("Thre is a leak on ClusteredConnectionFactory");
         }
      }
      
      ClientClusteredConnectionFactoryDelegate cfDelegate =  (ClientClusteredConnectionFactoryDelegate)cf.getDelegate();

      cfDelegate.closeCallback();

      ClusterClientCrash command = new ClusterClientCrash(cf);

      assertEquals("OK", remoteServer.executeCommand(command));

      assertEquals(new Integer(1),ServerManagement.getServer(1).executeCommand(new VerifySizeOfCFClients(cfDelegate.getUniqueName())));

      ServerManagement.kill(2);
      Thread.sleep((long)(60000));
View Full Code Here

    * cleaned-up.
    */
   public void testClientCrash() throws Exception
   {   
      ServerManagement.create(2);
      Server remoteServer = ServerManagement.getServer(2);

      // Make sure any previously downloadeded CF is released
      WeakReference ref = new WeakReference(ic[0].lookup("/ClusteredConnectionFactory"));
      int count=0;
      while (ref.get() != null)
      {
         // put some garbage on the memory
         for (int i=0; i<50000 ; i++)
         {
            String str = "Garbage " + i;
         }
         System.gc();
         Thread.sleep(1000);
         if ((count++>10) && ref.get() != null)
         {
            fail("Thre is a leak on ClusteredConnectionFactory");
         }
      }
      
      ClientClusteredConnectionFactoryDelegate cfDelegate =  (ClientClusteredConnectionFactoryDelegate)cf.getDelegate();

      log.info("(Before)Server0 - " + getCountOnServer(0, cfDelegate.getUniqueName()));
      log.info("(Before)Server1 - " + getCountOnServer(1, cfDelegate.getUniqueName()));
     
      assertEquals(1, getCountOnServer(0, cfDelegate.getUniqueName()));
      assertEquals(1, getCountOnServer(1, cfDelegate.getUniqueName()));
     
      cfDelegate.closeCallback();
     
      // Validates if closeCallback is working

      assertEquals(0, getCountOnServer(0, cfDelegate.getUniqueName()));
      assertEquals(0, getCountOnServer(1, cfDelegate.getUniqueName()));
     
      ClusterClientCrash command = new ClusterClientCrash(cf);

      assertEquals("OK", remoteServer.executeCommand(command));
     
     

      assertEquals(new Integer(1),ServerManagement.getServer(1).executeCommand(new VerifySizeOfCFClients(cfDelegate.getUniqueName())));

View Full Code Here

      try
      {       
        for (int i = 0; i < ServerManagement.MAX_SERVER_COUNT; i++)
        {
          Server server = ServerManagement.getServer(i);
         
          if (server != null)
          {
            oldTimeout = ((Long)server.getAttribute(ServerManagement.getServerPeerObjectName(), "RecoverDeliveriesTimeout")).longValue();
            server.setAttribute(ServerManagement.getServerPeerObjectName(), "RecoverDeliveriesTimeout", String.valueOf(timeout));                              
          }
        }
       
        ServerManagement.deployQueue("timeoutQueue", 0);
        ServerManagement.deployQueue("timeoutQueue", 1);
        ServerManagement.deployQueue("timeoutQueue", 2);
       
        Queue timeoutQueue = (Queue)ic[1].lookup("/queue/timeoutQueue");
       
         Session sessSend = conn1.createSession(false, Session.AUTO_ACKNOWLEDGE);
         
        MessageProducer prod1 = sessSend.createProducer(timeoutQueue);
       
        final int numMessages = 10;
       
        for (int i = 0; i < numMessages; i++)
        {
          TextMessage tm = sessSend.createTextMessage("message" + i);
         
          prod1.send(tm);         
        }
       
        Session sess1 = conn1.createSession(false, Session.CLIENT_ACKNOWLEDGE);
       
        MessageConsumer cons1 = sess1.createConsumer(timeoutQueue);
     
       
        conn1.start();
       
        TextMessage tm = null;
       
        for (int i = 0; i < numMessages; i++)
        {
          tm = (TextMessage)cons1.receive(2000);
         
          assertNotNull(tm);
         
          assertEquals("message" + i, tm.getText());
        }
         
        int failoverNodeId = this.getFailoverNodeForNode(cf, 1);
       
        int recoveryMapSize = ServerManagement.getServer(failoverNodeId).getRecoveryMapSize(timeoutQueue.getQueueName());
        assertEquals(0, recoveryMapSize);
        Map recoveryArea = ServerManagement.getServer(failoverNodeId).getRecoveryArea(timeoutQueue.getQueueName());
        Map ids = (Map)recoveryArea.get(new Integer(1));
        assertNotNull(ids);
        assertEquals(numMessages, ids.size());
       
        //First turn OFF failover on the connection factory
       
        ServerManagement.kill(1);

         log.info("########");
         log.info("######## KILLED NODE 1");
         log.info("########");
        
         //Failover won't occur on the client
        
         //Let's give it enough time to happen on the server
        
         Thread.sleep(10000);
        
         recoveryMapSize = ServerManagement.getServer(failoverNodeId).getRecoveryMapSize(timeoutQueue.getQueueName());
        assertEquals(numMessages, recoveryMapSize);
        recoveryArea = ServerManagement.getServer(failoverNodeId).getRecoveryArea(timeoutQueue.getQueueName());
        ids = (Map)recoveryArea.get(new Integer(1));
        assertNull(ids);
        //Now we wait for the timeout period
       
        log.info("Waiting for timeout");
        Thread.sleep(timeout + 1000);
        log.info("Waited");
       
        recoveryMapSize = ServerManagement.getServer(failoverNodeId).getRecoveryMapSize(timeoutQueue.getQueueName());
        assertEquals(0, recoveryMapSize);
        recoveryArea = ServerManagement.getServer(failoverNodeId).getRecoveryArea(timeoutQueue.getQueueName());
        ids = (Map)recoveryArea.get(new Integer(1));
        assertNull(ids);
       
        //Now we should be able to consume the refs again
       
        conn1.close();
       
        log.info("Creating connection");
       
        conn2 = createConnectionOnServer(cf, failoverNodeId);
                    
         Session sess2 = conn2.createSession(false, Session.AUTO_ACKNOWLEDGE);
        
         MessageConsumer cons2 = sess2.createConsumer(timeoutQueue);
               
         conn2.start();
        
         Set msgs = new HashSet();
         for (int i = 0; i < numMessages; i++)
         {
           tm = (TextMessage)cons2.receive(2000);
          
           assertNotNull(tm);
          
           log.info("Got message:" + tm.getText());
          
           msgs.add(tm.getText());
         }
        
         for (int i = 0; i < numMessages; i++)
         {
           assertTrue(msgs.contains("message" + i));
         }
        
         tm = (TextMessage)cons2.receive(5000);
        
         assertNull(tm);
       
      }
      finally
      {
         if (conn1 != null)
         {
            conn1.close();
         }
        
         if (conn2 != null)
         {
            conn2.close();
         }
        
         ((ClientClusteredConnectionFactoryDelegate)cf.getDelegate()).setSupportsFailover(true);
        
         for (int i = 0; i < ServerManagement.MAX_SERVER_COUNT; i++)
        {
          Server server = ServerManagement.getServer(i);
         
          if (server != null)
          {
            server.setAttribute(ServerManagement.getServerPeerObjectName(), "RecoverDeliveriesTimeout", String.valueOf(oldTimeout));                              
          }
        }
      }
   }
View Full Code Here

    * cleaned-up.
    */
   public void testClientCrash() throws Exception
   {   
      ServerManagement.create(2);
      Server remoteServer = ServerManagement.getServer(2);

      // Make sure any previously downloadeded CF is released
      WeakReference ref = new WeakReference(ic[0].lookup("/ClusteredConnectionFactory"));
      int count=0;
      while (ref.get() != null)
      {
         // put some garbage on the memory
         for (int i=0; i<50000 ; i++)
         {
            String str = "Garbage " + i;
         }
         System.gc();
         Thread.sleep(1000);
         if ((count++>10) && ref.get() != null)
         {
            fail("Thre is a leak on ClusteredConnectionFactory");
         }
      }
      
      ClientClusteredConnectionFactoryDelegate cfDelegate =  (ClientClusteredConnectionFactoryDelegate)cf.getDelegate();

      log.info("(Before)Server0 - " + getCountOnServer(0, cfDelegate.getUniqueName()));
      log.info("(Before)Server1 - " + getCountOnServer(1, cfDelegate.getUniqueName()));
     
      assertEquals(1, getCountOnServer(0, cfDelegate.getUniqueName()));
      assertEquals(1, getCountOnServer(1, cfDelegate.getUniqueName()));
     
      cfDelegate.closeCallback(false);
     
      // Validates if closeCallback is working

      assertEquals(0, getCountOnServer(0, cfDelegate.getUniqueName()));
      assertEquals(0, getCountOnServer(1, cfDelegate.getUniqueName()));
     
      ClusterClientCrash command = new ClusterClientCrash(cf);

      assertEquals("OK", remoteServer.executeCommand(command));
     
     

      assertEquals(new Integer(1),ServerManagement.getServer(1).executeCommand(new VerifySizeOfCFClients(cfDelegate.getUniqueName())));

View Full Code Here

                            boolean clearDatabase,
                            boolean startMessagingServer) throws Exception
   {
      log.info("Attempting to start server " + i);

      Server s = create(i);

      s.start(config, attrOverrides, clearDatabase, startMessagingServer);

      log.info("server " + i + " started");
   }
View Full Code Here

TOP

Related Classes of org.jboss.test.messaging.tools.container.Server

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.