Package javax.jms

Examples of javax.jms.TopicSession


  
         TopicConnection conn = cf.createTopicConnection();
  
         conn.setClientID("Client1");
  
         TopicSession s = conn.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
         MessageProducer prod = s.createProducer(topic);
         prod.setDeliveryMode(DeliveryMode.PERSISTENT);
  
         // Create 1 durable subscription and 1 non-durable subscription
         s.createDurableSubscriber(topic, "Durable1");
         s.createSubscriber(topic);
        
         // Send 1 message
         prod.send(s.createTextMessage("First one"));        
        
         ObjectName destObjectName =
            new ObjectName("jboss.messaging.destination:service=Topic,name=TopicRemoveAllMessages");
        
         int count = ((Integer)ServerManagement.getAttribute(destObjectName, "AllMessageCount")).intValue();
        
         assertEquals(2, count);
        
         // Start the connection for delivery
         conn.start();
        
         // Remove all messages from the topic
        
         //Need to pause since delivery may still be in progress
         Thread.sleep(2000);
        
         ServerManagement.invoke(destObjectName, "removeAllMessages", null, null);
  
         count = ((Integer)ServerManagement.getAttribute(destObjectName, "AllMessageCount")).intValue();
        
         assertEquals(0, count);
                 
         // Now close the connection
         conn.close();
        
         Thread.sleep(1000);
        
         count = ((Integer)ServerManagement.getAttribute(destObjectName, "AllMessageCount")).intValue();
        
         assertEquals(0, count);
        
         // Connect again to the same topic
         conn = cf.createTopicConnection();
         conn.setClientID("Client1");
         s = conn.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
         prod = s.createProducer(topic);
         prod.setDeliveryMode(DeliveryMode.PERSISTENT);
  
         // Send another message
         prod.send(s.createTextMessage("Second one"));
        
         count = ((Integer)ServerManagement.getAttribute(destObjectName, "AllMessageCount")).intValue();
        
         assertEquals(1, count);
View Full Code Here


  
         conn = cf.createTopicConnection();
  
         conn.setClientID("Client1");
  
         TopicSession s = conn.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
         MessageProducer prod = s.createProducer(topic);
         prod.setDeliveryMode(DeliveryMode.PERSISTENT);
  
         // Create 1 durable subscription and 2 non-durable subscription
         s.createDurableSubscriber(topic, "SubscriberA");
        
         s.createSubscriber(topic);
         s.createSubscriber(topic);
        
         //Send a couple of messages
         TextMessage tm1 = s.createTextMessage("message1");
         TextMessage tm2 = s.createTextMessage("message2");
        
         prod.send(tm1);
         prod.send(tm2);
  
         // There should be 3 subscriptions
         ObjectName destObjectName =
            new ObjectName("jboss.messaging.destination:service=Topic,name=TopicGetAllMessageCount");
        
         Integer count = (Integer)ServerManagement.getAttribute(destObjectName, "AllMessageCount");
         assertEquals(6, count.intValue());
        
         count = (Integer)ServerManagement.getAttribute(destObjectName, "DurableMessageCount");
         assertEquals(2, count.intValue());
        
         count = (Integer)ServerManagement.getAttribute(destObjectName, "NonDurableMessageCount");
         assertEquals(4, count.intValue());
                 
         // Now disconnect
         conn.close();
        
         // Only the durable should survive
         count = (Integer)ServerManagement.getAttribute(destObjectName, "AllMessageCount");
         assertEquals(2, count.intValue());
        
         count = (Integer)ServerManagement.getAttribute(destObjectName, "DurableMessageCount");
         assertEquals(2, count.intValue());
        
         count = (Integer)ServerManagement.getAttribute(destObjectName, "NonDurableMessageCount");
         assertEquals(0, count.intValue());
        
         // Now connect again and restore the durable subscription
         conn = cf.createTopicConnection();
         conn.setClientID("Client1");
         s = conn.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
         MessageConsumer cons = s.createDurableSubscriber(topic, "SubscriberA");
        
         count = (Integer)ServerManagement.getAttribute(destObjectName, "AllMessageCount");
         assertEquals(2, count.intValue());
  
         // Now create another durable subscription
         s.createDurableSubscriber(topic, "SubscriberB");
        
         //Now consume
        
         conn.start();
        
