private void initializeJmsObjectsForTopic() throws JMSException { Session session = connection.createSession(transacted, Session.AUTO_ACKNOWLEDGE); Topic topic = (Topic)destination; if (destination == null) topic = session.createTopic(destinationName); MessageConsumer consumer = durableSubscription ? session.createDurableSubscriber(topic, durableSubscriptionName) : session.createConsumer(topic); IgniteJmsMessageListener messageListener = new IgniteJmsMessageListener(session, true); consumer.setMessageListener(messageListener); consumers.add(consumer); sessions.add(session); listeners.add(messageListener); }
connection.setClientID(clientId.get()); connection.start(); } catch (JMSException e) { throw new FlumeException("Could not create connection to broker", e); session = connection.createSession(true, Session.SESSION_TRANSACTED); } catch (JMSException e) { throw new FlumeException("Could not create session", e); messageConsumer = session.createDurableSubscriber( (Topic) destination, durableSubscriptionName, messageSelector.isEmpty() ? null : messageSelector, true);
public static WrappedMessageConsumer createTopicMessageConsumer(final ProcessContext context, final String clientId) throws JMSException { Objects.requireNonNull(context); Objects.requireNonNull(clientId); Connection connection = null; Session jmsSession = null; try { connection = JmsFactory.createConnection(context, clientId); jmsSession = JmsFactory.createSession(context, connection, DEFAULT_IS_TRANSACTED); final String messageSelector = context.getProperty(MESSAGE_SELECTOR).getValue(); final Topic topic = createTopic(context); final MessageConsumer messageConsumer; if (context.getProperty(DURABLE_SUBSCRIPTION).asBoolean()) { messageConsumer = jmsSession.createDurableSubscriber(topic, clientId, messageSelector, false); } else { messageConsumer = jmsSession.createConsumer(topic, messageSelector, false); } return new WrappedMessageConsumer(connection, jmsSession, messageConsumer); } catch (JMSException e) { if (jmsSession != null) { jmsSession.close(); } if (connection != null) { connection.close(); } throw e; } }
@Test public void testDurableSubscriptionOnPreConfiguredConnectionFactory() throws Exception { ActiveMQServerTestCase.deployConnectionFactory("TestConnectionFactory1", "cfTest", "/TestDurableCF"); createTopic("TestSubscriber"); Connection conn = null; try { Topic topic = (Topic) ic.lookup("/topic/TestSubscriber"); ConnectionFactory cf = (ConnectionFactory) ic.lookup("/TestDurableCF"); conn = cf.createConnection(); // I have to remove this asertion, as the test would work if doing this assertion // as getClientID performed some operation that cleared the bug condition during // the creation of this testcase // Assert.assertEquals("cfTest", conn.getClientID()); Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); session.createDurableSubscriber(topic, "durableSubscriberChangeSelectorTest", "TEST = 'test'", false); } finally { try { if (conn != null) { conn.close(); } } catch (Exception e) { log.warn(e.toString(), e); } try { destroyTopic("TestSubscriber"); } catch (Exception e) { log.warn(e.toString(), e); } } }
static TopicSubscriber createDurableSubscriber(final Connection connection, final Topic topic, final String clientID, final String subscriptionName, final int ackMode) throws JMSException { connection.setClientID(clientID); Session s = connection.createSession(false, ackMode); return s.createDurableSubscriber(topic, subscriptionName); }
protected void publishTestMessagesDurable(Connection connection, String[] subNames, String topicName, int publishSize, int expectedSize, int messageSize, AtomicLong publishedMessageSize, boolean verifyBrowsing, int deliveryMode, boolean shared) throws Exception { Session session = connection.createSession(false, TopicSession.AUTO_ACKNOWLEDGE); Topic topic = session.createTopic(topicName); for (String subName : subNames) { if (shared) { session.createSharedDurableConsumer(topic, subName); } else { session.createDurableSubscriber(topic, subName); } } try { // publish a bunch of non-persistent messages to fill up the temp // store MessageProducer prod = session.createProducer(topic); prod.setDeliveryMode(deliveryMode); for (int i = 0; i < publishSize; i++) { prod.send(createMessage(i, session, messageSize, publishedMessageSize)); } } finally { session.close(); } }
public void setupConnection() throws JMSException { // Create connection ActiveMQConnectionFactory connectionFactory; connectionFactory = new ActiveMQConnectionFactory(user, password, url); connection = connectionFactory.createConnection(); connection.start(); // Create session session = connection.createSession(transacted, ackMode); // Create destination destination = topic ? session.createTopic(subject) : session.createQueue(subject); // Create consumer consumer = (durable && topic) ? session.createDurableSubscriber((Topic)destination, consumerName) : session.createConsumer(destination); consumer.setMessageListener(this); }
/** * Implement ActivationListener Interface. * @param ctx */ @Override public void activate(OperatorContext ctx) { try { super.createConnection(); replyProducer = getSession().createProducer(null); consumer = (isDurable() && isTopic()) ? getSession().createDurableSubscriber((Topic)getDestination(), consumerName) : getSession().createConsumer(getDestination()); consumer.setMessageListener(this); } catch (JMSException ex) { throw new RuntimeException(ex); } }
public void run() { try { System.out.println("Connecting to URL: " + url); System.out.println("Consuming " + (topic ? "topic" : "queue") + ": " + subject); System.out.println("Using " + (durable ? "durable" : "non-durable") + " subscription"); Connection connection = createConnection(); Session session = createSession(connection); MessageConsumer consumer = null; if (durable && topic) { consumer = session.createDurableSubscriber((Topic)destination, consumerName); } else { consumer = session.createConsumer(destination); } if (maxiumMessages <= 0) { consumer.setMessageListener(this); } connection.start(); if (maxiumMessages > 0) { consumeMessagesAndClose(connection, session, consumer); } } catch (Exception e) { System.out.println("Caught: " + e); e.printStackTrace(); } }
private void reconnect() throws Exception { connection = cf.createConnection(); connection.setClientID("cid"); session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); subscriber1 = session.createDurableSubscriber(topic1, "subscriber-1"); subscriber2 = session.createDurableSubscriber(topic1, "subscriber-2"); connection.start(); }
@Test public void testDurableSubscriptionClientIDNotSet() throws Exception { // Client id must be set before creating a durable subscription // This assumes we are not setting it in the connection factory which // is currently true but may change in the future Connection conn1 = null; try { conn1 = createConnection(); ProxyAssertSupport.assertNull(conn1.getClientID()); Session sess1 = conn1.createSession(false, Session.AUTO_ACKNOWLEDGE); try { sess1.createDurableSubscriber(ActiveMQServerTestCase.topic1, "mySubscription"); ProxyAssertSupport.fail(); } catch (JMSException e) { } } finally { if (conn1 != null) { conn1.close(); } } }
@Test public void testInvalidSelectorException() throws Exception { Connection c = createConnection(); c.setClientID("sofiavergara"); Session s = c.createSession(false, Session.AUTO_ACKNOWLEDGE); try { s.createDurableSubscriber(ActiveMQServerTestCase.topic1, "mysubscribption", "=TEST 'test'", true); ProxyAssertSupport.fail("this should fail"); } catch (InvalidSelectorException e) { // OK } }
sourceSession = sourceConn.createSession(true, Session.SESSION_TRANSACTED); } else { // bridging across different servers sourceSession = sourceConn.createSession(false, Session.AUTO_ACKNOWLEDGE); } else { sourceSession = sourceConn.createSession(false, Session.CLIENT_ACKNOWLEDGE); sourceConsumer = sourceSession.createDurableSubscriber((Topic) sourceDestination, subName); } else { sourceConsumer = sourceSession.createDurableSubscriber((Topic) sourceDestination, subName, selector, false); targetProducer = targetSession.createProducer(null);
dest = (Destination) connection.retrieveJndiObject(destName); Session session = connection.getCnx().createSession(false, Session.AUTO_ACKNOWLEDGE); MessageConsumer consumer; if (dest instanceof Queue) { } else { if (durableSubscriptionName != null) { consumer = session.createDurableSubscriber((Topic) dest, durableSubscriptionName, selector, false); } else { consumer = session.createConsumer(dest, selector); connection.getCnx().start(); connection.addExceptionListener(listener); sessions.put(connection.getCnxFactName(), session);
@Override public void start() { try { session = connection.createSession(transacted, acknowledgeMode); if (durableSubscriptionName != null && destination instanceof Topic) { consumer = session.createDurableSubscriber((Topic)destination, durableSubscriptionName, messageSelector, pubSubNoLocal); } else { consumer = session.createConsumer(destination, messageSelector); } MessageListener intListener = new LocalTransactionalMessageListener(session, listenerHandler); // new DispachingListener(getExecutor(), listenerHandler); consumer.setMessageListener(intListener); running = true; } catch (JMSException e) { throw JMSUtil.convertJmsException(e); } }
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); ActiveMQDestination destination = createDestination(session, destinationType); MessageProducer producer = session.createProducer(destination); producer.setDeliveryMode(deliveryMode); MessageConsumer consumer = session.createDurableSubscriber((Topic) destination, "test", "color='red'", false); consumer = session.createDurableSubscriber((Topic) destination, "test", "color='blue'", false);
public static WrappedMessageConsumer createTopicMessageConsumer(final ProcessContext context, final String clientId) throws JMSException { Objects.requireNonNull(context); Objects.requireNonNull(clientId); Connection connection = null; Session jmsSession = null; try { connection = JmsFactory.createConnection(context, clientId); jmsSession = JmsFactory.createSession(context, connection, DEFAULT_IS_TRANSACTED); final String messageSelector = context.getProperty(MESSAGE_SELECTOR).getValue(); final Topic topic = createTopic(context); final MessageConsumer messageConsumer; if (context.getProperty(DURABLE_SUBSCRIPTION).asBoolean()) { messageConsumer = jmsSession.createDurableSubscriber(topic, clientId, messageSelector, false); } else { messageConsumer = jmsSession.createConsumer(topic, messageSelector, false); } return new WrappedMessageConsumer(connection, jmsSession, messageConsumer); } catch (JMSException e) { if (jmsSession != null) { jmsSession.close(); } if (connection != null) { connection.close(); } throw e; } }
_consumer = _session.createDurableSubscriber(topic, subscriptionName, selector, false); _connection.start(); _activated.set(true);
private void startListener() { final String selector = "clusterid <> '" + clusterid + "'"; try { conn = jmsTemplate.getConnectionFactory().createConnection(); conn.setClientID(clusterid); session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); consumer = (config.isDurableSubscriber() == true) ? session.createDurableSubscriber((Topic) destination, name, selector, false) : session .createConsumer(destination, selector); final MessageConverter msgConvertor = jmsTemplate.getMessageConverter(); consumer.setMessageListener(new MessageListener() { public void onMessage(Message msg) { // System.out.println("Received message.." + msg); try { WANMessage wanMsg = (WANMessage) msgConvertor.fromMessage(msg); updateMap(wanMsg); } catch (Exception e) { e.printStackTrace(); } } }); conn.start(); } catch (Exception e) { e.printStackTrace(); } }
@Test(timeout = 60000) public void testDurableSubscriptionUnsubscribe() throws Exception { Connection connection = createConnection("myClientId"); try { Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Topic topic = session.createTopic(getTopicName()); TopicSubscriber myDurSub = session.createDurableSubscriber(topic, "myDurSub"); session.close(); connection.close(); connection = createConnection("myClientId"); session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); myDurSub = session.createDurableSubscriber(topic, "myDurSub"); myDurSub.close(); Assert.assertNotNull(server.getPostOffice().getBinding(new SimpleString("myClientId.myDurSub"))); session.unsubscribe("myDurSub"); Assert.assertNull(server.getPostOffice().getBinding(new SimpleString("myClientId.myDurSub"))); session.close(); connection.close(); } finally { connection.close(); } }