activeMQ-JMS備忘錄

點擊打開鏈接消息持久化
    <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消息模型

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




發佈了6 篇原創文章 · 獲贊 0 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章