How to Receive a Message from an Apache ActiveMQ Topic with Ceylon

W/o Durability

import javax.jms {
  Connection,
  ConnectionFactory,
  Destination,
  Message,
  MessageConsumer,
  Session
}

import org.apache.activemq {
  ActiveMQConnectionFactory
}

void main() {
  ConnectionFactory connFactory = ActiveMQConnectionFactory();

  Connection conn = connFactory.createConnection();

  Session sess = conn.createSession(false, Session.\iAUTO_ACKNOWLEDGE);

  Destination dest = sess.createTopic("SampleTopic");

  MessageConsumer cons = sess.createConsumer(dest);

  conn.start();

  Message msg = cons.receive();

  print(msg);

  conn.close();
}

W/ Durability

import javax.jms {
  Connection,
  ConnectionFactory,
  Message,
  MessageConsumer,
  Session,
  Topic
}

import org.apache.activemq {
  ActiveMQConnectionFactory
}

void main() {
  ConnectionFactory connFactory = ActiveMQConnectionFactory();

  Connection conn = connFactory.createConnection();

  conn.clientID = "SampleClient";

  Session sess = conn.createSession(false, Session.\iAUTO_ACKNOWLEDGE);

  Topic dest = sess.createTopic("SampleTopic");

  MessageConsumer cons = sess.createDurableSubscriber(dest, "SampleSubscription");

  conn.start();

  Message msg = cons.receive();

  print(msg);

  conn.close();
}
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.