WebSphere Message Service Clients for C/C++ and .NET, Version 1.2 作業系統: Linux, Windows

IMessage

Message 物件代表應用程式所傳送或接收的一則訊息。IMessage 是 IMapMessage 等訊息類別的超類別。

繼承階層:
IBM.XMS.IPropertyContext
   |
   +----IBM.XMS.IMessage

有關 Message 物件中的 JMS 訊息標頭欄位清單,請參閱XMS 訊息中的標頭欄位。有關 JMS 所定義的 Message 物件內容清單, 請參閱JMS 定義的訊息內容。有關 IBM 所定義的 Message 物件內容清單,請參閱IBM 定義的訊息內容

訊息會由記憶體回收器刪除。當刪除訊息時, 會釋放它所用的資源。

相關參考
XMS 訊息

.NET 內容

.NET 內容摘要:
.NET 內容 說明
JMSCorrelationID 以 String 物件形式取得和設定訊息的相互關係 ID。
JMSDeliveryMode 取得和設定訊息的遞送模式。
JMSDestination 取得和設定訊息的目的地。
JMSExpiration 取得和設定訊息的有效期限。
JMSMessageID 以封裝訊息 ID 的 String 物件形式,取得和設定訊息的訊息 ID。
JMSPriority 取得和設定訊息的優先順序。
JMSRedelivered 取得訊息是否正在重新遞送的指示, 並指出訊息是否正在重新遞送。
JMSReplyTo 取得和設定訊息回覆將送往的目的地。
JMSTimestamp 取得和設定訊息的傳送時間。
JMSType 取得和設定訊息的類型。
PropertyNames 取得訊息之名稱內容的列舉表。

GetJMSCorrelationID – 取得和設定 JMSCorrelationID

介面:
String JMSCorrelationID
{
  get;
  set;
}

以 String 物件形式取得和設定訊息的相互關係 ID。

異常狀況:
  • XMSException

JMSDeliveryMode – 取得和設定 JMSDeliveryMode

介面:
DeliveryMode JMSDeliveryMode
{
  get;
  set;
}

取得和設定訊息的遞送模式。

訊息的遞送模式值可為下列之一:

  • DeliveryMode.Persistent
  • DeliveryMode.NonPersistent

如果是尚未傳送的新建訊息,遞送模式為 DeliveryMode.Persistent,但如果是和分配管理系統間的即時連線, 則遞送模式會是 DeliveryMode.NonPersistent。如果是已接收的訊息, 方法會傳回當初在傳送訊息時由 IMessageProducer.send() 呼叫所設的遞送模式, 除非接收端應用程式因設定 JMSDeliveryMode 而變更了遞送模式。

異常狀況:
  • XMSException

JMSDestination – 取得和設定 JMSDestination

介面:
IDestination JMSDestination
{
  get;
  set;
}

取得和設定訊息的目的地。

目的地是在傳送訊息時由 IMessageProducer.send() 呼叫所設。會忽略 JMSDestination 的值。不過, 您可以使用 JMSDestination 來變更已接收之訊息的目的地。

如果是尚未傳送的新建訊息, 方法會傳回一個空值 Destination 物件, 除非傳送端應用程式因設定 JMSDestination 而設定了一個目的地。如果是已接收的訊息, 方法會傳回當初在傳送訊息時由 IMessageProducer.send() 呼叫所設之目的地的 Destination 物件, 除非接收端應用程式因設定 JMSDestination 而變更了目的地。

異常狀況:
  • XMSException

JMSExpiration – 取得和設定 JMSExpiration

介面:
Int64 JMSExpiration
{
  get;
  set;
}

取得和設定訊息的有效期限。

有效期限是在傳送訊息時由 IMessageProducer.send() 呼叫所設。其值的計算方式是, 傳送端應用程式指定的存活時間加上送出訊息的時間。有效期限是以毫秒表示, 並從 1970 年 1 月 1 日 00:00:00 GMT 開始。

如果是尚未傳送的新建訊息,則有效期限為 0, 除非傳送端應用程式因設定 JMSExpiration 而設定了一個不同的有效期限。如果是已接收的訊息, 方法會傳回當初在傳送訊息時由 IMessageProducer.send() 呼叫所設的有效期限, 除非接收端應用程式因設定 JMSExpiration 而變更了有效期限。

如果存活時間為 0, 則 IMessageProducer.send() 呼叫會將有效期限設為 0,表示該訊息沒有期限。

XMS 會捨棄過期的訊息,而不會遞送給應用程式。

異常狀況:
  • XMSException

JMSMessageID – 取得和設定 JMSMessageID

介面:
String JMSMessageID
{
  get;
  set;
}

以封裝訊息 ID 的 String 物件形式,取得和設定訊息的訊息 ID。

訊息 ID 是在傳送訊息時由 IMessageProducer.send() 呼叫所設。如果是已接收的訊息, 方法會傳回當初在傳送訊息時由 IMessageProducer.send() 呼叫所設的訊息 ID, 除非接收端應用程式因設定 JMSMessageID 而變更了訊息 ID。

如果訊息沒有訊息 ID,則方法會擲出一個空值。

異常狀況:
  • XMSException

JMSPriority – 取得和設定 JMSPriority

介面:
Int32 JMSPriority
{
  get;
  set;
}

取得和設定訊息的優先順序。

優先順序是在傳送訊息時由 IMessageProducer.send() 呼叫所設。此值為一個 0(最低優先順序)到 9(最高優先順序)範圍間的整數。

