zoukankan      html  css  js  c++  java
  • 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 + "		" + 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();
        }
      }
    }

  • 相关阅读:
    MapReduce -- 统计天气信息
    设计模式--策略模式
    基于物品的协同过滤(二)
    Hadoop应用开发,常见错误
    基于物品的协同过滤(一)
    基于用户的协同过滤
    MapReduce开发程序,运行环境配置
    3DES加解密 C语言
    js获取对象位置的方法
    icheck.js的一个简单demo
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/7084479.html
Copyright © 2011-2022 走看看