有關 Message 物件中的 JMS 訊息標頭欄位清單,請參閱XMS 訊息中的標頭欄位。有關 JMS 所定義的 Message 物件內容清單, 請參閱JMS 定義的訊息內容。有關 IBM 所定義的 Message 物件內容清單,請參閱IBM 定義的訊息內容。
函數 | 說明 |
---|---|
xmsMsgAcknowledge | 確認此訊息以及階段作業所收到的所有先前未確認的訊息。 |
xmsMsgClearBody | 清除訊息的主體。 |
xmsMsgClearProperties | 清除訊息的內容。 |
xmsMsgDispose | 刪除訊息。 |
xmsMsgGetJMSCorrelationID | 取得訊息的相互關係 ID。 |
xmsMsgGetJMSDeliveryMode | 取得訊息的遞送模式。 |
xmsMsgGetJMSDestination | 取得訊息的目的地。 |
xmsMsgGetJMSExpiration | 取得訊息的有效期限。 |
xmsMsgGetJMSMessageID | 取得訊息的訊息 ID。 |
xmsMsgGetJMSPriority | 取得訊息的優先順序。 |
xmsMsgGetJMSRedelivered | 取得訊息是否正在重新遞送的指示。 |
xmsMsgGetJMSReplyTo | 取得訊息回覆將送往的目的地。 |
xmsMsgGetJMSTimestamp | 取得訊息的傳送時間。 |
xmsMsgGetJMSType | 取得訊息的類型。 |
xmsMsgGetProperties | 取得訊息的內容清單。 |
xmsMsgGetTypeId | 取得訊息的主體類型。 |
xmsMsgPropertyExists | 檢查訊息是否含有一個指定名稱的內容。 |
xmsMsgSetJMSCorrelationID | 設定訊息的相互關係 ID。 |
xmsMsgSetJMSDeliveryMode | 設定訊息的遞送模式。 |
xmsMsgSetJMSDestination | 設定訊息的目的地。 |
xmsMsgSetJMSExpiration | 設定訊息的有效期限。 |
xmsMsgSetJMSMessageID | 設定訊息的訊息 ID。 |
xmsMsgSetJMSPriority | 設定訊息的優先順序。 |
xmsMsgSetJMSRedelivered | 指出訊息是否正在重新遞送。 |
xmsMsgSetJMSReplyTo | 設定訊息回覆將送往的目的地。 |
xmsMsgSetJMSTimestamp | 設定訊息的傳送時間。 |
xmsMsgSetJMSType | 設定訊息的類型。 |
xmsRC xmsMsgAcknowledge(xmsHMsg message, xmsHErrorBlock errorBlock);
如果階段作業的確認模式為 XMSC_CLIENT_ACKNOWLEDGE, 則應用程式可呼叫這個函數。如果階段作業具有其他任何的確認模式或者為交易式, 則會忽略函數的呼叫。
已收到但未確認的訊息可能會重新遞送。
如需確認訊息的相關資訊, 請參閱在階段作業中確認收到訊息。
xmsRC xmsMsgClearBody(xmsHMsg message, xmsHErrorBlock errorBlock);
如果應用程式清除訊息主體, 該主體所處的狀態和新建訊息中的空主體一樣。新建訊息中之空主體的狀態視訊息主體的類型而定。如果需要詳細資訊,請參閱XMS 訊息的主體。
不論訊息主體處於何種狀態, 應用程式隨時都可以將它清除。如果訊息主體為唯讀, 應用程式唯一能寫入主體的方法是先清除主體。
xmsRC xmsMsgGetJMSCorrelationID(xmsHMsg message, xmsCHAR *correlID, xmsINT length, xmsINT *actualLength, xmsHErrorBlock errorBlock);
如需如何使用此函數的相關資訊, 請參閱會以值形式來傳回字串的 C 函數。
xmsRC xmsMsgGetJMSDeliveryMode(xmsHMsg message, xmsINT *deliveryMode, xmsHErrorBlock errorBlock);
取得訊息的遞送模式。遞送模式是在傳送訊息時由 xmsMsgProducerSend() 呼叫所設。
如果是尚未傳送的新建訊息,遞送模式為 XMSC_DELIVERY_PERSISTENT,但如果是和分配管理系統間的即時連線, 則遞送模式會是 XMSC_DELIVERY_NON_PERSISTENT。如果是已接收的訊息, 函數會傳回當初在傳送訊息時由 xmsMsgProducerSend() 呼叫所設的遞送模式, 除非接收端應用程式因呼叫 xmsMsgSetJMSDeliveryMode() 而變更了遞送模式。
xmsRC xmsMsgGetJMSDestination(xmsHMsg message, xmsHDest *destination, xmsHErrorBlock errorBlock);
取得訊息的目的地。目的地是在傳送訊息時由 xmsMsgProducerSend() 呼叫所設。
如果是尚未傳送的新建訊息,函數會傳回一個空值控點和 XMS_E_NOT_SET 錯誤碼, 除非傳送端應用程式因呼叫 xmsMsgSetJMSDestination() 而設定了一個目的地。如果是已接收的訊息, 函數會傳回當初在傳送訊息時由 xmsMsgProducerSend() 呼叫所設之目的地的控點, 除非接收端應用程式因呼叫 xmsMsgSetJMSDestination() 而變更了目的地。
xmsRC xmsMsgGetJMSExpiration(xmsHMsg message, xmsLONG *expiration, xmsHErrorBlock errorBlock);
有效期限是在傳送訊息時由 xmsMsgProducerSend() 呼叫所設。其值的計算方式是, 傳送端應用程式指定的存活時間加上送出訊息的時間。有效期限是以毫秒表示, 並從 1970 年 1 月 1 日 00:00:00 GMT 開始。
如果存活時間為 0, 則 xmsMsgProducerSend() 呼叫會將有效期限設為 0,表示該訊息沒有期限。
XMS 會捨棄過期的訊息,而不會遞送給應用程式。
如果是尚未傳送的新建訊息,則有效期限為 0, 除非傳送端應用程式因呼叫 xmsMsgSetJMSExpiration() 而設定了一個不同的有效期限。如果是已接收的訊息, 函數會傳回當初在傳送訊息時由 xmsMsgProducerSend() 呼叫所設的有效期限, 除非接收端應用程式因呼叫 xmsMsgSetJMSExpiration() 而變更了有效期限。
xmsRC xmsMsgGetJMSMessageID(xmsHMsg message, xmsCHAR *msgID, xmsINT length, xmsINT *actualLength, xmsHErrorBlock errorBlock);
取得訊息的訊息 ID。訊息 ID 是在傳送訊息時由 xmsMsgProducerSend() 呼叫所設。
如需如何使用此函數的相關資訊, 請參閱會以值形式來傳回字串的 C 函數。
如果是已接收的訊息, 函數會傳回當初在傳送訊息時由 xmsMsgProducerSend() 呼叫所設的訊息 ID, 除非接收端應用程式因呼叫 xmsMsgSetJMSMessageID() 而變更了訊息 ID。
xmsRC xmsMsgGetJMSPriority(xmsHMsg message, xmsINT *priority, xmsHErrorBlock errorBlock);
取得訊息的優先順序。優先順序是在傳送訊息時由 xmsMsgProducerSend() 呼叫所設。
如果是尚未傳送的新建訊息, 則優先順序為 4, 除非傳送端應用程式因呼叫 xmsMsgSetJMSPriority() 而設定了一個不同的優先順序。如果是已接收的訊息, 函數會傳回當初在傳送訊息時由 xmsMsgProducerSend() 呼叫所設的優先順序, 除非接收端應用程式因呼叫 xmsMsgSetJMSPriority() 而變更了優先順序。
xmsRC xmsMsgGetJMSRedelivered(xmsHMsg message, xmsBOOL *redelivered, xmsHErrorBlock errorBlock);
取得訊息是否正在重新遞送的指示。此指示是在接收訊息時由 xmsMsgConsumerReceive() 呼叫所設。
若為和分配管理系統間的即時連線, 此值固定是 xmsFALSE。
xmsRC xmsMsgGetJMSTimestamp(xmsHMsg message, xmsLONG *timeStamp, xmsHErrorBlock errorBlock);
取得訊息的傳送時間。時間戳記是在傳送訊息時由 xmsMsgProducerSend() 呼叫所設, 是以毫秒表示,並從 1970 年 1 月 1 日 00:00:00 GMT 開始。
如果是尚未傳送的新建訊息,則時間戳記為 0, 除非傳送端應用程式因呼叫 xmsMsgSetJMSTimestamp() 而設定了一個不同的時間戳記。如果是已接收的訊息, 函數會傳回當初在傳送訊息時由 xmsMsgProducerSend() 呼叫所設的時間戳記, 除非接收端應用程式因呼叫 xmsMsgSetJMSTimestamp() 而變更了時間戳記。
xmsRC xmsMsgGetJMSType(xmsHMsg message, xmsCHAR *type, xmsINT length, xmsINT *actualLength, xmsHErrorBlock errorBlock);
如需如何使用此函數的相關資訊, 請參閱會以值形式來傳回字串的 C 函數。
xmsRC xmsMsgGetProperties(xmsHMsg message, xmsHIterator *iterator, xmsHErrorBlock errorBlock);
此函數會傳回一個疊代子, 其中封裝了一份 Properties 物件清單。如此一來, 應用程式可使用疊代子依序存取每一個內容。
xmsRC xmsMsgGetTypeId(xmsHMsg message, xmsMESSAGE_TYPE *type, xmsHErrorBlock errorBlock);
如需訊息主體類型的相關資訊,請參閱XMS 訊息的主體。
xmsRC xmsMsgPropertyExists(xmsHMsg message, xmsCHAR *propertyName, xmsBOOL *propertyExists, xmsHErrorBlock errorBlock);
xmsRC xmsMsgSetJMSCorrelationID(xmsHMsg message, xmsCHAR *correlID, xmsINT length, xmsHErrorBlock errorBlock);
xmsRC xmsMsgSetJMSDeliveryMode(xmsHMsg message, xmsINT deliveryMode, xmsHErrorBlock errorBlock);
在傳送訊息前由此函數所設的遞送模式會被忽略, 並在傳送訊息時由 xmsMsgProducerSend() 呼叫所取代。不過,您可以使用此函數來變更已接收之訊息的遞送模式。
xmsRC xmsMsgSetJMSDestination(xmsHMsg message, xmsHDest destination, xmsHErrorBlock errorBlock);
在傳送訊息前由此函數所設的目的地會被忽略, 並在傳送訊息時由 xmsMsgProducerSend() 呼叫所取代。不過,您可以使用此函數來變更已接收之訊息的目的地。
xmsRC xmsMsgSetJMSExpiration(xmsHMsg message, xmsLONG expiration, xmsHErrorBlock errorBlock);
在傳送訊息前由此函數所設的有效期限會被忽略, 並在傳送訊息時由 xmsMsgProducerSend() 呼叫所取代。不過,您可以使用此函數來變更已接收之訊息的有效期限。
xmsRC xmsMsgSetJMSMessageID(xmsHMsg message, xmsCHAR *msgID, xmsINT length, xmsHErrorBlock errorBlock);
在傳送訊息前由此函數所設的訊息 ID 會被忽略, 並在傳送訊息時由 xmsMsgProducerSend() 呼叫所取代。不過,您可以使用此函數來變更已接收之訊息的訊息 ID。
xmsRC xmsMsgSetJMSPriority(xmsHMsg message, xmsINT priority, xmsHErrorBlock errorBlock);
在傳送訊息前由此函數所設的優先順序會被忽略, 並在傳送訊息時由 xmsMsgProducerSend() 呼叫所取代。不過,您可以使用此函數來變更已接收之訊息的優先順序。
xmsRC xmsMsgSetJMSRedelivered(xmsHMsg message, xmsBOOL redelivered, xmsHErrorBlock errorBlock);
在傳送訊息前由此函數所設的重新遞送指示會被 xmsMsgProducerSend() 呼叫忽略, 並在接收訊息時由 xmsMsgConsumerReceive() 呼叫所取代。不過,您可以使用此函數來變更已接收之訊息的指示。
xmsRC xmsMsgSetJMSTimestamp(xmsHMsg message, xmsLONG timeStamp, xmsHErrorBlock errorBlock);
在傳送訊息前由此函數所設的時間戳記會被忽略, 並在傳送訊息時由 xmsMsgProducerSend() 呼叫所取代。不過,您可以使用此函數來變更已接收之訊息的時間戳記。
xmsRC xmsMsgSetJMSType(xmsHMsg message, xmsCHAR *type, xmsINT length, xmsHErrorBlock errorBlock);