IMS에서 터미널과 상호작용

일반적인 IMS™ 프로그램은 아래 그럼처럼 메시지 구동 구조를 사용합니다.

IMS의 메시지 큐 구조

이 예제에서 프로그램과 연관된 메시지 큐가 메시지를 포함하면 IMS 제어기가 트랜잭션 프로그램을 시작합니다. 다른 프로그램이 메시지를 큐에 넣거나 제어기가 터미널에서 입력을 읽을 수도 있습니다. 프로그램은 큐에서 메시지를 꺼내고 필수 데이터베이스 I/O를 수행하고 처리를 계속하도록 출력 큐에 메시지를 추가합니다. 출력 큐는 입력 터미널, 다른 터미널이나 프린터 또는 다른 트랜잭션과 연관된 큐를 표시할 수 있습니다. 그런 다음 프로그램은 처음으로 루프백하고 입력 큐의 다음 메시지를 처리합니다.

다중 터미널은 동일한 트랜잭션을 동시에 실행하므로 일반적인 PL/I 또는 COBOL 프로그램은 메시지 큐가 빌 때까지 순환을 계속해야 합니다. 그러나 EGL textUI 프로그램은 자동으로 큐에서 다음 메시지를 읽도록 루프됩니다. 메시지 큐 제어 함수를 직접 정의할 필요는 없습니다. CICS®를 위한 프로그램을 정의하는 것처럼 IMS를 위한 프로그램을 정의하여 메시지 구동 구조 대신 동기 로직 구조를 사용할 수 있습니다. 다음 그림은 동기 프로그램의 예제를 표시합니다.

동기
프로그램 구조

동기 모델을 사용하려면 단일 터미널에서 단일 사용자를 위해 발생해야 하는 처리만 고려하면 됩니다. 그러면 디자인과 프로그램 정의가 둘 다 단순화됩니다.

IMS에서는 사용자 입력을 대기할 때 모든 데이터베이스 변경을 커미트하고 모든 데이터베이스 잠금 및 위치를 해제해야 합니다. EGL에서 이는 세그먼트화된 프로그램 작성을 의미합니다. 프로그램을 정의할 때 EGL은 각 converse I/O 문으로 커미트를 수행함을 기억하십시오.

세그먼테이션이 IMS용 프로그램을 개발하기 위해 작업하는 방법을 이해해야 합니다. 텍스트 UI 프로그램과 UI 프로그램에서의 세그먼테이션의 내용을 참조하십시오.