View Full Code Here

  
         conn = cf.createTopicConnection();
  
         conn.setClientID("Client1");
  
         TopicSession s = conn.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);

         // Create 2 durable subscription and 4 non-durable subscription
         s.createDurableSubscriber(topic, "SubscriberA");
         s.createDurableSubscriber(topic, "SubscriberB");
        
         s.createSubscriber(topic);
         s.createSubscriber(topic);
         s.createSubscriber(topic);
         s.createSubscriber(topic);
  
         // There should be 6 subscriptions
         ObjectName destObjectName =
            new ObjectName("jboss.messaging.destination:service=Topic,name=TopicSubscriptionsCount");
        
         Integer count = (Integer)ServerManagement.getAttribute(destObjectName, "AllSubscriptionsCount");
         assertEquals(6, count.intValue());
        
         count = (Integer)ServerManagement.getAttribute(destObjectName, "DurableSubscriptionsCount");
         assertEquals(2, count.intValue());
        
         count = (Integer)ServerManagement.getAttribute(destObjectName, "NonDurableSubscriptionsCount");
         assertEquals(4, count.intValue());
        
               
         // Now disconnect
         conn.close();
        
         // Only the durable should survive
         count = (Integer)ServerManagement.getAttribute(destObjectName, "AllSubscriptionsCount");
         assertEquals(2, count.intValue());
        
         count = (Integer)ServerManagement.getAttribute(destObjectName, "DurableSubscriptionsCount");
         assertEquals(2, count.intValue());
        
         count = (Integer)ServerManagement.getAttribute(destObjectName, "NonDurableSubscriptionsCount");
         assertEquals(0, count.intValue());
        
        
         // Now connect again and restore the durable subscription
         conn = cf.createTopicConnection();
         conn.setClientID("Client1");
         s = conn.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
         s.createDurableSubscriber(topic, "SubscriberA");
        
         count = (Integer)ServerManagement.getAttribute(destObjectName, "AllSubscriptionsCount");
         assertEquals(2, count.intValue());
        
         count = (Integer)ServerManagement.getAttribute(destObjectName, "DurableSubscriptionsCount");
View Full Code Here

      {
         conn = cf.createTopicConnection();
  
         conn.setClientID("Client1");
  
         TopicSession s = conn.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);

         // Create 2 durable subscription and 2 non-durable subscription
         s.createDurableSubscriber(topic, "SubscriberA");
        
         s.createDurableSubscriber(topic, "SubscriberB", "wibble is null", false);
        
         s.createSubscriber(topic);
        
         s.createSubscriber(topic);
        
         MessageProducer prod = s.createProducer(topic);
         prod.setDeliveryMode(DeliveryMode.PERSISTENT);
        
         // Send a couple of messages
         TextMessage tm1 = s.createTextMessage("message1");
         TextMessage tm2 = s.createTextMessage("message2");
        
         prod.send(tm1);
         prod.send(tm2);
     
         // There should be 4 subscriptions
View Full Code Here

      {
         conn = cf.createTopicConnection();
  
         conn.setClientID("Client1");
  
         TopicSession s = conn.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);

         // Create 2 durable subscription and 2 non-durable subscription
         s.createDurableSubscriber(topic, "SubscriberA");
        
         s.createDurableSubscriber(topic, "SubscriberB", "wibble is null", false);
        
         s.createSubscriber(topic);
        
         s.createSubscriber(topic);
        
         MessageProducer prod = s.createProducer(topic);
         prod.setDeliveryMode(DeliveryMode.PERSISTENT);
        
         // Send a couple of messages
         TextMessage tm1 = s.createTextMessage("message1");
         TextMessage tm2 = s.createTextMessage("message2");
        
         prod.send(tm1);
         prod.send(tm2);
     
         // There should be 4 subscriptions
