Package org.jboss.jms.server.bridge

Examples of org.jboss.jms.server.bridge.Bridge$SourceListener


    * Send some more messages
    * Verify all messages are received
    */
   public void testCrashAndReconnectDestCrashOnCommit() throws Exception
   {
      Bridge bridge = null;
           
      try
      {
         final int NUM_MESSAGES = 10;        
        
         bridge = new Bridge(cff0, cff1, sourceQueueFactory, targetQueueFactory,
                  null, null, null, null,
                  null, 1000, -1, Bridge.QOS_ONCE_AND_ONLY_ONCE,
                  NUM_MESSAGES, -1,
                  null, null, false);
        
         bridge.start();
        
         //Poison server 1 so it crashes on commit of dest but after prepare
        
         //This means the transaction branch on source will get commmitted
         //but the branch on dest won't be - it will remain prepared
         //This corresponds to a HeuristicMixedException
        
         ServerManagement.poisonTheServer(1, PoisonInterceptor.TYPE_2PC_COMMIT);
        
         log.info("Poisoned server");
        
         //Send some messages
        
         sendMessages(cf0, sourceQueue, 0, NUM_MESSAGES, true);
             
         //Restart the server
        
         //Wait a bit for the batch to be sent - this should cause the server to crash on commit
        
         Thread.sleep(3000);
        
         log.info("Restarting server");
                 
         ServerManagement.start(1, "all", false);
        
         log.info("Restarted server");   
        
         ServerManagement.deployQueue("targetQueue", 1);
                 
         this.setUpAdministeredObjects();
                       
         log.info("Deployed queue");
        
         log.info("*** waiting for recovery");
            
         //There may be a long wait for the first time (need to let recovery kick in)
         checkMessagesReceived(cf1, targetQueue, Bridge.QOS_ONCE_AND_ONLY_ONCE, NUM_MESSAGES, true);
      }
      finally
      {     
         if (bridge != null)
         {
            try
            {
               bridge.stop();
            }
            catch (Exception e)
            {
               log.error("Failed to stop bridge", e);
            }
View Full Code Here


   public void testRetryConnectionOnStartup() throws Exception
   {
      ServerManagement.kill(1);

      Bridge bridge = new Bridge(cff0, cff1, sourceQueueFactory, targetQueueFactory,
            null, null, null, null,
            null, 1000, -1, Bridge.QOS_DUPLICATES_OK,
            10, -1,
            null, null, false);
     
      try
      {
         bridge.start();
         assertFalse(bridge.isStarted());
         assertTrue(bridge.isFailed());

         ServerManagement.start(1, "all", false);
         ServerManagement.deployQueue("targetQueue", 1);        
         setUpAdministeredObjects();
        
         Thread.sleep(3000);
        
         assertTrue(bridge.isStarted());
         assertFalse(bridge.isFailed());
      }
      finally
      {
         try
         {
            bridge.stop();
         }
         catch (Exception e)
         {
            log.error("Failed to stop bridge", e);
         }
View Full Code Here

    * Send some more messages
    * Verify all messages are received
    */
   private void testCrashAndReconnectDestBasic(int qosMode, boolean persistent) throws Exception
   {
      Bridge bridge = null;
        
      try
      {  
         bridge = new Bridge(cff0, cff1, sourceQueueFactory, targetQueueFactory,
                  null, null, null, null,
                  null, 1000, -1, qosMode,
                  10, -1,
                  null, null, false);
        
         bridge.start();
           
         final int NUM_MESSAGES = 10;
        
         //Send some messages
        
         sendMessages(cf0, sourceQueue, 0, NUM_MESSAGES / 2 , persistent);
        
         //Verify none are received
        
         checkEmpty(targetQueue, 1);
        
         //Now crash the dest server
        
         log.info("About to crash server");
        
         ServerManagement.kill(1);
        
         //Wait a while before starting up to simulate the dest being down for a while
         log.info("Waiting 5 secs before bringing server back up");
         Thread.sleep(5000);
         log.info("Done wait");
        
         //Restart the server
        
         log.info("Restarting server");
        
         ServerManagement.start(1, "all", false);
        
         ServerManagement.deployQueue("targetQueue", 1);
        
         setUpAdministeredObjects();
        
         //Send some more messages
        
         log.info("Sending more messages");
        
         sendMessages(cf0, sourceQueue, NUM_MESSAGES / 2, NUM_MESSAGES / 2, persistent);
        
         log.info("Sent messages");
        
         checkMessagesReceived(cf1, targetQueue, qosMode, NUM_MESSAGES, false);                 
      }
      finally
      {     

         if (bridge != null)
         {
            try
            {
               bridge.stop();
            }
            catch (Exception e)
            {
               log.error("Failed to stop bridge", e);
            }
View Full Code Here

    * Send some more messages
    * Verify all messages are received
    */
   private void testCrashAndReconnectDestCrashBeforePrepare(boolean persistent) throws Exception
   {  
      Bridge bridge = null;
           
      try
      {
         bridge = new Bridge(cff0, cff1, sourceQueueFactory, targetQueueFactory,
                  null, null, null, null,
                  null, 1000, -1, Bridge.QOS_ONCE_AND_ONLY_ONCE,
                  10, 5000,
                  null, null, false);
        
         bridge.start();
        
         final int NUM_MESSAGES = 10;           
         //Send some messages
        
         this.sendMessages(cf0, sourceQueue, 0, NUM_MESSAGES / 2, persistent);
                 
         //verify none are received
        
         checkEmpty(targetQueue, 1);
                 
         //Now crash the dest server
        
         log.info("About to crash server");
        
         ServerManagement.kill(1);
        
         //Wait a while before starting up to simulate the dest being down for a while
         log.info("Waiting 5 secs before bringing server back up");
         Thread.sleep(5000);
         log.info("Done wait");
        
         //Restart the server
        
         ServerManagement.start(1, "all", false);
        
         ServerManagement.deployQueue("targetQueue", 1);
        
         setUpAdministeredObjects();
        
         sendMessages(cf0, sourceQueue, NUM_MESSAGES / 2, NUM_MESSAGES / 2, persistent);
                          
         checkMessagesReceived(cf1, targetQueue, Bridge.QOS_ONCE_AND_ONLY_ONCE, NUM_MESSAGES, false);        
      }
      finally
      {     
                
         if (bridge != null)
         {
            try
            {
               bridge.stop();
            }
            catch (Exception e)
            {
               log.error("Failed to stop bridge", e);
            }
View Full Code Here

      testStressSameServer(Bridge.QOS_ONCE_AND_ONLY_ONCE, false, 1);
   }
  
   public void testParams() throws Exception
   {
      Bridge bridge = null;
     
      try
      {              
         int qosMode = Bridge.QOS_AT_MOST_ONCE;
        
         int batchSize = 10;
        
         int maxBatchTime = -1;
        
         String sourceUsername = null;
        
         String sourcePassword = null;
        
         String destUsername = null;
        
         String destPassword = null;
        
         String selector = null;
        
         long failureRetryInterval = 5000;
        
         int maxRetries = 10;
        
         String subName = null;
        
         String clientID = null;
        
         try
         {
            bridge= new Bridge(null, cff1, sourceQueueFactory, targetQueueFactory,
                               sourceUsername, sourcePassword, destUsername, destPassword,
                               selector, failureRetryInterval, maxRetries, qosMode,
                               batchSize, maxBatchTime,
                               subName, clientID, false);
         }
         catch (IllegalArgumentException e)
         {
            //Ok
         }
        
         try
         {
            bridge= new Bridge(cff0, null, sourceQueueFactory, targetQueueFactory,
                               sourceUsername, sourcePassword, destUsername, destPassword,
                               selector, failureRetryInterval, maxRetries, qosMode,
                               batchSize, maxBatchTime,
                               subName, clientID, false);
         }
         catch (IllegalArgumentException e)
         {
            //Ok
         }
        
         try
         {
            bridge= new Bridge(cff0, cff1, null, targetQueueFactory,
                               sourceUsername, sourcePassword, destUsername, destPassword,
                               selector, failureRetryInterval, maxRetries, qosMode,
                               batchSize, maxBatchTime,
                               subName, clientID, false);
         }
         catch (IllegalArgumentException e)
         {
            //Ok
         }
        
         try
         {
            bridge= new Bridge(cff0, cff1, sourceQueueFactory, null,
                               sourceUsername, sourcePassword, destUsername, destPassword,
                               selector, failureRetryInterval, maxRetries, qosMode,
                               batchSize, maxBatchTime,
                               subName, clientID, false);
         }
         catch (IllegalArgumentException e)
         {
            //Ok
         }
        
         try
         {
            bridge= new Bridge(cff0, cff1, sourceQueueFactory, targetQueueFactory,
                               sourceUsername, sourcePassword, destUsername, destPassword,
                               selector, -2, maxRetries, qosMode,
                               batchSize, maxBatchTime,
                               subName, clientID, false);
         }
         catch (IllegalArgumentException e)
         {
            //Ok
         }
        
         try
         {
            bridge= new Bridge(cff0, cff1, sourceQueueFactory, targetQueueFactory,
                               sourceUsername, sourcePassword, destUsername, destPassword,
                               selector, -1, 10, qosMode,
                               batchSize, maxBatchTime,
                               subName, clientID, false);
         }
         catch (IllegalArgumentException e)
         {
            //Ok
         }
        
         try
         {
            bridge= new Bridge(cff0, cff1, sourceQueueFactory, null,
                               sourceUsername, sourcePassword, destUsername, destPassword,
                               selector, failureRetryInterval, maxRetries, -2,
                               batchSize, maxBatchTime,
                               subName, clientID, false);
         }
         catch (IllegalArgumentException e)
         {
            //Ok
         }
        
         try
         {
            bridge= new Bridge(cff0, cff1, sourceQueueFactory, null,
                               sourceUsername, sourcePassword, destUsername, destPassword,
                               selector, failureRetryInterval, maxRetries, 3,
                               batchSize, maxBatchTime,
                               subName, clientID, false);
         }
         catch (IllegalArgumentException e)
         {
            //Ok
         }
        
         try
         {
            bridge= new Bridge(cff0, cff1, sourceQueueFactory, null,
                               sourceUsername, sourcePassword, destUsername, destPassword,
                               selector, failureRetryInterval, maxRetries, 3,
                               0, maxBatchTime,
                               subName, clientID, false);
         }
         catch (IllegalArgumentException e)
         {
            //Ok
         }
        
         try
         {
            bridge= new Bridge(cff0, cff1, sourceQueueFactory, null,
                               sourceUsername, sourcePassword, destUsername, destPassword,
                               selector, failureRetryInterval, maxRetries, 3,
                               batchSize, -2,
                               subName, clientID, false);
         }
         catch (IllegalArgumentException e)
         {
            //Ok
         }
      }
      finally
      {                     
         if (bridge != null)
         {
            bridge.stop();
         }
      }        
   }
View Full Code Here

      }        
   }
  
   public void testSelector() throws Exception
   {     
      Bridge bridge = null;
     
      Connection connSource = null;
     
      Connection connTarget = null;
           
      try
      {
         final int NUM_MESSAGES = 10;
        
         String selector = "vegetable='radish'";
        
         bridge = new Bridge(cff0, cff1, sourceQueueFactory, targetQueueFactory,
                  null, null, null, null,
                  selector, 5000, 10, Bridge.QOS_AT_MOST_ONCE,
                  1, -1,
                  null, null, false);
        
         bridge.start();
           
         connSource = cf0.createConnection();
        
         Session sessSend = connSource.createSession(false, Session.AUTO_ACKNOWLEDGE);
        
         MessageProducer prod = sessSend.createProducer(sourceQueue);
        
         for (int i = 0; i < NUM_MESSAGES; i++)
         {
            TextMessage tm = sessSend.createTextMessage("message" + i);
           
            if (i >= NUM_MESSAGES / 2)
            {
               tm.setStringProperty("vegetable", "radish");
            }
            else
            {
               tm.setStringProperty("vegetable", "cauliflower");
            }
           
            prod.send(tm);
         }
        
         connTarget = cf1.createConnection();
        
         Session sessRec = connTarget.createSession(false, Session.AUTO_ACKNOWLEDGE);
        
         MessageConsumer cons = sessRec.createConsumer(targetQueue);
        
         connTarget.start();
                                
         for (int i = NUM_MESSAGES / 2 ; i < NUM_MESSAGES; i++)
         {
            TextMessage tm = (TextMessage)cons.receive(1000);
           
            assertNotNull(tm);
           
            assertEquals("message" + i, tm.getText());
         }
        
         Message m = cons.receive(1000);
        
         assertNull(m);
                      
      }
      finally
      {     
         if (connSource != null)
         {
            connSource.close();
         }
        
         if (connTarget != null)
         {
            connTarget.close();
         }
        
         if (bridge != null)
         {
            bridge.stop();
         }
        
         removeAllMessages(sourceQueue.getQueueName(), true, 0);
      }                 
   }
View Full Code Here

      }                 
   }
  
   public void testStartBridgeWithJTATransactionAlreadyRunning() throws Exception
  
      Bridge bridge = null;
     
      Transaction toResume = null;
     
      Transaction started = null;
     
      TransactionManager mgr = TransactionManagerLocator.getInstance().locate();
                 
      try
      {
        
         toResume = mgr.suspend();
        
         mgr.begin();
        
         started = mgr.getTransaction();        
          
         final int NUM_MESSAGES = 10;
        
         bridge = new Bridge(cff0, cff1, sourceTopicFactory, targetQueueFactory,
                  null, null, null, null,
                  null, 5000, 10, Bridge.QOS_AT_MOST_ONCE,
                  1, -1,
                  null, null, false);
        
         bridge.start();
        
         this.sendMessages(cf0, sourceTopic, 0, NUM_MESSAGES, false);
           
         this.checkAllMessageReceivedInOrder(cf1, targetQueue, 0, NUM_MESSAGES);                         
      }
      finally
      {     
         if (started != null)
         {
            try
            {
               started.rollback();
            }
            catch (Exception e)
            {
               log.error("Failed to rollback", e);
            }
         }
        
         if (toResume != null)
         {
            try
            {
               mgr.resume(toResume);
            }
            catch (Exception e)
            {
               log.error("Failed to resume", e);
            }
         }        
         if (bridge != null)
         {
            bridge.stop();
         }    
      }                 
   }  
View Full Code Here

      }                 
   }  
  
   public void testNonDurableSubscriber() throws Exception
   {
      Bridge bridge = null;
           
      try
      {  
         final int NUM_MESSAGES = 10;
        
         bridge = new Bridge(cff0, cff1, sourceTopicFactory, targetQueueFactory,
                  null, null, null, null,
                  null, 5000, 10, Bridge.QOS_AT_MOST_ONCE,
                  1, -1,
                  null, null, false);
        
         bridge.start();
           
         sendMessages(cf0, sourceTopic, 0, NUM_MESSAGES, false);
        
         checkAllMessageReceivedInOrder(cf1, targetQueue, 0, NUM_MESSAGES);                   
      }
      finally
      {                       
         if (bridge != null)
         {
            bridge.stop();
         }
      }                 
   }
View Full Code Here

      }                 
   }
  
   public void testDurableSubscriber() throws Exception
   {
      Bridge bridge = null;
           
      try
      {
         final int NUM_MESSAGES = 10;
        
         bridge = new Bridge(cff0, cff1, sourceTopicFactory, targetQueueFactory,
                  null, null, null, null,
                  null, 5000, 10, Bridge.QOS_AT_MOST_ONCE,
                  1, -1,
                  "subTest", "clientid123", false);
        
         bridge.start();
           
         sendMessages(cf0, sourceTopic, 0, NUM_MESSAGES, true);
        
         checkAllMessageReceivedInOrder(cf1, targetQueue, 0, NUM_MESSAGES);             
      }
      finally
      {                     
         if (bridge != null)
         {
            bridge.stop();
         }
        
         //Now unsubscribe
         Connection conn = cf0.createConnection();
         conn.setClientID("clientid123");
View Full Code Here

     messageIDInHeader(false);
   }
  
   private void messageIDInHeader(boolean on) throws Exception
   {
      Bridge bridge = null;
     
      Connection connSource = null;
     
      Connection connTarget = null;
           
      try
      {
         final int NUM_MESSAGES = 10;
        
         bridge = new Bridge(cff0, cff1, sourceQueueFactory, targetQueueFactory,
                  null, null, null, null,
                  null, 5000, 10, Bridge.QOS_AT_MOST_ONCE,
                  1, -1,
                  null, null, on);
        
         bridge.start();
        
         connSource = cf0.createConnection();
        
         connTarget = cf1.createConnection();
                   
         log.trace("Sending " + NUM_MESSAGES + " messages");
        
         List ids1 = new ArrayList();
    
         Session sessSource = connSource.createSession(false, Session.AUTO_ACKNOWLEDGE);
        
         MessageProducer prod = sessSource.createProducer(sourceQueue);
        
         for (int i = 0; i < NUM_MESSAGES; i++)
         {
            TextMessage tm = sessSource.createTextMessage("message" + i);
           
            //We add some headers to make sure they get passed through ok
            tm.setStringProperty("wib", "uhuh");
            tm.setBooleanProperty("cheese", true);
            tm.setIntProperty("Sausages", 23);
           
            //We add some JMSX ones too
           
            tm.setStringProperty("JMSXGroupID", "mygroup543");
            tm.setIntProperty("JMSXGroupSeq", 777);
           
            prod.send(tm);
           
            ids1.add(tm.getJMSMessageID());
         }

         log.trace("Sent the first messages");
        
         Session sessTarget = connTarget.createSession(false, Session.AUTO_ACKNOWLEDGE);
        
         MessageConsumer cons = sessTarget.createConsumer(targetQueue);
        
         connTarget.start();
        
         List msgs = new ArrayList();
        
         for (int i = 0; i < NUM_MESSAGES; i++)
         {
            TextMessage tm = (TextMessage)cons.receive(5000);
           
            assertNotNull(tm);
           
            assertEquals("message" + i, tm.getText());
           
            assertEquals("uhuh", tm.getStringProperty("wib"));
            assertTrue(tm.getBooleanProperty("cheese"));
            assertEquals(23, tm.getIntProperty("Sausages"));
           
            assertEquals("mygroup543", tm.getStringProperty("JMSXGroupID"));
            assertEquals(777, tm.getIntProperty("JMSXGroupSeq"));
           
            if (on)
            {           
              String header = tm.getStringProperty(JBossMessage.JBOSS_MESSAGING_BRIDGE_MESSAGE_ID_LIST);
             
              assertNotNull(header);
             
              assertEquals(ids1.get(i), header);
             
              msgs.add(tm);
            }
         }
        
         if (on)
         {          
           //Now we send them again back to the source
          
           Iterator iter = msgs.iterator();
          
           List ids2 = new ArrayList();
          
           while (iter.hasNext())
           {
             Message msg = (Message)iter.next();
            
             prod.send(msg);
             
              ids2.add(msg.getJMSMessageID());
           }
                                
           //And consume them again
          
           for (int i = 0; i < NUM_MESSAGES; i++)
           {
              TextMessage tm = (TextMessage)cons.receive(5000);
             
              assertNotNull(tm);
             
              assertEquals("message" + i, tm.getText());
             
              assertEquals("uhuh", tm.getStringProperty("wib"));
              assertTrue(tm.getBooleanProperty("cheese"));
              assertEquals(23, tm.getIntProperty("Sausages"));
             
              assertEquals("mygroup543", tm.getStringProperty("JMSXGroupID"));
              assertEquals(777, tm.getIntProperty("JMSXGroupSeq"));           
             
              String header = tm.getStringProperty(JBossMessage.JBOSS_MESSAGING_BRIDGE_MESSAGE_ID_LIST);
             
              assertNotNull(header);
             
              assertEquals(ids1.get(i) + "," + ids2.get(i), header);
           }
         }
        
      }
      finally
      {                       
         if (bridge != null)
         {
            bridge.stop();
         }
        
         if (connSource != null)
         {
            connSource.close();
View Full Code Here

TOP

Related Classes of org.jboss.jms.server.bridge.Bridge$SourceListener

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.