Package javax.jms

Examples of javax.jms.TopicSession


  
         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
         MessageConsumer cons1 = s.createDurableSubscriber(topic, "SubscriberA");
        
         MessageConsumer cons2 = 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
         ObjectName destObjectName =
            new ObjectName("jboss.messaging.destination:service=Topic,name=TopicSubscriptionList");
        
         List list = (List)ServerManagement.invoke(destObjectName, "listAllSubscriptions", null, null);
        
         assertEquals(4, list.size());
        
         SubscriptionInfo sub1 = (SubscriptionInfo)list.get(0);
         SubscriptionInfo sub2 = (SubscriptionInfo)list.get(1);
         SubscriptionInfo sub3 = (SubscriptionInfo)list.get(2);
         SubscriptionInfo sub4 = (SubscriptionInfo)list.get(3);
        
         assertEquals("Client1", sub1.getClientID());
         assertEquals(-1, sub1.getMaxSize());
         assertEquals(2, sub1.getMessageCount());
         assertEquals(null, sub1.getSelector());
         assertEquals("SubscriberA", sub1.getName());
        
         assertEquals("Client1", sub2.getClientID());
         assertEquals(-1, sub2.getMaxSize());
         assertEquals(2, sub2.getMessageCount());
         assertEquals("wibble is null", sub2.getSelector());
         assertEquals("SubscriberB", sub2.getName());
        

         assertEquals(null, sub3.getClientID());
         assertEquals(-1, sub3.getMaxSize());
         assertEquals(2, sub3.getMessageCount());
         assertEquals(null, sub3.getSelector());
         assertEquals(null, sub3.getName());
        
         assertEquals(null, sub4.getClientID());
         assertEquals(-1, sub4.getMaxSize());
         assertEquals(2, sub4.getMessageCount());
         assertEquals(null, sub4.getSelector());
         assertEquals(null, sub4.getName());
        
         //Now the durable
        
         list = (List)ServerManagement.invoke(destObjectName, "listDurableSubscriptions", null, null);
        
         assertEquals(2, list.size());
        
         sub1 = (SubscriptionInfo)list.get(0);
         sub2 = (SubscriptionInfo)list.get(1);

        
         assertEquals("Client1", sub1.getClientID());
         assertEquals(-1, sub1.getMaxSize());
         assertEquals(2, sub1.getMessageCount());
         assertEquals(null, sub1.getSelector());
         assertEquals("SubscriberA", sub1.getName());
        
         assertEquals("Client1", sub2.getClientID());
         assertEquals(-1, sub2.getMaxSize());
         assertEquals(2, sub2.getMessageCount());
         assertEquals("wibble is null", sub2.getSelector());
         assertEquals("SubscriberB", sub2.getName());
        
         //and the non durable
        
         list = (List)ServerManagement.invoke(destObjectName, "listNonDurableSubscriptions", null, null);
        
         assertEquals(2, list.size());
        
         sub3 = (SubscriptionInfo)list.get(0);
         sub4 = (SubscriptionInfo)list.get(1);
        
         assertEquals(null, sub3.getClientID());
         assertEquals(-1, sub3.getMaxSize());
         assertEquals(2, sub3.getMessageCount());
         assertEquals(null, sub3.getSelector());
         assertEquals(null, sub3.getName());
        
         assertEquals(null, sub4.getClientID());
         assertEquals(-1, sub4.getMaxSize());
         assertEquals(2, sub4.getMessageCount());
         assertEquals(null, sub4.getSelector());
         assertEquals(null, sub4.getName());
        
         cons1.close();
        
         cons2.close();    
        
         s.unsubscribe("SubscriberA");
        
         s.unsubscribe("SubscriberB");
        
         conn.close();
        
         removeAllMessages("TopicSubscriptionList", false, 0);
        
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

            assertEquals(tempQueue.getExchangeName().toString(), "tmp.direct");

            queueSession.close();

            TopicSession topicSession = conn.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);

            AMQTopic topic = (AMQTopic) topicSession.createTopic("silly.topic");

            assertEquals(topic.getExchangeName().toString(), "test.topic");

            AMQTopic tempTopic = (AMQTopic) topicSession.createTemporaryTopic();

            assertEquals(tempTopic.getExchangeName().toString(), "tmp.topic");

            topicSession.close();

        }
        catch (Exception e)
        {
            fail("Connection to " + getBroker() + " should succeed. Reason: " + e);
View Full Code Here

    public void testTopicSubscriptionUnsubscription() throws Exception
    {

        AMQConnection con = (AMQConnection) getConnection("guest", "guest");
        AMQTopic topic = new AMQTopic(con.getDefaultTopicExchangeName(), "MyTopic");
        TopicSession session1 = con.createTopicSession(true, AMQSession.NO_ACKNOWLEDGE);
        TopicSubscriber sub = session1.createDurableSubscriber(topic, "subscription0");
        TopicPublisher publisher = session1.createPublisher(topic);

        con.start();

        TextMessage tm = session1.createTextMessage("Hello");
        publisher.publish(tm);
        session1.commit();

        tm = (TextMessage) sub.receive(2000);
        assertNotNull(tm);
        session1.commit();
        session1.unsubscribe("subscription0");

        try
        {
            session1.unsubscribe("not a subscription");
            fail("expected InvalidDestinationException when unsubscribing from unknown subscription");
        }
        catch (InvalidDestinationException e)
        {
            ; // PASS
View Full Code Here

    {
        AMQConnection con = (AMQConnection) getConnection("guest", "guest");
        AMQTopic topic = new AMQTopic(con, "MyTopic1" + String.valueOf(shutdown));
        AMQTopic topic2 = new AMQTopic(con, "MyOtherTopic1" + String.valueOf(shutdown));

        TopicSession session1 = con.createTopicSession(true, AMQSession.AUTO_ACKNOWLEDGE);
        TopicSubscriber sub = session1.createDurableSubscriber(topic, "subscription0");
        TopicPublisher publisher = session1.createPublisher(null);

        con.start();

        publisher.publish(topic, session1.createTextMessage("hello"));
        session1.commit();
        TextMessage m = (TextMessage) sub.receive(2000);
        assertNotNull(m);
        session1.commit();

        if (shutdown)
        {
            session1.close();
            con.close();
            con =  (AMQConnection) getConnection("guest", "guest");
            con.start();
            session1 = con.createTopicSession(true, AMQSession.NO_ACKNOWLEDGE);
            publisher = session1.createPublisher(null);
        }
        sub.close();
        TopicSubscriber sub2 = session1.createDurableSubscriber(topic2, "subscription0");
        publisher.publish(topic, session1.createTextMessage("hello"));
        session1.commit();
        if (!shutdown)
        {
            m = (TextMessage) sub2.receive(2000);
            assertNull(m);
            session1.commit();
        }
        publisher.publish(topic2, session1.createTextMessage("goodbye"));
        session1.commit();
        m = (TextMessage) sub2.receive(2000);
        assertNotNull(m);
        assertEquals("goodbye", m.getText());
        session1.unsubscribe("subscription0");
        con.close();
    }
View Full Code Here

    public void testUnsubscriptionAfterConnectionClose() throws Exception
    {
        AMQConnection con1 = (AMQConnection) getClientConnection("guest", "guest", "clientid");
        AMQTopic topic = new AMQTopic(con1, "MyTopic3");

        TopicSession session1 = con1.createTopicSession(true, AMQSession.AUTO_ACKNOWLEDGE);
        TopicPublisher publisher = session1.createPublisher(topic);

        AMQConnection con2 = (AMQConnection) getClientConnection("guest", "guest", "clientid");
        TopicSession session2 = con2.createTopicSession(true, AMQSession.AUTO_ACKNOWLEDGE);
        TopicSubscriber sub = session2.createDurableSubscriber(topic, "subscription0");

        con2.start();

        publisher.publish(session1.createTextMessage("Hello"));
        session1.commit();
        TextMessage tm = (TextMessage) sub.receive(2000);
        session2.commit();
        assertNotNull(tm);
        con2.close();
        publisher.publish(session1.createTextMessage("Hello2"));
        session1.commit();
        con2 =  (AMQConnection) getClientConnection("guest", "guest", "clientid");
        session2 = con2.createTopicSession(true, AMQSession.NO_ACKNOWLEDGE);
        sub = session2.createDurableSubscriber(topic, "subscription0");
        con2.start();
        tm = (TextMessage) sub.receive(2000);
        session2.commit();
        assertNotNull(tm);
        assertEquals("Hello2", tm.getText());
        session2.unsubscribe("subscription0");
        con1.close();
        con2.close();
    }
View Full Code Here

    public void testTextMessageCreation() throws Exception
    {

        AMQConnection con = (AMQConnection) getConnection("guest", "guest");
        AMQTopic topic = new AMQTopic(con, "MyTopic4");
        TopicSession session1 = con.createTopicSession(true, AMQSession.AUTO_ACKNOWLEDGE);
        TopicPublisher publisher = session1.createPublisher(topic);
        MessageConsumer consumer1 = session1.createConsumer(topic);
        con.start();
        TextMessage tm = session1.createTextMessage("Hello");
        publisher.publish(tm);
        session1.commit();
        tm = (TextMessage) consumer1.receive(10000L);
        assertNotNull(tm);
        String msgText = tm.getText();
        assertEquals("Hello", msgText);
        tm = session1.createTextMessage();
        msgText = tm.getText();
        assertNull(msgText);
        publisher.publish(tm);
        session1.commit();
        tm = (TextMessage) consumer1.receive(10000L);
        assertNotNull(tm);
        session1.commit();
        msgText = tm.getText();
        assertNull(msgText);
        tm.clearBody();
        tm.setText("Now we are not null");
        publisher.publish(tm);
        session1.commit();
        tm = (TextMessage) consumer1.receive(2000);
        assertNotNull(tm);
        session1.commit();
        msgText = tm.getText();
        assertEquals("Now we are not null", msgText);

        tm = session1.createTextMessage("");
        msgText = tm.getText();
        assertEquals("Empty string not returned", "", msgText);
        publisher.publish(tm);
        session1.commit();
        tm = (TextMessage) consumer1.receive(2000);
        session1.commit();
        assertNotNull(tm);
        assertEquals("Empty string not returned", "", msgText);
        con.close();
    }
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.