訊息的主體含有應用程式資料。不過,訊息中可以沒有主體,而純由標頭欄位和內容組成。
在 C 介面中,當應用程式建立訊息時, XMS 會將訊息控點傳給應用程式。應用程式可使用這個控點來呼叫 Message 類別的任何方法, 以及呼叫 BytesMessage、MapMessage、ObjectMessage、StreamMessage 或 TextMessage 類別的任何方法 (看何者適合該訊息主體類型)。不過,如果應用程式試著呼叫的方法不適合該訊息主體類型, 則呼叫失敗且 XMS 會傳回 XMS_E_BAD_PARAMETER 錯誤碼。
xmsMESSAGE_TYPE msgtype; xmsMsgConsumerReceive(messageConsumer, &msg, errorBlock); xmsMsgGetTypeId(msg, &msgtype, errorBlock); if (msgtype == XMS_MESSAGE_TYPE_BYTES) { xmsBytesMsgGetBodyLength(msg, &length, errorBlock); }
在 C++ 介面中,BytesMessage、MapMessage、ObjectMessage、StreamMessage 和 TextMessage 都是 Message 類別的子類別。
在 .NET 中,IMessage 介面是所有訊息物件的母項, 且可用在傳訊函數中以代表任何的 XMS 訊息類型。
為了確保 XMS 應用程式可和 WebSphere MQ JMS 應用程式交換訊息,XMS 應用程式和 WebSphere MQ JMS 應用程式必須能夠以相同方式來解譯訊息主體中的應用程式資料。基於此因,XMS 寫在訊息主體中之應用程式資料的每一個元素必須採用 表 1中所列的其中一種資料類型。下表顯示每一種 XMS 資料類型的相容 Java 資料類型。XMS 提供方法來撰寫採用這些資料類型(而且是只有這些資料類型) 的應用程式資料元素。
XMS 資料類型 | 代表 | 大小 | 相容的 Java 資料類型 |
---|---|---|---|
xmsBOOL | Boolean 值 xmsTRUE 或 xmsFALSE | 32 位元 | boolean |
xmsCHAR16 | 雙位元組字元 | 16 位元 | char |
xmsSBYTE | 帶正負號的 8 位元整數 | 8 位元 | byte |
xmsSHORT | 帶正負號的 16 位元整數 | 16 位元 | short |
xmsINT | 帶正負號的 32 位元整數 | 32 位元 | int |
xmsLONG | 帶正負號的 64 位元整數 | 64 位元 | long |
xmsFLOAT | 帶正負號的浮點數 | 32 位元 | float |
xmsDOUBLE | 帶正負號的倍精準度浮點數 | 64 位元 | double |
String | 字元字串 | - | String |
如需這五種類型的主體訊息的相關資訊,請參閱下列主題: