CICS 임시 스토리지

1 개요[ | ]

데이터 저장, 트랜잭션 간 데이터 전송을 위해 CICS에서 사용할 수 있는 각기 다른 임시 공간이 있다. 5가지 공간이 CICS에 의해 제공된다.

2 COMMAREA[ | ]

COMMAREA는 한 프로그램에서 다른 프로그램으로 데이터를 전달하기 위해 사용할 수 있는 임시 공간의 역할을 하며, 같은 트랜잭션 내에서나 다른 트랜잭션에서 동작한다. DFHCOMMAREA 이름을 사용하여 LINKAGE SECTION에 정의된다.

3 Common Work Area (CWA)[ | ]

CICS 리전 내의 어떠한 트랜잭션이라도 CWA를 액세스할 수 있으므로 이에 대한 포맷과 사용은 이에 대한 사용을 결정하는 시스템 내의 모든 트랜잭션에 의해 동의되어야 한다. 전체 CICS 리전에서 오직 하나의 CWA만 있다.

4 Transaction Work Area (TWA)[ | ]

TWA는 동일 트랜잭션 내에서 실행되는 응용 프로그램 간 데이터 전달에 사용된다. TWA는 트랜잭션 중에만 살아있다. TWA의 크기는 PCT (Program Control Table)에 정의되어 있다.

5 Temporary Storage Queue (TSQ)[ | ]

TSQ는 TSP (Temporary Storage Control Program)에 의해 제공된다.

  • TSQ는 동일 CICS 리전 내의 다른 task나 프로그램에 의해 작성, 읽기, 삭제가 가능한 레코드의 큐(queue)이다.
  • 큐 식별자는 TSQ를 식별하기 위해 사용된다.
  • TSQ 내의 레코드는 아이템 넘버라는 상대적인 위치로 식별한다.
  • TSQ 내의 레코드는 TSQ 전체가 명시적으로 삭제될 때까지 접근이 가능하다.
  • TSQ 내의 레코드는 순차적으로 또는 직접 읽기가 가능하다.
  • TSQ는 DASD의 메인 스토리지나 보조 기억장치에 쓸 수 있다.

5.1 WRITEQ TS[ | ]

기존 TSQ에 아이템을 추가한다. 이 명령을 통해 새로운 TSQ를 만들 수도 있다.

EXEC CICS WRITEQ TS
   QUEUE ('queue-name')
   FROM (queue-record)
   [LENGTH (queue-record-length)]
   [ITEM (item-number)]
   [REWRITE]
   [MAIN /AUXILIARY]
END-EXEC.
  • 이 파라미터에 정의된 이름을 가지고 QUEUE를 식별한다.
  • FROM과 LENGTH 옵션은 큐에 쓸 레코드와 그 길이를 규정하기 위해 사용한다.
  • ITEM 옵션이 지정되면 CICS는 아이템 번호를 큐 안의 레코드에 할당한 다음 해당 옵션에 지정된 데이터 area를 아이템 넘버로 설정한다. 레코드가 새로운 큐를 시작하면 아이템 넘버는 1로 할당되며 그 다음 번호는 순차적인 번호를 따른다.
  • REWRITE 옵션을 사용하면 큐에 이미 존재하는 레코드를 업데이트할 수 있다.
  • MAIN / AUXILIARY 옵션을 사용하면 주 기억장치나 보조 기억장치에 레코드를 저장할 수 있다. 기본값은 AUXILIARY.

5.2 READQ TS[ | ]

TSQ를 읽기 위해 사용한다.

EXEC CICS READQ TS
   QUEUE ('queue-name')
   INTO (queue-record)
   [LENGTH (queue-record-length)]
   [ITEM (item-number)]
   [NEXT]
END-EXEC.

5.3 DELETEQ TS[ | ]

TSQ를 삭제하기 위해 사용한다.

EXEC CICS DELETEQ TS
   QUEUE ('queue-name')
END-EXEC.

6 Transient Data Queue (TDQ)[ | ]

TDQ는 태생적으로 변화가 심하며 재빠르게 만들어지고 삭제될 수 있다. 오직 순차 접근만 허용한다.

  • 큐의 내용은 읽기 수행 후 파괴되면 오직 한 차례만 읽기가 가능하다.
  • 업데이트가 불가능하다.
  • DCT에 엔트리가 필요하다.

6.1 WRITEQ TD[ | ]

TDQ를 쓰기 위해 사용하며 무조건 파일에 쓴다.

EXEC CICS WRITEQ TD
   QUEUE ('queue-name')
   FROM (queue-record)
   [LENGTH (queue-record-length)]
END-EXEC.

6.2 READQ TD[ | ]

TDQ를 읽기 위해 사용한다.

EXEC CICS READQ TD
   QUEUE ('queue-name')
   INTO (queue-record)
   [LENGTH (queue-record-length)]
END-EXEC.

6.3 DELETEQ TD[ | ]

TDQ를 삭제하기 위해 사용한다.

EXEC CICS DELETEQ TD
   QUEUE ('queue-name')
END-EXEC.
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}