對 C 或 C++ 來說, 物件要遞送給 XMS 或要從中擷取的字元資料字串可能都需要進行轉換。物件的 XMSC_CLIENT_CCSID 內容會將物件所用的字碼頁告知 XMS。
當 C 或 C++ 應用程式中的物件經由 API 傳遞字元資料字串給 XMS 時, 若有必要,XMS 會將字串中的字元資料從物件所用的字碼頁, 轉換成 XMS 要求資料所需採用的字碼頁。同樣地, 當物件經由 API 接收 XMS 中的字元資料字串時, 若有必要,XMS 會將字串中的字元資料從資料目前所用的字碼頁, 轉換成該物件所用的字碼頁。因此,為了轉換字串中的字元資料, XMS 必須知道物件目前所用的是哪種字碼頁。
ConnectionFactory、Connection、Session、MessageProducer 或 MessageConsumer 物件的 XMSC_CLIENT_CCSID 內容會指定物件目前所用的字碼頁。XMSC_CLIENT_CCSID 內容的值為一個會識別字碼頁的編碼字集 ID (CCSID)。XMS 會在應用程式建立這些物件之一時設定內容, 但應用程式可在之後變更其值。
當應用程式啟動時,XMS 會從應用程式執行所在的環境, 衍生適合應用程式的 CCSID。這個 CCSID 稱為 程序 CCSID。應用程式可呼叫 xmsSetClientCCSID() 隨時變更程序 CCSID。這是一個不屬於任何類別的 C 函數, 但 C++ 應用程式也可以使用該函數。
當應用程式建立 Connection Factory 時,XMS 會設定該物件的 XMSC_CLIENT_CCSID 內容。如果 Connection Factory 是從擷取自受管理物件儲存庫的物件定義來建立, 且物件定義有指定 XMSC_CLIENT_CCSID 內容的值, 則 XMS 會採用此值來設定內容。否則,XMS 會將內容設為特殊值 XMSC_CCSID_PROCESS,表示該 Connection Factory 所用的是程序 CCSID 所識別的字碼頁。
當應用程式使用 Connection Factory 來建立連線時, XMS 會將 ConnectionFactory 物件的 XMSC_CLIENT_CCSID 內容複製到新建的 Connection 物件中。 XMS 只會在應用程式建立連線時才會複製內容。如果之後應用程式變更 ConnectionFactory 物件的 XMSC_CLIENT_CCSID 內容值, XMS 並不會將該項變更傳送到 Connection 物件的 XMSC_CLIENT_CCSID 內容中。
同樣地,當應用程式使用連線來建立階段作業時,XMS 會將 Connection 物件的 XMSC_CLIENT_CCSID 內容複製到新建的 Session 物件中。而當應用程式使用階段作業來建立訊息生產者或訊息使用端時, XMS 會將 Session 物件的 XMSC_CLIENT_CCSID 內容複製到新建的 MessageProducer 或 MessageConsumer 物件中。在這些情況中, XMS 都只會在應用程式建立物件時才會複製內容。
這是一個特殊的內容值, 而不是實際的 CCSID。
這是一個特殊的內容值, 而不是實際的 CCSID。
這是一個特殊的內容值, 而不是實際的 CCSID。
當 XMS 需要轉換送出訊息中的字串時, XMS 會使用建立該訊息之階段作業的相關聯字碼頁。當 XMS 需要轉換送入訊息中的字串時, XMS 會使用接收該訊息之訊息使用端的相關聯字碼頁。XMS 會從相關 Session 或 MessageConsumer 物件的 XMSC_CLIENT_CCSID 內容值來判斷字碼頁。