IMessage
訊息物件代表應用程式傳送或接收的訊息。 IMessage 是訊息類別的超類別,例如 IMapMessage。
- 繼承階層:
IBM.XMS.IPropertyContext | +----IBM.XMS.IMessage
如需訊息物件中 JMS 訊息標頭欄位的清單,請參閱 XMS 訊息的標頭欄位。 如需訊息物件的 JMS 定義內容清單,請參閱 訊息的 JMS 定義內容。 如需訊息物件的 IBM® 定義內容清單,請參閱 IBM定義的訊息內容。 如需 Message 物件的 JMS_IBM_MQMD* 內容清單,請參閱 JMS_IBM_MQMD* 內容
記憶體回收器會刪除訊息。 當刪除訊息時,這會釋放它所使用的資源。
.NET 內容
- .NET 內容的摘要:
.NET 內容 (property) 說明 JMSCorrelationID 取得並將訊息的相關性 ID 設為 String 物件。 JMSDeliveryMode 取得並設定訊息的遞送模式。 JMSDestination 取得並設定訊息的目的地。 JMSExpiration 取得並設定訊息的有效期限。 JMSMessageID 取得訊息 ID 並將訊息 ID 設為封裝訊息 ID 的字串物件。 JMSPriority 取得並設定訊息的優先順序。 JMSRedelivered 取得是否正在重新遞送訊息的指示,並指出是否正在重新遞送訊息。 JMSReplyTo 取得並設定要傳送訊息回覆的目的地。 JMSTimestamp 取得並設定傳送訊息的時間。 JMSType 取得並設定訊息的類型。 PropertyNames 取得訊息名稱內容的列舉。
GetJMSCorrelationID-取得並設定 JMSCorrelationID
- 介面:
String JMSCorrelationID { get; set; }
取得並將訊息的相關性 ID 設為 String 物件。
- 異常狀況:
- XMSException
JMSDeliveryMode -取得並設定 JMSDeliveryMode
- 介面:
DeliveryMode JMSDeliveryMode { get; set; }
取得並設定訊息的遞送模式。
訊息的遞送模式是下列其中一個值:
DeliveryMode.PersistentDeliveryMode.NonPersistent
對於未傳送的新建立訊息,遞送模式為 DeliveryMode。持續性,但與分配管理系統的即時連線除外,該分配管理系統的遞送模式為 DeliveryMode.NonPersistent。 對於收到的訊息,此方法會傳回傳送訊息時 IMessageProducer.send () 呼叫所設定的遞送模式,除非接收端應用程式透過設定 JMSDeliveryMode來變更遞送模式。
- 異常狀況:
- XMSException
JMSDestination-取得及設定 JMSDestination
- 介面:
IDestination JMSDestination { get; set; }
取得並設定訊息的目的地。
傳送訊息時,由 IMessageProducer.send () 呼叫設定目的地。 會忽略 JMSDestination 的值。 不過,您可以使用 JMSDestination 來變更所接收訊息的目的地。
對於未傳送的新建立訊息,除非傳送應用程式透過設定 JMSDestination 來設定目的地,否則此方法會傳回空值 Destination 物件。 對於收到的訊息,除非接收端應用程式透過設定 JMSDestination 來變更目的地,否則此方法會傳回 IMessageProducer.send () 呼叫所設定之目的地的 Destination 物件。
- 異常狀況:
- XMSException
JMSExpiration-取得並設定 JMSExpiration
- 介面:
Int64 JMSExpiration { get; set; }
取得並設定訊息的有效期限。
當傳送訊息時, IMessageProducer.send () 呼叫會設定有效期限。 其值的計算方式是將傳送應用程式指定的存活時間加上傳送訊息的時間。 有效期限以 1970 年 1 月 1 日 00:00:00 GMT 開始的毫秒數表示。
對於未傳送的新建立訊息,除非傳送應用程式透過設定 JMSExpiration 來設定不同的有效期限,否則有效期限為 0。 對於收到的訊息,此方法會傳回傳送訊息時由 IMessageProducer.send () 呼叫所設定的有效期限,除非接收端應用程式透過設定 JMSExpiration 來變更有效期限。
如果存活時間為 0 , IMessageProducer.send () 呼叫會將有效期限設為 0 ,以指出訊息不會到期。
XMS 會捨棄過期訊息,且不會將它們遞送至應用程式。
- 異常狀況:
- XMSException
JMSMessageID -取得並設定 JMSMessageID
- 介面:
String JMSMessageID { get; set; }
取得訊息 ID 並將訊息 ID 設為封裝訊息 ID 的字串物件。
訊息 ID 是在傳送訊息時由 IMessageProducer.send () 呼叫所設定。 對於收到的訊息,除非接收端應用程式設定 JMSMessageID來變更訊息 ID ,否則方法會傳回 IMessageProducer.send () 呼叫在傳送訊息時所設定的訊息 ID。
如果訊息沒有訊息 ID ,方法會傳回空值。
- 異常狀況:
- XMSException
JMSPriority-取得及設定 JMSPriority
- 介面:
Int32 JMSPriority { get; set; }
取得並設定訊息的優先順序。
傳送訊息時, IMessageProducer.send () 呼叫會設定優先順序。 該值是 0(最低優先順序) 到 9(最高優先順序) 範圍內的整數。
對於未傳送的新建立訊息,除非傳送端應用程式透過設定 JMSPriority 來設定不同的優先順序,否則優先順序為 4 。 對於收到的訊息,除非接收端應用程式透過設定 JMSPriority 來變更優先順序,否則此方法會傳回傳送訊息時 IMessageProducer.send () 呼叫所設定的優先順序。
- 異常狀況:
- XMSException
JMSRedelivered-取得和設定 JMSRedelivered
- 介面:
Boolean JMSRedelivered { get; set; }
取得是否正在重新遞送訊息的指示,並指出是否正在重新遞送訊息。 當收到訊息時, IMessageConsumer.receive () 呼叫會設定此指示。
此內容具有下列值:
True(如果正在重新遞送訊息)。False(如果未重新遞送訊息)。
對於與分配管理系統的即時連線,該值一律為 False。
當傳送訊息時, IMessageProducer.send () 呼叫會忽略 JMSRedelivered 所設定的重新遞送指示,當接收訊息時,會忽略並取代為 IMessageConsumer.receive () 呼叫。 不過,您可以使用 JMSRedelivered 來變更所收到訊息的指示。
- 異常狀況:
- XMSException
JMSReplyTo -取得並設定 JMSReplyTo
- 介面:
IDestination JMSReplyTo { get; set; }
取得並設定要傳送訊息回覆的目的地。
此內容的值是要傳送訊息回覆之目的地的「目的地」物件。 空值 Destination 物件表示沒有預期的回覆。
- 異常狀況:
- XMSException
JMSTimestamp-取得並設定 JMSTimestamp
- 介面:
Int64 JMSTimestamp { get; set; }
取得並設定傳送訊息的時間。
時間戳記是在傳送訊息時由 IMessageProducer.send () 呼叫所設定,並以自 1970 年 1 月 1 日 00:00:00 GMT 以來的毫秒數表示。
對於未傳送的新建立訊息,除非傳送應用程式透過設定 JMSTimestamp 來設定不同的時間戳記,否則時間戳記為 0。 對於收到的訊息,此方法會傳回傳送訊息時 IMessageProducer.send () 呼叫所設定的時間戳記,除非接收端應用程式透過設定 JMSTimestamp 來變更時間戳記。
- 異常狀況:
- XMSException
- 如果未定義時間戳記,則方法會傳回 0 ,但不會擲出異常狀況。
JMSType-取得並設定 JMSType
- 介面:
String JMSType { get; set; }
取得並設定訊息的類型。
JMSType 的值是封裝訊息類型的字串。 如果需要資料轉換,則此值是轉換之後的類型。
- 異常狀況:
- XMSException
PropertyNames -取得內容
- 介面:
System.Collections.IEnumerator PropertyNames { get; }
取得訊息名稱內容的列舉。
- 異常狀況:
- XMSException
方法
- 方法摘要:
方法 說明 確認 確認此訊息及階段作業收到所有先前未確認的訊息。 ClearBody 清除訊息內文。 ClearProperties 清除訊息的內容。 PropertyExists 檢查訊息是否具有具有指定名稱的內容。
確認-確認
- 介面:
void Acknowledge();
確認此訊息及階段作業收到所有先前未確認的訊息。
如果階段作業的確認通知模式為 AcknowledgeMode.ClientAcknowledge,則應用程式可以呼叫此方法。 如果階段作業具有任何其他確認模式或已進行交易,則會忽略對方法的呼叫。
已收到但未確認的訊息可能會重新遞送。
如需確認訊息的相關資訊,請參閱 ../com.ibm.mq.dev.doc/xms_cmesack.html#xms_cmesack。
- 參數:
- 無
- 傳回:
- 無效
- 異常狀況:
- XMSException
- IllegalState異常狀況
ClearBody -清除內文
- 介面:
void ClearBody();
清除訊息內文。 不會清除標頭欄位和訊息內容。
如果應用程式清除訊息內文,則內文會與新建立訊息中的空內文保持相同狀態。 新建立的訊息中空內文的狀態取決於訊息內文的類型。 如需相關資訊,請參閱 XMS 訊息的內文。
不論訊息內文處於何種狀態,應用程式都可以隨時清除訊息內文。 如果訊息內文是唯讀的,應用程式寫入內文的唯一方式是讓應用程式先清除內文。
- 參數:
- 無
- 傳回:
- 無效
- 異常狀況:
- XMSException
ClearProperties -清除內容
- 介面:
void ClearProperties();
清除訊息的內容。 未清除標頭欄位及訊息內文。
如果應用程式清除訊息的內容,內容會變成可讀取及可寫入。
不論內容處於何種狀態,應用程式都可以隨時清除訊息的內容。 如果訊息的內容是唯讀的,則內容變成可寫入的唯一方式是讓應用程式先清除內容。
- 參數:
- 無
- 傳回:
- 無效
- 異常狀況:
- XMSException
PropertyExists -檢查內容存在
- 介面:
Boolean PropertyExists(String propertyName);
檢查訊息是否具有具有指定名稱的內容。
- 參數:
- propertyName (輸入)
- 封裝內容名稱的 String 物件。
- 傳回:
True(如果訊息具有具有指定名稱的內容)。False(如果訊息沒有具有指定名稱的內容)。
- 異常狀況:
- XMSException
繼承的內容和方法
- GetBooleanProperty, GetByteProperty, GetBytesProperty, GetCharProperty, GetDoubleProperty, GetFloatProperty, GetIntProperty, GetLongProperty, GetObjectProperty, GetShortProperty, GetStringProperty, SetBooleanProperty, SetByteProperty, SetBytesProperty, SetCharProperty, SetDoubleProperty, SetFloatProperty, SetIntProperty, SetLongProperty, SetObjectProperty, SetShortProperty, SetStringProperty