点击打开链接消息持久化
<bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost/activemq?relaxAutoCommit=true"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
<property name="maxActive" value="200"/>
<property name="poolPreparedStatements" value="true"/>
</bean>
<persistenceAdapter>
<!--<kahaDB directory="${activemq.base}/data/kahadb"/>-->
<jdbcPersistenceAdapter dataDirectory="${activemq.base}/data" dataSource="#mysql-ds"/>
</persistenceAdapter>
持久化订阅
//设置ClientID
connection.setClientID("scriber");
//获取持久订阅
TopicSubscriber ts = session.createDurableSubscriber(destination, "scriber");
//获取消息
TextMessage message = (TextMessage) ts.receive();
Jms的消息分为三部分:消息头、消息属性、消息体
消息头:包含了消息的客户端和提供者用来路由和识别消息的数据。
消息头包含的字段:
JMSDestination:包含了消息发往的目的地或者主题信息。
JMSDeliveryMode:消息传送模式。spring提供额jms模板提供了2种模式(有默认模式):DEFAULT_DELEVERY_MODE 默认模式、DEFAULT_PRIORITY、DEFAULT_TIME_TO_LIVE
JMSMessageID:消息标示,唯一性,每个消息都不同,即便是承载者相同消息体的消息。
JMSTimestamp:发送时间
JMSCorrelationID:与当前消息关联的其他消息的标示
JMSReplyTo:回复消息的目的地。带有这样属性的消息通常是发送方希望有一个响应,这个响应是可选的。
JMSRedelivered:带有该字段的消息通常过去发送过但是没有被确认,如果要再次发送,提供者必须设置该字段。如果true,则消息接受者必须进行消息重复处理的逻辑。
JMSType:消息类型标示。官方文档的解释:
JMSType头字段包含了由客户端在发送消息时提供的消息类型标识。一些消息提供者使用消息库来存储由应用发送的消息定义。type头字段可以引用提供者库中的消息定义。JMS没有定义一个标准的消息定义库,也没有定义这个库中所包含的各种定义的命名策略。一些消息系统要求每个被创建的应用消息都必须有一个消息类型定义,并且每个消息都指定它的类型。为了能够使JMS工作于这些消息系统提供者,无论应用是否使用,JMS客户端最好赋值JMSType ,这样可以保证为需要该头字段的提供者提供了正确的设置。为了保证移植性,JMS客户端应使用安装时在提供者消息库中定义的语义值作为JMSType的值。
JMSExpiration :过期时间。
JMSPriority:优先级。
消息属性:包括了标准投资段之外的额外添加给消息的可选的字段。比如 应用指定的属性。
消息体:消息携带的内容。
3、消息传输编程步骤
1)使用jndi获取一个ConnectionFacatory对象;
2)使用jndi获取一个或者多个Destination对象;
3)使用ConnectionFactory创建一个JMS连接;
4)使用连接创建Jms session;
5)使用session和destination创建MessageProducers和MessageConsumers
6)使用Connection进行传输消息;
文档链接
http://wenku.baidu.com/view/ebbf41d4195f312b3169a5a3.html
http://wenku.baidu.com/view/897dcbc789eb172ded63b752.html
http://blog.csdn.net/yukunzgp/article/details/2232997