Sun Java System Message Queue 3.7 UR1 技術摘要

訊息標頭

每個 JMS 訊息都需要標頭。標頭含有 10 個預先定義的欄位,列出在表 2–3 中加以說明。

表 2–3 JMS 定義的訊息標頭

標頭欄位 

說明 

JMSDestination

指定訊息傳送所至之目標物件的名稱。(由提供者設定。)

JMSDeliveryMode

指定訊息是否具有永久性。(預設是由提供者所設定,或由產生器或個別訊息的用戶端明確設定。)

JMSExpiration

指定訊息的過期時間。(預設是由提供者所設定,或由產生器或個別訊息的用戶端設定。)

JMSPriority

指定介於 0 (低) 至 9 (高) 之間的訊息優先權。(預設是由提供者所設定,或由產生器或個別訊息的用戶端明確設定。)

JMSMessageID

指定提供者安裝環境內之訊息的唯一 ID。(由提供者設定。)

JMSTimestamp

指定提供者接收訊息的時間。(由提供者設定。)

JMSCorrelationID

供用戶端定義兩訊息間一致性的值。(必要時由用戶端設定。)

JMSReplyTo

指定用戶傳送回覆所至的目標。(必要時由用戶端設定。)

JMSType

可由訊息選擇器評估的值。(必要時由用戶端設定。)

JMSRedelivered

指定訊息是否已傳送但尚未確認。(由提供者設定。)

如您在閱讀此表格時所見,訊息標頭欄位具有多種用途:識別訊息、配置訊息路由、提供訊息處理的相關資訊等。

JMSDeliveryMode 是最重要的欄位之一,可決定訊息傳送的可靠性。此欄位可指出訊息是否具有永久性。

某些訊息標頭欄位是由提供者 (代理程式或用戶端執行階段) 設定,某些則是由用戶端設定。訊息產生器必須配置標頭值,才能取得特定的訊息傳送運作方式;而訊息用戶則必須讀取欄位值,才能夠瞭解路由訊息的方式,以及訊息可能需要的進一步處理。

標頭欄位 (JMSDeliveryModeJMSExpirationJMSPriority) 可設定為三種不同的層級:

如果這些欄位不只設在一個層級上,則連線工廠的設定值便會置換個別訊息的設定值;特定訊息的設定值則會置換訊息產生器的設定值。

訊息標頭欄位的常數名稱則會隨所用語言而有所不同。如需更多資訊,請參閱「Sun Java System Message Queue 3.7 UR1 Developer’s Guide for Java Clients」「Sun Java System Message Queue 3.7 UR1 Developer’s Guide for C Clients」