View Full Code Here

  
         conn = cf.createTopicConnection();
  
         conn.setClientID("Client1");
  
         TopicSession s = conn.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
         MessageProducer prod = s.createProducer(topic);
         prod.setDeliveryMode(DeliveryMode.PERSISTENT);
  
         MessageConsumer cons = s.createDurableSubscriber(topic, "SubscriberA");
        
         // Send some persistent message
         TextMessage tm1 = s.createTextMessage("message1");
         tm1.setStringProperty("vegetable", "parsnip");
         TextMessage tm2 = s.createTextMessage("message2");
         tm2.setStringProperty("vegetable", "parsnip");
         TextMessage tm3 = s.createTextMessage("message3");
         tm3.setStringProperty("vegetable", "parsnip");
         prod.send(tm1);
         prod.send(tm2);
         prod.send(tm3);
        
         // and some non persistent with a selector
         prod.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
        
         TextMessage tm4 = s.createTextMessage("message4");
         tm4.setStringProperty("vegetable", "artichoke");
         TextMessage tm5 = s.createTextMessage("message5");
         tm5.setStringProperty("vegetable", "artichoke");
         TextMessage tm6 = s.createTextMessage("message6");
         tm6.setStringProperty("vegetable", "artichoke");
         prod.send(tm4);
         prod.send(tm5);
         prod.send(tm6);
        
