메시지 전환을 위한 IMS SPA의 형식

EGL은 다음 빌드 디스크립터 옵션에 따라 IMS™ 스크래치패드 영역의 형식을 정의합니다.
spaSize
IMS에서 필요로 하는 필드(SPA 길이, SPA ID 및 IMS 트랜잭션 이름)를 포함, SPA의 전체 길이 및 세그먼테이션 상태 바이트에 대한 EGL 요구사항을 지정합니다.
spaStatusBytePosition
이 선택적 필드는 15(상태 바이트가 데이터 앞에 오는 경우) 또는 spaSize와 같은 값(상태 바이트가 데이터 뒤에 오는 경우)으로 설정됩니다.
표 1. IMS 스크래치패드 영역의 형식
필드 길이(바이트) 데이터 유형 설명
SPA 길이 2 2진 세그먼트의 길이입니다.
SPA ID 4 2진 IMS에 SPA를 식별하는 데 사용되는 고유 이름입니다. MPP는 이 이름을 변경하지 않아야 합니다.
IMS 트랜잭션 이름 8 문자 EGL 프로그램의 IMS 트랜잭션 이름입니다.
세그먼테이션 상태 바이트(선택사항) 1 16진 이 선택적 바이트는 spaSize=n이며 spaStatusBytePosition=15가 지정되었고 전환이 지연된 전환인 경우에 존재합니다. 이 바이트는 데이터가 작업 데이터베이스에 저장되었는지 표시합니다.
프로그램 데이터 다양함 다양함 이 영역에는 transfer to transaction 명령문에 전달되어 대상 프로그램이 해당 입력 레코드로 수신한 레코드가 포함되어 있습니다.
세그먼테이션 상태 바이트(선택사항) 1 16진 이 선택적 바이트는 이 전환이 즉각적 전환이며, spaSize=n이고 spaStatusBytePosition=n인 경우에 존재합니다. 상태 바이트 위치는 항상 15(상태 바이트가 데이터 앞에 오는 경우) 또는 SPA 크기와 같은 값(상태 바이트가 데이터 뒤에 오는 경우)입니다. 이 경우에는 바이트의 컨텐츠가 무시됩니다. 이 선택적 바이트는 spaSize=n이며 spaStatusBytePosition=n이 지정되었고 이 전환이 지연된 전환인 경우에도 존재합니다. 이 경우 이 바이트는 데이터가 작업 데이터베이스에 저장되었는지 표시합니다.

다음 예제는 대화식 처리를 위해 지연된 또는 즉각적 프로그램 대 프로그램 메시지 전환에서 전달된 스크래치패드 영역에 대한 COBOL 정의를 보여줍니다. PL/I는 COBOL에 사용되는 2바이트 길이 필드가 아니라 4바이트 길이 필드를 필요로 한다는 것을 기억하십시오. 추가 정보는 사용자의 시스템에 해당하는 IMS/VS 문서를 참조하십시오. 특정 필드 이름은 설명을 위해서만 사용되었으며 생성되는 코드의 실제 필드 이름은 다를 수 있습니다.

* SPA IO area.
 01 SPA.
   05 SPA-LENGTH                PIC S9(4) COMP.
   05 SPA-ID                    PIC S9(9) COMP.
   05 IMS-TRAN-NAME             PIC X(8).
   05 CSP-OPTIONAL-SSM-BYTE     PIC X(1).      See Note 1.
   05 CSP-APPL-WS-DATA.
     10 data-item-1             PIC ........................
     10 data-item-2             PIC ........................
         .
      .
      .
   05 CSP-OPTIONAL-SSM-BYTE     PIC X(1).      See Note 2.
이 예제에는 다음 참고사항이 적용됩니다.
  1. 이 선택적 바이트는 spaSize=n이며 spaStatusBytePosition=15가 지정되었고 전환이 지연된 전환인 경우에 존재합니다. 이 바이트는 데이터가 작업 데이터베이스에 저장되었는지 표시합니다.
  2. 이 선택적 바이트는 spaSize=n이며 spaStatusBytePosition=n이 지정되었고 이 전환이 즉각적 전환인 경우에 존재합니다. 이 경우에는 바이트의 컨텐츠가 무시됩니다. 이 선택적 바이트는 spaSize=n이며 spaStatusBytePosition=n이 지정되었고 이 전환이 지연된 전환인 경우에도 존재합니다. 이 경우 이 바이트는 데이터가 작업 데이터베이스에 저장되었는지 표시합니다.

위 표에 "프로그램 데이터"로 식별된 데이터는 대상 프로그램의 입력 레코드로 취급됩니다. 이 방법은 비EGL 프로그램이 SPA에 데이터를 저장하고 SPA 데이터를 사용하거나 수정하는 EGL 프로그램(또는 일련의 EGL 프로그램)으로 전환할 수 있게 해 줍니다. EGL 프로그램은 결국 SPA에 포함된 EGL 프로그램의 정보와 함께 비EGL 프로그램으로 다시 전환할 수 있습니다. SPA 크기의 변경에 대해서는 IMS 제한사항을 따르십시오.

SPA 크기 및 전송 레코드 크기

다음 표에는 SPA, transfer to transaction 또는 show 문에 지정된 레코드, 그리고 대상 프로그램의 입력 레코드가 대화식 처리를 위해 어떤 관계를 맺는지가 정의되어 있습니다.

표 2. IMS SPA 대 전송 레코드의 관계
기능 데이터 영역 크기 대 전송 레코드 크기 결과
transfer to transaction SPA에 있는 프로그램 데이터 영역의 크기가 transfer to transaction 또는 show 문에 이름 지정된 EGL 레코드의 크기를 초과합니다. SPA의 프로그램 데이터 영역이 전체 EGL 레코드를 사용하여 작성되며 SPA의 잔여 바이트는 공백으로 초기화됩니다.
transfer to transaction SPA에 있는 프로그램 데이터 영역의 크기가 transfer to transaction 문에 이름 지정된 EGL 레코드의 크기보다 작습니다. EGL 레코드의 여분 바이트가 잘립니다.
대상 프로그램 입력 레코드의 초기화 SPA에 있는 프로그램 데이터 영역의 크기가 대상 시스템의 입력 레코드에 이름 지정된 EGL 레코드의 크기를 초과합니다. SPA에 있는 프로그램 데이터 영역의 여분 바이트가 입력 레코드로 이동될 때 잘립니다.
대상 프로그램 입력 레코드의 초기화 SPA에 있는 프로그램 데이터 영역의 크기가 대상 시스템의 입력 레코드에 이름 지정된 EGL 레코드의 크기보다 작습니다. 입력 레코드가 SPA에 있는 프로그램 데이터 영역으로 초기화되며 입력 레코드의 잔여 바이트가 데이터 유형에 따라 초기화됩니다.