activeMQ发布订阅模式中中常用工具类
来源:互联网 发布:诺基亚n900运行windows 编辑:程序博客网 时间:2024/06/05 17:17
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(); } }}
阅读全文
0 0
- activeMQ发布订阅模式中中常用工具类
- activeMQ发布订阅模式中中常用工具类
- ActiveMQ发布订阅模式
- ActiveMQ发布订阅模式
- activemq 发布订阅模式
- ActiveMQ发布订阅模式
- ActiveMQ发布订阅模式
- activeMq的发布订阅模式
- ActiveMQ的发布订阅模式
- angular中发布/订阅模式详解
- 3,ActiveMQ-Topic订阅发布模式
- activeMQ发布订阅者模式使用
- ActiveMQ 发布订阅(Topic)
- ActiveMQ(4)-发布订阅
- 初探ZeroMQ(三) 发布-订阅模式中套结字总结
- JavaScript中发布/订阅模式的简单实例
- 使用Spring配置ActiveMQ的发布订阅模式
- Spring整合activeMq(二):发布订阅模式
- SSH与SSM学习之hibernate09——对象的三种状态
- C#--记录用户程序退出时间日志
- Java基础之集合框架--Collections.reverse()方法
- java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver解决方案
- Android移动开发-属性动画的实现
- activeMQ发布订阅模式中中常用工具类
- Android IPC机制
- C#--生成流水号---当前时间加随机数
- 如何从零开始建立一个新的项目
- Hadoop2 伪分布式安装
- SSH与SSM学习之hibernate10——Hibernate的一级缓存
- 51单片机的中断系统(四)
- 晶振的抉择:12M和11.0592M的选择
- linux内存管理之页描述符