View Full Code Here

      TopicConnectionFactory factory = (TopicConnectionFactory) ctx.lookup("ConnectionFactory");
      Topic topic = null;
      TopicConnection connection = factory.createTopicConnection();
      try
      {
         TopicSession s = connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
         topic = s.createTemporaryTopic();
         TopicConnection connection2 = factory.createTopicConnection();
         try
         {
            connection2.createConnectionConsumer(topic, "", MockServerSessionPool.getServerSessionPool(), 1);
            fail("Expected an error listening to a temporary destination from a different connection");
View Full Code Here

      InitialContext ctx = super.getInitialContext();
      Topic topicDest = (Topic) ctx.lookup("testCreateTopic");
      TopicConnectionFactory tcf = (TopicConnectionFactory) ctx.lookup("ConnectionFactory");
      TopicConnection tc = tcf.createTopicConnection();
      tc.start();
      TopicSession ts = tc.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
      MessageConsumer mc = ts.createConsumer(topicDest);
      MessageProducer mp = ts.createProducer(topicDest);
      Message helloMsg = ts.createTextMessage("Hello from testCreateTopic");
      mp.send(helloMsg);
      log.info("Producer sent: "+helloMsg);
      Message response = mc.receive();
      log.info("Consumer saw: "+response);
View Full Code Here

     
      Topic topic = (Topic) getInitialContext().lookup("testCreateTopic");
      TopicConnectionFactory cf = (TopicConnectionFactory) getInitialContext().lookup("ConnectionFactory");
     
      TopicConnection connection = cf.createTopicConnection();
      TopicSession session = connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
      session.createSubscriber(topic);
     
      TopicPublisher pub = session.createPublisher(topic);
      try
      {
         for(int i = 0; i < 10; i++)
            pub.send(session.createTextMessage("Message nr " + i));
        
         SimpleValue nondurable = (SimpleValue)component.getProperty("nonDurableSubscriptionsCount").getValue();
         SimpleValue durable = (SimpleValue)component.getProperty("durableSubscriptionsCount").getValue();
         SimpleValue all = (SimpleValue)component.getProperty("allSubscriptionsCount").getValue();
         SimpleValue allMessageCount = (SimpleValue)component.getProperty("allMessageCount").getValue();
        
         CollectionValue messageCounters = (CollectionValue) component.getProperty("messageCounters").getValue();
         assertNotNull(messageCounters);
        
         assertEquals(1, nondurable.getValue());
         assertEquals(0, durable.getValue());
         assertEquals(1, all.getValue());
         assertEquals(10, allMessageCount.getValue());
  
         CompositeValue messageCounter = (CompositeValue) messageCounters.iterator().next();
         assertNotNull(messageCounter);
        
         SimpleValue count = (SimpleValue) messageCounter.get("messageCount");
         assertEquals(count, allMessageCount);
      }
      finally
      {
         pub.close();
         session.close();
      }
   }
View Full Code Here

            public void run()
            {
               try
               {

                  TopicSession session = topicConnection.createTopicSession(transacted != TRANS_NONE, Session.AUTO_ACKNOWLEDGE);
                  Topic topic = (Topic)context.lookup(TEST_TOPIC);

                  TopicPublisher publisher = session.createPublisher(topic);

                  startFlag.await();

                  BytesMessage message = session.createBytesMessage();
                  message.writeBytes(PERFORMANCE_TEST_DATA_PAYLOAD);

                  long startTime = System.currentTimeMillis();
                  for (int i = 0; i < iterationCount; i++)
                  {
                     publisher.publish(message, persistence, 4, 0);
                     //publisher.publish(topic, message, persistence, 4, 0);
                     //getLog().debug("  Sent #"+i);
                     if (transacted == TRANS_INDIVIDUAL)
                     {
                        session.commit();
                     }
                  }

                  if (transacted == TRANS_TOTAL)
                  {
                     session.commit();
                  }

                  long endTime = System.currentTimeMillis();
                  session.close();

                  long pTime = endTime - startTime;
                  log.debug("  sent all messages in " + ((double)pTime / 1000) + " seconds. ");
               }
               catch (Exception e)
               {
                  log.error("error", e);
               }
            }
         };

      final TopicSession session = topicConnection.createTopicSession(transacted != TRANS_NONE, Session.AUTO_ACKNOWLEDGE);
      Topic topic = (Topic)context.lookup(TEST_TOPIC);
      TopicSubscriber subscriber = session.createSubscriber(topic);

      MessageListener listener =
         new MessageListener()
         {
            long startTime = System.currentTimeMillis();
            int i = 0;

            /**
             * #Description of the Method
             *
             * @param message  Description of Parameter
             */
            public void onMessage(Message message)
            {
               try
               {
        if( transacted == TRANS_INDIVIDUAL )
          session.commit();
                  i++;
               }
               catch (JMSException e)
               {
                  getLog().error("Unable to commit", e);
                  synchronized (this)
                  {
                     this.notify();
                  }
               }
               if (i >= iterationCount)
               {
                  long endTime = System.currentTimeMillis();
                  long pTime = endTime - startTime;
                  log.debug("  received all messages in " + ((double)pTime / 1000) + " seconds. ");

                  synchronized (this)
                  {
                     this.notify();
                  }
               }
            }
         };

      getLog().debug("  Asynch Topic: This test will send " + getIterationCount() + " "
             + (persistence == DeliveryMode.PERSISTENT ? "persistent" : "non-persistent") + " messages. Each with a payload of "
             + ((double)PERFORMANCE_TEST_DATA_PAYLOAD.length / 1024) + "Kb"
             + " Session is " + TRANS_DESC[transacted] + " transacted");
      long startTime = System.currentTimeMillis();
      sendThread.start();
      subscriber.setMessageListener(listener);
      startFlag.countDown();
      synchronized (listener)
      {
         topicConnection.start();
         listener.wait();
      }

      if (transacted == TRANS_TOTAL)
      {
         session.commit();
      }

      session.close();
      sendThread.join();
      long endTime = System.currentTimeMillis();
      long pTime = endTime - startTime;
      getLog().debug("  All threads finished after: " + ((double)pTime / 1000) + " seconds. ");

View Full Code Here

TOP

Related Classes of javax.jms.TopicSession

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.