1:JMSDestination:由send方法設置服務器
消息發送的目的地:主要是指Queue和Topic,自動分配ide
2:JMSDeliveryMode:由send方法設置事務
傳送模式。有兩種 :持久模式和非持久模式。一條持久性的
消息應該被傳送「一次僅僅一次」,這就意味者若是JMS提供者出現故障,該消
息並不會丟失,它會在服務器恢復以後再次傳遞。一條非持久的消息最多會傳送
一次,這意味這服務器出現故障,該消息將永遠丟失。自動分配路由
3:JMSExpiration:由send方法設置開發
消息過時時間,等於 Destination 的send 方法中的
timeToLive值加上發送時刻的GMT 時間值。若是timeToLive 值等於零,則
JMSExpiration 被設爲零,表示該消息永不過時。若是發送後,在消息過時時間
以後消息尚未被髮送到目的地,則該消息被清除。自動分配get
4:JMSPriority:由send方法設置it
消息優先級,從 0-9 十個級別,0-4 是普通消息,5-9 是加急消
息。JMS 不要求JMS Provider 嚴格按照這十個優先級發送消息,但必須保證加
急消息要先於普通消息到達。默認是4級。自動分配io
5:JMSMessageID:由send方法設置程序
惟一識別每一個消息的標識,由JMS Provider 產生。自動分配方法
6:JMSTimestamp:由客戶端設置
一個JMS Provider在調用send()方法時自動設置的。它是消息被
發送和消費者實際接收的時間差。自動分配
7:JMSCorrelationID :由客戶端設置
用來鏈接到另一個消息,典型的應用是在回覆消息中鏈接
到原消息。在大多數狀況下,JMSCorrelationID用於將一條消息標記爲對
JMSMessageID標示的上一條消息的應答,不過,JMSCorrelationID能夠是任何
值,不單單是JMSMessageID。由開發者設置
8:JMSReplyTo :由客戶端設置
提供本消息回覆消息的目的地址。由開發者設置
9:JMSType :由客戶端設置
消息類型的識別符。由開發者設置
10:JMSRedelivered:由JMS Provider設置
若是一個客戶端收到一個設置了JMSRedelivered屬性的消
息,則表示可能客戶端曾經在早些時候收到過該消息,但並無簽收
(acknowledged)。若是該消息被從新傳送,JMSRedelivered=true反之,
JMSRedelivered =false。自動設置
JMS API定義了5種消息體格式,也叫消息類型,可使用不一樣形式發送
接收數據,並能夠兼容現有的消息格式。包括:
TextMessage
MapMessage
BytesMessage
StreamMessage
ObjectMessage
1:應用程序設置和添加的屬性,好比:
Message.setStringProperty(「username」,username);
2:JMS定義的屬性
使用「JMSX」做爲屬性名的前綴,
connection.getMetaData().getJMSXPropertyNames(), 方法返回全部鏈接支持的JMSX 屬性的名字。
3:JMS供應商特定的屬性
JMSXUserID:發送消息的用戶標識,發送時提供商設置
JMSXAppID:發送消息的應用標識,發送時提供商設置
JMSXDeliveryCount:轉發消息重試次數,第一次是1,第二次是2,… ,發送時提供商設置
JMSXGroupID:消息所在消息組的標識,由客戶端設置
JMSXGroupSeq:組內消息的序號第一個消息是1,第二個是2,…,由客戶端設置
JMSXProducerTXID :產生消息的事務的事務標識,發送時提供商設置
JMSXConsumerTXID :消費消息的事務的事務標識,接收時提供商設置
JMSXRcvTimestamp :JMS 轉發消息到消費者的時間,接收時提供商設置
JMSXState:假定存在一個消息倉庫,它存儲了每一個消息的單獨拷貝,且這些消 息從原始消息被髮送時開始。每一個拷貝的狀態有:1(等待),2(準備),3 (到期)或4(保留)。因爲狀態與生產者和消費者無關,因此它不是由它們來 提供。它只和在倉庫中查找消息相關,所以JMS沒有提供這種API。由提供商設置