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 데이터셋의 이름을 지정한다.
입력 데이터 영역 이름
BDAM 데이터셋에서 읽어온 데이터를 저장할 입력데이터 영역 이름을 지정한다.
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 횟수를 포함한다.
11. APABEND
APABEND 커맨드는 응용 프로그램을 비정상적으로 종료하는 커맨드이다.
다음은 APABNED 커맨드의 사용 예제이다.
WORKING-STORAGE SECTION. COPY CBACSAPI. ... PROCEDURE DIVISION. CALL 'ACSAPI' USING APABEND.
-
호출 형식
CALL 'ACSAPI' APABEND.
-
파라미터
다음은 APABEND 커맨드를 사용하는 경우 설정하는 각 항목에 대한 설명이다.
파라미터 설명 APABEND
APABEND 커맨드의 매크로 값인 "APABEND"를 지정한다.