List of usage examples for javax.jms QueueConnection start
void start() throws JMSException;
From source file:org.easybatch.jms.JmsIntegrationTest.java
@Test public void testJmsSupport() throws Exception { Context jndiContext = getJndiContext(); QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory) jndiContext .lookup("QueueConnectionFactory"); Queue queue = (Queue) jndiContext.lookup("q"); QueueConnection queueConnection = queueConnectionFactory.createQueueConnection(); QueueSession queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); QueueSender queueSender = queueSession.createSender(queue); queueConnection.start(); //send a regular message to the queue TextMessage message = queueSession.createTextMessage(); message.setText(MESSAGE_TEXT);/* w w w. j av a 2 s . com*/ queueSender.send(message); //send a poison record to the queue queueSender.send(new JmsPoisonMessage()); Job job = aNewJob().reader(new JmsQueueRecordReader(queueConnectionFactory, queue)) .filter(new JmsPoisonRecordFilter()).processor(new RecordCollector()) .jobListener(new JmsQueueSessionListener(queueSession)) .jobListener(new JmsQueueConnectionListener(queueConnection)).build(); JobReport jobReport = JobExecutor.execute(job); assertThat(jobReport).isNotNull(); assertThat(jobReport.getParameters().getDataSource()).isEqualTo(EXPECTED_DATA_SOURCE_NAME); assertThat(jobReport.getMetrics().getTotalCount()).isEqualTo(2); assertThat(jobReport.getMetrics().getFilteredCount()).isEqualTo(1); assertThat(jobReport.getMetrics().getSuccessCount()).isEqualTo(1); List<JmsRecord> records = (List<JmsRecord>) jobReport.getResult(); assertThat(records).isNotNull().isNotEmpty().hasSize(1); JmsRecord jmsRecord = records.get(0); Header header = jmsRecord.getHeader(); assertThat(header).isNotNull(); assertThat(header.getNumber()).isEqualTo(1); assertThat(header.getSource()).isEqualTo(EXPECTED_DATA_SOURCE_NAME); Message payload = jmsRecord.getPayload(); assertThat(payload).isNotNull().isInstanceOf(TextMessage.class); TextMessage textMessage = (TextMessage) payload; assertThat(textMessage.getText()).isNotNull().isEqualTo(MESSAGE_TEXT); }
From source file:org.easybatch.jms.JmsIntegrationTest.java
@Test public void testJmsRecordWriter() throws Exception { Context jndiContext = getJndiContext(); Queue queue = (Queue) jndiContext.lookup("q"); QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory) jndiContext .lookup("QueueConnectionFactory"); QueueConnection queueConnection = queueConnectionFactory.createQueueConnection(); QueueSession queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); queueConnection.start(); String dataSource = "foo" + LINE_SEPARATOR + "bar"; aNewJob().reader(new StringRecordReader(dataSource)).processor(new JmsMessageTransformer(queueSession)) .writer(new JmsQueueRecordWriter(queueConnectionFactory, queue)).call(); // Assert that queue contains 2 messages: "foo" and "bar" QueueBrowser queueBrowser = queueSession.createBrowser(queue); Enumeration enumeration = queueBrowser.getEnumeration(); assertThat(enumeration.hasMoreElements()).isTrue(); TextMessage message1 = (TextMessage) enumeration.nextElement(); assertThat(message1.getText()).isEqualTo("foo"); assertThat(enumeration.hasMoreElements()).isTrue(); TextMessage message2 = (TextMessage) enumeration.nextElement(); assertThat(message2.getText()).isEqualTo("bar"); assertThat(enumeration.hasMoreElements()).isFalse(); queueSession.close();// ww w .ja va 2s . co m queueConnection.close(); }
From source file:org.easybatch.tutorials.advanced.jms.JMSUtil.java
public static void initJMSFactory() throws Exception { Properties p = new Properties(); p.load(JMSUtil.class.getResourceAsStream(("/org/easybatch/tutorials/advanced/jms/jndi.properties"))); Context jndiContext = new InitialContext(p); queueConnectionFactory = (QueueConnectionFactory) jndiContext.lookup("QueueConnectionFactory"); queue = (Queue) jndiContext.lookup("q"); QueueConnection queueConnection = queueConnectionFactory.createQueueConnection(); queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); queueSender = queueSession.createSender(queue); queueConnection.start(); }
From source file:org.wso2.carbon.andes.core.QueueManagerServiceImpl.java
/** * Publish message to given JMS queue//from w ww .j av a2 s . c o m * * @param nameOfQueue queue name * @param userName username * @param accessKey access key * @param jmsType jms type * @param jmsCorrelationID message correlation id * @param numberOfMessages number of messages to publish * @param message message body * @param deliveryMode delivery mode * @param priority message priority * @param expireTime message expire time * @throws QueueManagerException */ private void send(String nameOfQueue, String userName, String accessKey, String jmsType, String jmsCorrelationID, int numberOfMessages, String message, int deliveryMode, int priority, long expireTime) throws QueueManagerException { QueueConnectionFactory connFactory; QueueConnection queueConnection = null; QueueSession queueSession = null; QueueSender queueSender = null; try { Properties properties = new Properties(); properties.put(Context.INITIAL_CONTEXT_FACTORY, ANDES_ICF); properties.put(CF_NAME_PREFIX + CF_NAME, Utils.getTCPConnectionURL(userName, accessKey)); properties.put(QUEUE_NAME_PREFIX + nameOfQueue, nameOfQueue); properties.put(CarbonConstants.REQUEST_BASE_CONTEXT, "true"); InitialContext ctx = new InitialContext(properties); connFactory = (QueueConnectionFactory) ctx.lookup(CF_NAME); queueConnection = connFactory.createQueueConnection(); Queue queue = (Queue) ctx.lookup(nameOfQueue); queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); queueSender = queueSession.createSender(queue); queueConnection.start(); TextMessage textMessage = queueSession.createTextMessage(); if (queueSender != null && textMessage != null) { if (jmsType != null) { textMessage.setJMSType(jmsType); } if (jmsCorrelationID != null) { textMessage.setJMSCorrelationID(jmsCorrelationID); } if (message != null) { textMessage.setText(message); } else { textMessage.setText("Type message here.."); } for (int i = 0; i < numberOfMessages; i++) { queueSender.send(textMessage, deliveryMode, priority, expireTime); } } } catch (FileNotFoundException | NamingException | UnknownHostException | XMLStreamException | JMSException e) { throw new QueueManagerException("Unable to send message.", e); } finally { try { if (queueConnection != null) { queueConnection.close(); } } catch (JMSException e) { log.error("Unable to close queue connection", e); } try { if (queueSession != null) { queueSession.close(); } } catch (JMSException e) { log.error("Unable to close queue session", e); } try { if (queueSender != null) { queueSender.close(); } } catch (JMSException e) { log.error("Unable to close queue sender", e); } } }
From source file:org.wso2.carbon.integration.test.client.JMSPublisherClient.java
/** * This method will publish the data in the test data file to the given queue via ActiveMQ message broker * * @param queueName the queue which the messages should be published under * @param messageFormat messageFormat of the test data file * @param testCaseFolderName Testcase folder name which is in the test artifacts folder * @param dataFileName data file name with the extension to be read * *//*from ww w . j a va2s . c o m*/ public static void publishToQueue(String queueName, String messageFormat, String testCaseFolderName, String dataFileName) throws JMSException, IOException, NamingException { //create connection Properties properties = new Properties(); properties.load(ClassLoader.getSystemClassLoader().getResourceAsStream("activemq.properties")); Context context = new InitialContext(properties); QueueConnectionFactory connFactory = (QueueConnectionFactory) context.lookup("ConnectionFactory"); QueueConnection queueConnection = connFactory.createQueueConnection(); queueConnection.start(); Session session = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); Queue queue = session.createQueue(queueName); MessageProducer producer = session.createProducer(queue); //publish data String filePath = getTestDataFileLocation(testCaseFolderName, dataFileName); List<String> messagesList = readFile(filePath); if (messageFormat.equalsIgnoreCase("map")) { publishMapMessages(producer, session, messagesList); } else { publishTextMessage(producer, session, messagesList); } //close connection producer.close(); session.close(); queueConnection.stop(); queueConnection.close(); }
From source file:org.wso2.carbon.oc.agent.publisher.mb.MBPublisher.java
/** * @param queueName - String mb queue name * @param jsonMessage - String mb queue message json string *//*from w w w . j a va 2 s. c om*/ public void sendMessages(String queueName, String jsonMessage) { try { Properties properties = new Properties(); properties.put(Context.INITIAL_CONTEXT_FACTORY, QPID_ICF); properties.put(CF_NAME_PREFIX + CF_NAME, getTCPConnectionURL(username, password)); properties.put(QUEUE_NAME_PREFIX + queueName, queueName); InitialContext ctx = new InitialContext(properties); // lookup connection factory QueueConnectionFactory connFactory = (QueueConnectionFactory) ctx.lookup(CF_NAME); QueueConnection queueConnection = connFactory.createQueueConnection(); queueConnection.start(); QueueSession queueSession = queueConnection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE); // send message Queue queue = (Queue) ctx.lookup(queueName); // create the message to send TextMessage textMessage = queueSession.createTextMessage(jsonMessage); QueueSender queueSender = queueSession.createSender(queue); queueSender.send(textMessage); queueSender.close(); queueSession.close(); queueConnection.close(); } catch (JMSException e) { logger.error("MBPublisher connection down", e); } catch (NamingException e) { logger.error("Naming error", e); } }
From source file:org.wso2.carbon.sample.consumer.JMSQueueMessageConsumer.java
public void run() { // create queue connection QueueConnection queueConnection = null; try {/* ww w .j a va2s . c o m*/ queueConnection = queueConnectionFactory.createQueueConnection(); queueConnection.start(); } catch (JMSException e) { log.info("Can not create queue connection." + e); return; } Session session = null; try { session = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); Destination destination = session.createQueue(queueName); MessageConsumer consumer = session.createConsumer(destination); int count = 0; long totalLatency = 0; long lastTimestamp = System.currentTimeMillis(); while (active) { Message message = consumer.receive(1000); if (message != null) { // if (message instanceof MapMessage) { MapMessage mapMessage = (MapMessage) message; long currentTime = System.currentTimeMillis(); long sentTimestamp = (Long) mapMessage.getObject("time"); totalLatency = totalLatency + (currentTime - sentTimestamp); int logCount = 1000; if ((count % logCount == 0) && (count > warmUpCount)) { double rate = (logCount * 1000.0d / (System.currentTimeMillis() - lastTimestamp)); log.info("Consumer: " + consumerId + " (" + logCount + " received) rate: " + rate + " Latency:" + (totalLatency / (logCount * 1.0d))); // log.info("total latency:" + totalLatency); log.info("Total rate: " + (int) (consumers * rate)); totalLatency = 0; lastTimestamp = System.currentTimeMillis(); } count++; } } log.info("Finished listening for messages."); } catch (JMSException e) { log.info("Can not subscribe." + e); } finally { if (session != null) { try { session.close(); } catch (JMSException e) { log.error(e); } } try { queueConnection.stop(); queueConnection.close(); } catch (JMSException e) { e.printStackTrace(); } } }
From source file:org.wso2.carbon.sample.consumer.QueueConsumer.java
public void run() { // create queue connection QueueConnection queueConnection = null; try {// w w w . jav a2 s. com queueConnection = queueConnectionFactory.createQueueConnection(); queueConnection.start(); } catch (JMSException e) { log.error("Can not create queue connection." + e.getMessage(), e); return; } Session session = null; try { session = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); Destination destination = session.createQueue(queueName); MessageConsumer consumer = session.createConsumer(destination); log.info("Listening for messages"); while (active) { Message message = consumer.receive(1000); if (message != null) { if (message instanceof MapMessage) { MapMessage mapMessage = (MapMessage) message; Map<String, Object> map = new HashMap<String, Object>(); Enumeration enumeration = mapMessage.getMapNames(); while (enumeration.hasMoreElements()) { String key = (String) enumeration.nextElement(); map.put(key, mapMessage.getObject(key)); } log.info("Received Map Message : " + map); } else if (message instanceof TextMessage) { log.info("Received Text Message : " + ((TextMessage) message).getText()); } else { log.info("Received message : " + message.toString()); } } } log.info("Finished listening for messages."); session.close(); queueConnection.stop(); queueConnection.close(); } catch (JMSException e) { log.error("Can not subscribe." + e.getMessage(), e); } }
From source file:org.wso2.extension.siddhi.io.jms.sink.util.QueueConsumer.java
public void run() { // create queue connection QueueConnection queueConnection = null; try {/* w w w . j a va 2 s .c om*/ queueConnection = queueConnectionFactory.createQueueConnection(); queueConnection.start(); } catch (JMSException e) { log.error("Can not create queue connection." + e.getMessage(), e); return; } Session session; try { session = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); Destination destination = session.createQueue(queueName); MessageConsumer consumer = session.createConsumer(destination); log.info("Listening for messages at " + queueName); while (active) { Message message = consumer.receive(1000); if (message != null) { resultContainer.eventReceived(message); if (message instanceof MapMessage) { MapMessage mapMessage = (MapMessage) message; Map<String, Object> map = new HashMap<String, Object>(); Enumeration enumeration = mapMessage.getMapNames(); while (enumeration.hasMoreElements()) { String key = (String) enumeration.nextElement(); map.put(key, mapMessage.getObject(key)); } log.info("Received Map Message: " + map); } else if (message instanceof TextMessage) { log.info("Received Text Message: " + ((TextMessage) message).getText()); } else { log.info("Received message: " + message.toString()); } } } log.info("Finished listening for messages."); session.close(); queueConnection.stop(); queueConnection.close(); } catch (JMSException e) { log.error("Can not subscribe." + e.getMessage(), e); } }
From source file:org.wso2.extension.siddhi.io.jms.source.client.JMSClient.java
public void sendJMSEvents(String filePath, String topicName, String queueName, String format, String broker, String providerURL) {//from w w w . j ava 2 s . c om if (format == null || "map".equals(format)) { format = "csv"; } if ("".equalsIgnoreCase(broker)) { broker = "activemq"; } Session session = null; Properties properties = new Properties(); if (!"activemq".equalsIgnoreCase(broker) && !"mb".equalsIgnoreCase(broker) && !"qpid".equalsIgnoreCase(broker)) { log.error("Please enter a valid JMS message broker. (ex: activemq, mb, qpid"); return; } try { if (topicName != null && !"".equalsIgnoreCase(topicName)) { TopicConnection topicConnection; TopicConnectionFactory connFactory = null; if ("activemq".equalsIgnoreCase(broker)) { properties.load(ClassLoader.getSystemClassLoader().getResourceAsStream("activemq.properties")); // to provide custom provider urls if (providerURL != null) { properties.put(Context.PROVIDER_URL, providerURL); } Context context = new InitialContext(properties); connFactory = (TopicConnectionFactory) context.lookup("ConnectionFactory"); } else if ("mb".equalsIgnoreCase(broker)) { properties.load(ClassLoader.getSystemClassLoader().getResourceAsStream("mb.properties")); Context context = new InitialContext(properties); connFactory = (TopicConnectionFactory) context.lookup("qpidConnectionFactory"); } else if ("qpid".equalsIgnoreCase(broker)) { properties.load(ClassLoader.getSystemClassLoader().getResourceAsStream("qpid.properties")); Context context = new InitialContext(properties); connFactory = (TopicConnectionFactory) context.lookup("qpidConnectionFactory"); } if (connFactory != null) { topicConnection = connFactory.createTopicConnection(); topicConnection.start(); session = topicConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE); if (session != null) { Topic topic = session.createTopic(topicName); MessageProducer producer = session.createProducer(topic); List<String> messagesList = JMSClientUtil.readFile(filePath); try { if ("csv".equalsIgnoreCase(format)) { log.info("Sending Map messages on '" + topicName + "' topic"); JMSClientUtil.publishMapMessage(producer, session, messagesList); } else { log.info("Sending " + format + " messages on '" + topicName + "' topic"); JMSClientUtil.publishTextMessage(producer, session, messagesList); } log.info("All Order Messages sent"); } catch (JMSException e) { log.error("Cannot subscribe." + e.getMessage(), e); } catch (IOException e) { log.error("Error when reading the data file." + e.getMessage(), e); } finally { producer.close(); session.close(); topicConnection.stop(); } } } else { log.error("Error when creating connection factory. Please check necessary jar files"); } } else if (queueName != null && !queueName.equalsIgnoreCase("")) { QueueConnection queueConnection; QueueConnectionFactory connFactory = null; if ("activemq".equalsIgnoreCase(broker)) { properties.load(ClassLoader.getSystemClassLoader().getResourceAsStream("activemq.properties")); Context context = new InitialContext(properties); connFactory = (QueueConnectionFactory) context.lookup("ConnectionFactory"); } else if ("mb".equalsIgnoreCase(broker)) { properties.load(ClassLoader.getSystemClassLoader().getResourceAsStream("mb.properties")); Context context = new InitialContext(properties); connFactory = (QueueConnectionFactory) context.lookup("qpidConnectionFactory"); } else if ("qpid".equalsIgnoreCase(broker)) { properties.load(ClassLoader.getSystemClassLoader().getResourceAsStream("qpid.properties")); Context context = new InitialContext(properties); connFactory = (QueueConnectionFactory) context.lookup("qpidConnectionFactory"); } if (connFactory != null) { queueConnection = connFactory.createQueueConnection(); queueConnection.start(); session = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); if (session != null) { Queue queue = session.createQueue(queueName); MessageProducer producer = session.createProducer(queue); List<String> messagesList = JMSClientUtil.readFile(filePath); try { if ("csv".equalsIgnoreCase(format)) { log.info("Sending Map messages on '" + queueName + "' queue"); JMSClientUtil.publishMapMessage(producer, session, messagesList); } else { log.info("Sending " + format + " messages on '" + queueName + "' queue"); JMSClientUtil.publishTextMessage(producer, session, messagesList); } } catch (JMSException e) { log.error("Cannot subscribe." + e.getMessage(), e); } catch (IOException e) { log.error("Error when reading the data file." + e.getMessage(), e); } finally { producer.close(); session.close(); queueConnection.stop(); } } } else { log.error("Error when creating connection factory. Please check necessary jar files"); } } else { log.error("Enter queue name or topic name to be published!"); } } catch (Exception e) { log.error("Error when publishing" + e.getMessage(), e); } }