ACSAPI
ACSAPIは、ACS(Application Control Support system)アプリケーションでメッセージを処理するための機能です。本付録では、現在OpenFrame AIMがサポートしているACSAPIの各コマンドと使用方法について説明します。
1. MSGGET
MSGGETはワークステーションで入力されたメッセージを受信するコマンドとして、受信メッセージがアプリケーションの入力メッセージ領域に通知されます。
以下は、ACSAPIコマンドの使用例です。
WORKING-STORAGE SECTION. 01 SYNC-DCOM. COPY COBSDCOM. 01 IN-DATA. 02 FILLER PIC S9(5) COMP VALUE 128. 02 FILLER PIC S9(5) COMP VALUE 0. 02 DATA PIC X(128). COPY CBACSAPI. 01 ACSSPA PIC X(128). ... PROCEDURE DIVISION. CALL 'ACSAPI' USING MSGGET SYNC-DCOM IN-DATA ACSSPA.
-
呼び出し形式
CALL 'ACSAPI' MSGGET, DCOM, 入力メッセージ領域[, ACSSPA].
-
パラメータ
以下は、MSGGETコマンドを使用する場合に設定するパラメータの説明です。
パラメータ 説明 MSGGET
MSGGETコマンドのマクロ値である「MSGGET」を指定します。
DCOM
アプリケーションのAPI通信領域としてSYNC-DCOMとASYNC-DCOMのいずれかを指定します。
-
SYNC-DCOM : 制御権がある通信の場合に指定します。アプリケーションに必ず1つ以上含める必要があります。
-
ASYNC-DCOM : 制御権がない通信の場合に指定し、必要なだけ記述します。
入力メッセージ領域
AIMから受信したデータを格納するメッセージ領域名を指定します。
SPA
SYNC-DCOMを使用する場合、SPAデータを格納する領域名を指定します。
-
SYNC-DCOMの場合、SPA領域は省略できます。
-
ASYNC-DCOMの場合、SPA領域を指定できません。
-
2. MSGPUT
MSGPUTは、アプリケーションで処理したメッセージをワークステーションに送信するコマンドです。アプリケーションの出力メッセージ領域に格納された内容がワークステーションに出力されます。
以下は、MSGPUTコマンドの使用例です。
WORKING-STORAGE SECTION. 01 SYNC-DCOM. COPY COBSDCOM. 01 OUT-DATA. 02 FILLER PIC S9(5) COMP VALUE 128. 02 FILLER PIC S9(5) COMP VALUE 0. 02 DATA PIC X(128). COPY CBACSAPI. 01 ACSSPA PIC X(128). ... PROCEDURE DIVISION. MOVE SPACE TO SMODE OF SYNC-DCOM. MOVE SPACE TO OPTC OF SYNC-DCOM. MOVE 'FMT001' TO FMID OF SYNC-DCOM. CALL 'ACSAPI' USING MSGPUT SYNC-DCOM OUT-DATA ACSSPA.
-
呼び出し形式
CALL 'ACSAPI' MSGPUT, DCOM, 出力メッセージ領域[, ACSSPA].
-
パラメータ
以下は、MSGPUTコマンドを使用する場合に設定するパラメータの説明です。
パラメータ 説明 MSGPUT
MSGPUTコマンドのマクロ値である「MSGPUT」を指定します。
DCOM
アプリケーションのAPI通信領域としてSYNC-DCOMを指定します。
-
SYNC-DCOM : 制御権がある通信の場合に指定します。
-
ASYNC-DCOM : 制御権がない通信に指定するため、使用してはなりません。
出力メッセージ領域
送信するデータが格納されているメッセージ領域名を指定します。
SPA
SYNC-DCOMを使用する場合、ワークステーションに送信するSPAデータ領域の名前を指定します。
-
SPA領域は省略可能です。
-
セッションの終了時、DCOMのSPALに-1を設定します。
-
3. SWITCH
SWITCHは、アプリケーション間の通信を行うコマンドです。アプリケーションの出力メッセージ領域の内容が他のアプリケーションの入力メッセージ領域に送信されます。
以下は、SWITCHコマンドの使用例です。
WORKING-STORAGE SECTION. 01 SYNC-DCOM. COPY COBSDCOM. 01 OUT-DATA. 02 FILLER PIC S9(5) COMP VALUE 128. 02 FILLER PIC S9(5) COMP VALUE 0. 02 DATA PIC X(128). COPY CBACSAPI. 01 ACSSPA PIC X(128). ... PROCEDURE DIVISION. MOVE 'APL001' TO NAME OF SYNC-DCOM. MOVE 24 TO MSGL OF SYNC-DCOM. MOVE SPACE TO OPTC OF SYNC-DCOM. CALL 'ACSAPI' USING SWITCH SYNC-DCOM OUT-DATA ACSSPA.
-
呼び出し形式
CALL 'ACSAPI' SWITCH, DCOM, 出力メッセージ領域[, ACSSPA].
-
パラメータ
以下は、SWITCHコマンドを使用する場合に設定するパラメータの説明です。
パラメータ 説明 SWITCH
SWITCHコマンドのマクロ値である「SWITCH」を指定します。
DCOM
アプリケーションのAPI通信領域としてSYNC-DCOMとASYNC-DCOMのいずれかを指定します。
-
SYNC-DCOM : 制御権がある通信の場合に指定します。
-
ASYNC-DCOM : 制御権がない通信の場合に指定します。
出力メッセージ領域
送信するデータが格納されているメッセージ領域名を指定します。
SPA
SYNC-DCOMを使用する場合、SPAデータを格納する領域の名前を指定します。
-
SYNC-DCOMの場合、SPA領域は省略可能です。
-
ASYNC-DCOMの場合、SPA領域を指定できません。
-
4. VGET
VGETは、アプリケーションでVSAMデータセット・レコードを入力するコマンドです。現在は、キー順データセット(KSDS)のみをサポートしています。
以下は、VGETコマンドの使用例です。
WORKING-STORAGE SECTION. 01 VCOM. COPY COBVCOM. 01 DD-NAME PIC X(8) VALUE 'VSAMDAT '. 01 INPUT-DATA. 02 IN-KEY. 02 IN-DATA PIC X(128). COPY CBACSAPI. ... PROCEDURE DIVISION. MOVE 'DIR' TO VOPTCD02. MOVE 'KEQ' TO VOPTCD05. MOVE 'FWD' TO VOPTCD09 . MOVE 200 TO VAREALEN. MOVE 9 TO VKEYLEN. CALL 'ACSAPI' USING VGET DD-NAME VCOM INPUT-DATA IN-KEY.
-
呼び出し形式
CALL 'ACSAPI' VGET, DD名, VCOM, 入力レコード名[, アクセスキー].
-
パラメータ
以下は、VGETコマンドを使用する場合に設定するパラメータの説明です。
パラメータ 説明 VGET
VGETコマンドのマクロ値である「VGET」を指定します。
DD名
アクセスするデータセット名を指定します。8バイトの文字列で、スペースを含むことができます。
VCOM
VCOM通信領域(VSAM Communication Area)の名前を指定します。
入力レコード名
VSAMデータセットから読み込んだデータを格納する入力レコード領域の名前を指定します。
アクセスキー
アクセスキーが格納されている領域の名前を指定します。
5. VPUT
VPUTは、アプリケーションでVSAMデータセット・レコードを出力するコマンドです。
以下は、VPUTコマンドの例です。
WORKING-STORAGE SECTION. 01 VCOM. COPY COBVCOM. 01 DD-NAME PIC X(8) VALUE 'VSAMDAT '. 01 OUTPUT-DATA. 02 OUT-KEY. 02 OUT-DATA PIC X(128). COPY CBACSAPI. ... PROCEDURE DIVISION. CALL 'ACSAPI' USING VPUT DD-NAME VCOM OUTPUT-DATA OUT-KEY.
-
呼び出し形式
CALL 'ACSAPI' VPUT DD名, VCOM, 出力レコード名[, アクセスキー].
-
パラメータ
以下は、VPUTコマンドを使用する場合に設定するパラメータの説明です。
パラメータ 説明 VPUT
VPUTコマンドのマクロ値である「VPUT」を指定します。
DD名
アクセスするデータセット名を指定します。8バイトの文字列で、スペースを含むことができます。
VCOM
VCOM通信領域(VSAM Communication Area)の名前を指定します。
出力レコード名
VSAMデータセットに保存する出力レコード領域の名前を指定します。
ACCESS-KEY
アクセスキーが格納されている領域名を指定します。
6. DSREAD
DSREADは、アプリケーションでBDAMデータセット・レコードを入力するコマンドです。
以下は、DSREADコマンドの使用例です。
WORKING-STORAGE SECTION. 01 DD-NAME PIC X(8) VALUE 'BDAMDAT '. 01 IN-DATA. 02 DATA-F PIC X(128). 01 DD-ADDR PIC 9(8) COMP. COPY CBACSAPI. ... PROCEDURE DIVISION. CALL 'ACSAPI' USING DSREAD DD-NAME IN-DATA DD-ADDR.
-
呼び出し形式
CALL 'ACSAPI' DSREAD, DD-NAME, 入力データ領域名, RBN.
-
パラメータ
以下は、DSREADコマンドを使用する場合に設定するパラメータの説明です。
パラメータ 説明 DSREAD
DSREADコマンドのマクロ値である「DSREAD」を指定します。
DD-NAME
処理するBDAMデータセットの名前を指定します。
入力データ領域名
BDSMデータセットから読み込んだデータを格納する入力データ領域の名前を指定します。
RBN
RBN(Related Block Number)の値を指定します。
7. DSWRITE
DSWRITEは、アプリケーションでBDAMデータセット・レコードを出力するコマンドです。
以下は、DSWRITEコマンドの使用例です。
WORKING-STORAGE SECTION. 01 DD-NAME PIC X(8) VALUE 'BDAMDAT '. 01 OUT-DATA. 02 DATA-F PIC X(128). 01 DD-ADDR PIC 9(8) COMP. COPY CBACSAPI. ... PROCEDURE DIVISION. CALL 'ACSAPI' USING DSWRITE DD-NAME OUT-DATA DD-ADDR.
-
呼び出し形式
CALL 'ACSAPI' DSWRITE, DD-NAME, 出力データ領域名, RBN.
-
パラメータ
以下は、DSWRITEコマンドを使用する場合に設定するパラメータの説明です。
パラメータ 説明 DSWRITE
DSWRITEコマンドのマクロ値である「DSWRITE」を指定します。
DD-NAME
処理するBDAMデータセットの名前を指定します。
出力データ領域名
BDAMデータセットに保存する出力データ領域の名前を指定します。
RBN
RBN(Related Block Number)値を指定します。
8. URGPUT
URGPUTは、ワークステーションに緊急メッセージを出力するコマンドです。アプリケーションの出力メッセージ領域の内容がワークステーションに送信されます。
以下は、URGPUTコマンドの使用例です。
WORKING-STORAGE SECTION. 01 ASYNC-DCOM. COPY COBSDCOM. 01 OUT-DATA. 02 PUT-MSG PIC X(128). COPY CBACSAPI. ... PROCEDURE DIVISION. MOVE SPACE TO OPTC OF ASYNC-DCOM. MOVE 'FMT001' TO FMID OF ASYNC-DCOM. MOVE 'WS0001' TO NAME OF ASYNC-DCOM. CALL 'ACSAPI' USING URGPUT ASYNC-DCOM PUT-MSG.
-
呼び出し形式
CALL 'ACSAPI' URGPUT, DCOM, 出力メッセージ領域名.
-
パラメータ
以下は、URGPUTコマンドを使用する場合に設定するパラメータの説明です。
パラメータ 説明 URGPUT
URGPUTコマンドのマクロ値である「URGPUT」を指定します。
DCOM
アプリケーションのAPI通信領域としてASYNC-DCOMを指定します。SYNC-DCOMは使用できません。
出力メッセージ領域名
緊急メッセージが保存されている出力メッセージ領域の名前を指定します。
9. ACSEXT
ACSEXT(またはXTRNAL)は、他のACSまたはAIMシステムのアプリケーションにメッセージを送信するためのコマンドです。
以下は、ACSEXTコマンドの使用例です。
WORKING-STORAGE SECTION. 01 ASYNC-DCOM. COPY COBSDCOM. 01 OUT-DATA. 02 FILLER PIC S9(5) COMP VALUE 128. 02 FILLER PIC S9(5) COMP VALUE 0. 02 DATA PIC X(128). COPY CBACSAPI. ... PROCEDURE DIVISION. MOVE SPACE TO NAME OF ASYNC-DCOM. MOVE 'APL001' TO SNAME OF ASYNC-DCOM. MOVE 128 TO MSGL OF ASYNC-DCOM. MOVE SPACE TO OPTC OF ASYNC-DCOM. CALL 'ACSAPI' USING ACSEXT ASYNC-DCOM OUT-DATA.
-
呼び出し形式
CALL 'ACSAPI' ACSEXT(またはXTRNAL), DCOM, 出力メッセージ.
-
パラメータ
以下は、ACSEXT(またはXTRNAL)コマンドを使用する場合に設定するパラメータの説明です。
パラメータ 説明 ACSEXT(またはXTRNAL)
ACSEXTコマンドのマクロ値である「ACSEXT」、またはXTRNALコマンドのマクロ値である「XTRNAL」を指定します。
DCOM
アプリケーションのAPI通信領域としてASYNC-DCOMを指定します。SYNC-DCOMは使用できません。
出力メッセージ
他のシステムに送信するメッセージが保存されている出力メッセージ領域の名前を指定します。
10. ACSNOTE
ACSNOTEコマンドは、アプリケーションの異常終了出口ルーチンで使用されます。異常出口ルーチンは、異常の原因を分析するための情報を通知します。
以下は、ACSNOTEコマンドの使用例です。
WORKING-STORAGE SECTION. 01 ABEND-DATA. 02 APLNAME PIC X(8). 02 FILLER PIC X(4). 02 ABEND-LIMIT PIC 9(02) COMP. 02 ABEND-COUNT PIC 9(02) COMP. COPY CBACSAPI. ... PROCEDURE DIVISION. CALL 'ACSAPI' USING ACSNOTE ABEND-DATA.
-
呼び出し形式
CALL 'ACSAPI' ACSNOTE, ABENDの通知領域.
-
パラメータ
以下は、ACSNOTEコマンドを使用する場合に設定するパラメータの説明です。
パラメータ 説明 ACSNOTE
ACSNOTEコマンドのマクロ値である「ACSNOTE」を指定します。
ABENDの通知領域
ACS情報の通知領域を指定します。通知領域にはアプリケーション名、ABEND LIMIT値、ABEND回数が含まれます。