以 COBOL 撰寫程式碼

在 COBOL 中編碼 IBM® MQ 程式時,請注意下列區段中的資訊。

具名常數

會顯示常數名稱,其中包含底線字元 (_) 作為名稱的一部分。 在 COBOL 中,您必須使用連字號字元 (-) 來取代底線。 具有字串值的常數使用單引號字元 (') 作為字串定界字元。 若要讓編譯器接受此字元,請使用編譯器選項 APOST。

複製檔案 CMQV 包含已命名常數的宣告作為 level-10 項目。 若要使用常數,請明確宣告 level-01 項目,然後使用 COPY 陳述式複製常數的宣告:


WORKING-STORAGE SECTION.
01 MQM-CONSTANTS.
COPY CMQV.

然而,此方法會導致常數佔用程式中的儲存體,即使未參照它們也一樣。 如果常數包含在相同執行單元內的許多個別程式中,則會存在多個常數副本; 這可能會導致使用大量主儲存體。 您可以透過將 GLOBAL 子句新增至 level-01 宣告來避免此情況:


* Declare a global structure to hold the constants
01 MQM-CONSTANTS GLOBAL.
COPY CMQV.

這只會配置執行單元內 一組 常數的儲存體; 不過,執行單元內的 任何 程式都可以參照這些常數,而不只是包含 level-01 宣告的程式。

確保結構對齊

請小心確保傳遞以在 MQ 呼叫上啟動的 IBM MQ 結構必須在單字界限上對齊。 單字界限是 32 位元處理程序的 4 個位元組, 64 位元處理程序的 8 個位元組, 128 位元處理程序的 16 個位元組 ( IBM i )。

可能的話,將所有 IBM MQ 結構放在一起,使它們全部對齊。