activeMQ發布訂閱模式中中常用工具類,activemq工具類

來源:互聯網
上載者:User

activeMQ發布訂閱模式中中常用工具類,activemq工具類

package com.jms;import java.util.Map;import java.util.concurrent.ConcurrentHashMap;import javax.jms.BytesMessage;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.Destination;import javax.jms.JMSException;import javax.jms.MessageConsumer;import javax.jms.MessageProducer;import javax.jms.Queue;import javax.jms.Session;import javax.jms.TextMessage;import org.apache.activemq.ActiveMQConnection;import org.apache.activemq.ActiveMQConnectionFactory;import org.clapper.util.logging.Logger;import com.pzoom.dsa.common.util.Log;import com.pzoom.dsa.nerd.mysql.DBQueryHelper;public class Jms{  static ConnectionFactory connectionFactory;  static Connection connection = null;  static Session session;  static Map<String, MessageProducer> sendQueues = new ConcurrentHashMap<String, MessageProducer>();  static Map<String, MessageConsumer> getQueues = new ConcurrentHashMap<String, MessageConsumer>();  static Log log=Log.getLogger(DBQueryHelper.class);  static {    connectionFactory = new ActiveMQConnectionFactory(      ActiveMQConnection.DEFAULT_USER,       ActiveMQConnection.DEFAULT_PASSWORD,       "tcp://10.100.100.100:61616?wireFormat.maxInactivityDuration=0");    try    {      connection = connectionFactory.createConnection();      connection.start();      session = connection.createSession(Boolean.FALSE.booleanValue(),         1);    }    catch (Exception e) {      e.printStackTrace();    }  }  static MessageProducer getMessageProducer(String name) {    if (sendQueues.containsKey(name))      return ((MessageProducer)sendQueues.get(name));    try    {      Destination destination = session.createQueue(name);      MessageProducer producer = session.createProducer(destination);      sendQueues.put(name, producer);      return producer;    } catch (JMSException e) {      e.printStackTrace();    }    return ((MessageProducer)sendQueues.get(name));  }  static MessageConsumer getMessageConsumer(String name) {    if (getQueues.containsKey(name))      return ((MessageConsumer)getQueues.get(name));    try    {      Destination destination = session.createQueue(name);      MessageConsumer consumer = session.createConsumer(destination);      getQueues.put(name, consumer);      return consumer;    } catch (JMSException e) {      e.printStackTrace();    }    return ((MessageConsumer)getQueues.get(name));  }  public static void sendMessage(String queue, String text) {    try {      TextMessage message = session.createTextMessage(text);      getMessageProducer(queue).send(message);     // log.info("sendMessage " + queue + "\t\t" + text);    }    catch (JMSException e) {      e.printStackTrace();    }  }       public static String getMessage(String queue)  {    try {      TextMessage message = (TextMessage)getMessageConsumer(queue).receive(10000L);      if (message != null)       return message.getText();    } catch (JMSException e) {      e.printStackTrace();    }return null;  }  public static void close() {    try {      session.close();    } catch (JMSException e) {      e.printStackTrace();    }    try {      connection.close();    } catch (JMSException e) {      e.printStackTrace();    }  }}

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.