DataTable 특성
자체 EGL 소스 파일에서 각각의 DataTable 파트를 정의하며 여기서 다음과 같은 특성을 지정할 수 있습니다. contents 특성이 유일한 필수 특성입니다.
- alias
- 생성된 출력의 이름에 통합되는 문자열(따옴표로 묶임)입니다. 별명을 지정하지 않으면 DataTable 이름이 대신 사용됩니다.
- contents
- DataTable 셀에 대한 값의 배열입니다. 배열의 각 행은 테이블의
한 행을 나타냅니다. 각각의 행은 열 정의에서 지정된 대로 형식화됩니다.
각각의 값은 다음 리터럴 유형 중 하나입니다.
- 숫자 리터럴
- 문자열 리터럴 또는 문자열 리터털의 연결
- 부울 리터럴(YES 또는 NO, TRUE 또는 FALSE)
- resident
- DataTable에 액세스한 모든 프로그램이 종료된 후 DataTable이 메모리에
보관되는지 여부를 표시하는 부울 값입니다. 올바른 값은 YES 및 NO(기본값)입니다.
resident 특성을 YES로 설정하면 shared
특성의 값에 관계없이 DataTable이 공유됩니다. DataTable을 상주시키면 다음과 같은 이점이 있습니다.
- 이전에 실행된 프로그램이 DataTable에 기록된 값을 보유합니다.
- 추가적인 로드 처리 없이 즉시 액세스할 수 있습니다.
- resident가 NO로 설정된 경우에는 다음과 같은 요인이
테이블의 로드 해제에 영향을 미칩니다.
- VAGen 호환 모드에서 실행 중이 아닌 경우에는 프로그램이 종료되면 DataTable이 로드 해제됩니다.
- VAGen 호환 모드에서 실행 중인 경우에는 DataTable에 대한 use문의 deleteAfterUse 특성이 DataTable의 로드 해제를 제어합니다. deleteAfterUse을 참조하십시오.
- DataTable의 로드 해제는 대상 시스템과 프로그램이 상주하는지 여부에
의해서도 영향을 받습니다. 이 주제에서 "호환성"을 참조하십시오.
참고: DataTable은 EGL 런타임이 해당 use문을 처리할 때가 아니라 프로그램이 처음으로 DataTable에 액세스할 때 메모리에 로드됩니다.
- shared
- 동일한 실행 단위에 있는 모든 프로그램이 DataTable의 동일한 인스턴스를 사용하는지 여부를 표시하는 부울 값입니다. shared가 YES로 설정되면 실행 단위에 있는 모든 프로그램이 DataTable의 동일한 사본을 공유합니다. shared가 NO(기본값)로 설정되면 실행 단위에 있는 각 프로그램이 DataTable의 고유 사본을 가집니다.
호환성
| 플랫폼 | 문제 |
|---|---|
| COBOL 생성 | 생성된 이름의 최대 길이가 7자입니다. |
| CICS® | DataTable에 대해 resident 특성을 YES로 설정하는 경우에는 DataTable 프로그램에 대한 CICS RDO PROGRAM 정의에서 RESIDENT 키워드를 YES로 설정하지 마십시오. 상주 DataTable은
다음 중 하나가 발생할 때까지 로드된 상태를 유지합니다.
shared 특성은 CICS 리젼에 있는 모든 프로그램 및 지정된 실행 단위에 있는 모든 프로그램이 DataTable의 동일한 인스턴스를 사용하는지 여부를 표시합니다. 공유 테이블을 수정하는 경우 수정사항은 테이블이 다시 로드될 때까지 동일한 CICS 리젼에 있는 테이블의 모든 사용자에게 적용됩니다. 프로그램이 공유 테이블을 업데이트하는 경우 I/O 명령문 사이에서 또는 프로그램, 라이브러리 또는 서비스 호출 사이에서 전체 업데이트를 작성하십시오. I/O 명령문 또는 call문 전의 DataTable에서 값을 얻지 마십시오. I/O 명령문 또는 call문 뒤에서 얻은 값을 기반으로 DataTable을 수정하십시오. 또다른 사용자의 트랜잭션이 I/O 명령문 또는 call문에서 제어를 얻고 업데이트 조작 중에 동일한 DataTable을 업데이트했을 수 있습니다. I/O 명령문 또는 call문에서 동기화가 필요한 경우에는 외부 직렬화 메소드를 사용하십시오. |
IMS BMP |
상주 DataTable은 다음 상황 중 하나가 발생할 때까지
로드된 상태를 유지합니다.
resident 특성이 NO로 설정되면 shared 특성이 무시됩니다. 각각의 작업 단계에는 별도의 테이블 사본이 있습니다. |
| IMS/VS | 상주 DataTable은 다음 상황 중 하나가 발생할 때까지
로드된 상태를 유지합니다.
공유 DataTable의 수정은 지원되지 않습니다. |
| iSeries COBOL | 상주 DataTable은 다음 상황 중 하나가 발생할 때까지
로드된 상태를 유지합니다.
|
| Java™ 생성 | 상주 DataTable은 실행 단위가 종료될 때까지 로드된 상태를 유지합니다. 하지만 비상주 DataTable은 이를 사용하는 프로그램이 종료되면 로드 해제됩니다. |
| JavaScript 생성 | DataTable이 지원되지 않습니다. |