如果是尚未傳送的新建訊息, 則優先順序為 4, 除非傳送端應用程式因設定 JMSPriority 而設定了一個不同的優先順序。如果是已接收的訊息, 方法會傳回當初在傳送訊息時由 IMessageProducer.send() 呼叫所設的優先順序, 除非接收端應用程式因設定 JMSPriority 而變更了優先順序。

異常狀況:
  • XMSException

JMSRedelivered – 取得和設定 JMSRedelivered

介面:
Boolean JMSRedelivered
{
  get;
  set;
}

取得訊息是否正在重新遞送的指示, 並指出訊息是否正在重新遞送。此指示是在接收訊息時由 IMessageConsumer.receive() 呼叫所設。

這個內容的值可為:

  • 如果正在重新遞送訊息,則為 True
  • 如果並未重新遞送訊息,則為 False

若為和分配管理系統間的即時連線, 此值一律是 False

在傳送訊息前由 JMSRedelivered 所設的重新遞送指示會被 IMessageProducer.send() 呼叫忽略, 並在接收訊息時由 IMessageConsumer.receive() 呼叫所取代。不過,您可以使用 JMSRedelivered 來變更已接收之訊息的指示。

異常狀況:
  • XMSException

JMSReplyTo – 取得和設定 JMSReplyTo

介面:
IDestination JMSReplyTo
{
  get;
  set;
}

取得和設定訊息回覆將送往的目的地。

這個內容的值為訊息回覆將送往之目的地的 Destination 物件。空值 Destination 物件表示不預期會有回覆。

異常狀況:
  • XMSException

JMSTimestamp – 取得和設定 JMSTimestamp

介面:
Int64 JMSTimestamp
{
  get;
  set;
}

取得和設定訊息的傳送時間。

時間戳記是在傳送訊息時由 IMessageProducer.send() 呼叫所設, 是以毫秒表示,並從 1970 年 1 月 1 日 00:00:00 GMT 開始。

如果是尚未傳送的新建訊息,則時間戳記為 0, 除非傳送端應用程式因設定 JMSTimestamp 而設定了一個不同的時間戳記。如果是已接收的訊息, 方法會傳回當初在傳送訊息時由 IMessageProducer.send() 呼叫所設的時間戳記, 除非接收端應用程式因設定 JMSTimestamp 而變更了時間戳記。

異常狀況:
  • XMSException
附註:
  1. 如果未定義時間戳記,則方法會傳回 0,但不會傳回任何異常狀況。

JMSType – 取得和設定 JMSType

介面:
String JMSType
{
  get;
  set;
}

取得和設定訊息的類型。

JMSType 的值為一個封裝訊息類型的字串。如果需要轉換資料, 則此為轉換後的類型。

異常狀況:
  • XMSException

PropertyNames – 取得內容

介面:
System.Collections.IEnumerator PropertyNames
{
  get;
}

取得訊息之名稱內容的列舉表。

異常狀況:
  • XMSException

方法

方法摘要:
方法 說明
Acknowledge 確認此訊息以及階段作業所收到的所有先前未確認的訊息。
ClearBody 清除訊息的主體。
ClearProperties 清除訊息的內容。
PropertyExists 檢查訊息是否含有一個指定名稱的內容。

Acknowledge – 確認

介面:
void  Acknowledge();

確認此訊息以及階段作業所收到的所有先前未確認的訊息。

如果階段作業的確認模式為 AcknowledgeMode.ClientAcknowledge, 則應用程式可呼叫這個方法。如果階段作業具有其他任何的確認模式或者為交易式, 則會忽略方法的呼叫。

已收到但未確認的訊息可能會重新遞送。

如需確認訊息的相關資訊, 請參閱在階段作業中確認收到訊息

參數:
傳回:
Void
異常狀況:
  • XMSException
  • IllegalStateException

ClearBody – 清除主體

介面:
void  ClearBody();

清除訊息的主體。標頭欄位和訊息內容不會清除。

如果應用程式清除訊息主體, 該主體所處的狀態和新建訊息中的空主體一樣。新建訊息中之空主體的狀態視訊息主體的類型而定。如果需要詳細資訊,請參閱XMS 訊息的主體

不論訊息主體處於何種狀態, 應用程式隨時都可以將它清除。如果訊息主體為唯讀, 應用程式唯一能寫入主體的方法是先清除主體。

參數:
傳回:
Void
異常狀況:
  • XMSException

ClearProperties – 清除內容

介面:
void  ClearProperties();

清除訊息的內容。標頭欄位和訊息主體不會清除。

如果應用程式清除訊息的內容, 則內容即變成可讀寫。

不論訊息內容處於何種狀態, 應用程式隨時都可以將它清除。如果訊息內容為唯讀, 唯一可將內容變成可寫入的方法是先讓應用程式清除內容。

參數:
傳回:
Void
異常狀況:
  • XMSException

PropertyExists – 檢查內容是否存在

介面:
Boolean PropertyExists(String propertyName);

檢查訊息是否含有一個指定名稱的內容。

參數:
propertyName(輸入)
封裝內容名稱的 String 物件。
傳回:
  • 如果訊息含有一個指定名稱的內容,則為 True
  • 如果訊息沒有一個指定名稱的內容,則為 False
異常狀況:
  • XMSException

繼承的內容和方法


Reference topic

使用條款 | 評比此網頁

時間戳記前次更新: 25 Apr 2006
(C) Copyright IBM Corporation 2005. All Rights Reserved.
本資訊中心採用 Eclipse 技術。(http://www.eclipse.org)