콘솔

본 절에서는 OpenFrame Base 시스템의 구성 요소 중 하나인 콘솔의 구성 및 기능에 대해 설명한다.

1. 개요

시스템 콘솔 또는 콘솔은 시스템 커널에서 시스템 관리자에게 메시지를 출력하고, 시스템 관리자가 시스템을 관리하는 명령을 입력할 수 있도록 해주는 화면과 키보드를 의미한다.

OpenFrame 콘솔은 처음에는 PL/I 언어에서 사용되는 DISPLAY, REPLY 문장을 지원하기 위해서 구현되었다. 현재 콘솔은 COBOL 언어의 DISPLAY UPON CONSOLE, ACCEPT FROM CONSOLE과 같은 문장도 동일하게 지원한다. OpenFrame OSC 시스템에서도 시스템 관리자가 시스템을 모니터링을 하기 위해서 OpenFrame 콘솔이 사용되고 있다.

2. 콘솔 구성 및 기능

OpenFrame 콘솔은 다음의 요소로 구성된다. 이러한 구성 요소를 통해 콘솔은 DISPLAY와 ACCEPT 기능을 지원한다.

구성 요소 설명

Program

PL/I, COBOL로 작성된 업무 프로그램 또는 Online 서비스이다.

tconmgr

가상의 콘솔 디바이스를 의미한다.

ofrcmsvr

콘솔 메시지의 관리 및 중계를 담당하는 콘솔 서버이다.

2.1. DISPLAY

PL/I 언어의 DISPLAY 문장이나 COBOL 언어의 DISPLAY UPON CONSOLE 문장을 콘솔의 DISPLAY 기능으로 지원한다.

다음은 DISPLAY 기능 수행을 나타내는 그림이다.

figure console display
DISPLAY 과정
  • Program에서 DISPLAY를 수행하는 과정

    1. Program에서 DISPLAY 메시지를 ofrcmsvr로 보낸다.

    2. ofrcmsvr는 DISPLAY 메시지를 파일에 기록한다.

    3. ofrcmsvr에서 현재 접속되어 있는 tconmgr로 메시지를 전송한다.

    4. Program에게 성공했음을 알린다.

  • tconmgr에서 DISPLAY를 수행하는 과정

    1. tconmgr은 ofrcmsvr에게 접속이 되었음을 알린다.

    2. ofrcmsvr는 정상 응답을 한다. 이후 주기적으로 ofrcmsvr에서 메시지가 오는 것을 확인하여 출력한다.

2.2. ACCEPT

PL/I 언어의 REPLY 문장이나 COBOL 언어의 ACCEPT FROM CONSOLE 문장을 콘솔의 ACCEPT 기능으로 지원한다.

figure console accept
ACCEPT 과정
  • Program에서 ACCEPT를 수행하는 과정

    1. Program에서 ACCEPT 메시지를 ofrcmsvr로 보낸다.

    2. ofrcmsvr는 ACCEPT 메시지를 파일에 기록한다.

    3. ofrcmsvr에서 현재 접속되어 있는 tconmgr로 메시지를 전송한다. 이후 ofrcmsvr는 tconmgr로부터 ACCEPT 응답을 받을 때까지 Program에 응답을 유보한다. Program 역시 ofrcmsvr로부터 ACCEPT 메시지를 받을 때까지 대기상태이다. (그림에서 ③으로 표시)

  • tconmgr에서 DISPLAY를 수행하는 과정

    1. tconmgr은 ofrcmsvr에게 접속이 되었음을 알린다.

    2. ofrcmsvr는 정상 응답을 한다.이후 주기적으로 ofrcmsvr에서 메시지가 오는 것을 확인하여 출력한다.

3. tconmgr

tconmgr는 Mainframe에서의 콘솔에 대응하는 가상의 OpenFrame 콘솔 프로그램이다. 사용자가 원하는 ID의 콘솔 메시지를 보고자 할 때 tconmgr 프로그램을 실행한다.

사용법

tconmgr의 실행 방법은 다음과 같다.

$ tconmgr [CONSOLE_ID]
  • 입력 항목

    항목 설명

    CONSOLE_ID

    0부터 99까지 입력할 수 있다. 현재 OpenFrame에서는 0번 이외의 값은 현재 사용되지 않고, 만약 CONSOLE_ID를 생략하면 0으로 처리된다. 출력 항목에서 모든 메시지도 0번으로 출력된다.

  • 출력 항목

    다음은 콘솔에서 메시지 앞부분의 출력 내용에 대한 설명이다. 각각의 항목은 세미콜론( ; )으로 구분되며 전체는 [ ]로 쌓여 있다.

    항목 설명

    Msg Source

    메시지의 출처로 COBOL, TCONMGR 등이 있다.

    Date Time

    메시지가 생성된 날짜 및 시간이다. (YYYYMMDD_HHMMSS 형식)

    Length

    메시지의 길이가 출력된다.

    Console ID

    메시지를 보낸 곳의 Console ID가 출력되며, 현재는 0만 출력된다.

    User

    일반적으로 메시지를 보낸 곳의 JOBID가 출력되며, JOBID가 없는 경우에는 사용자 이름일 수도 있다. 메시지의 출처가 TCONMGR인 경우에는 응답 대상의 JOBID가 출력된다.

    Process ID

    메시지를 보낸 곳의 UNIX의 PID가 출력된다. 메시지의 출처가 TCONMGR의 경우에는 응답 대상의 UNIX의 PID가 출력된다.

사용예제

다음은 콘솔의 일반적인 사용 흐름에 관한 예로 애플리케이션에서 콘솔에 메시지를 보내거나 응답을 요청하는 내용이다.

IDENTIFICATION DIVISION
…
ENVIRONMENT DIVISION
…
DATA DIVISION
…
WORKING-STORAGE SECTION.
03 BUFFER PIC X(10).
PROCEDURE DIVISION.
A SECTION.
DISPLAY “CONSOLE DISPLAY TEST” UPON CONSOLE.
ACCEPT BUFFER FROM CONSOLE.
EXIT.
STOP RUN

사용 흐름대로 DISPLAY, ACCEPT가 수행되는 과정은 다음과 같다.

  1. 다음의 명령어로 DISPLAY가 수행된다.

    DISPLAY “CONSOLE_DISPLAY_TEST” UPON CONSOLE.

    명령어가 수행된 후 콘솔 화면에 "CONSOLE_DISPLAY_TEST" 메시지가 출력된다.

    figure 3 2
    DISPLAY 실행 결과 화면
  2. 다음의 명령어로 ACCEPT가 수행된다.

    ACCEPT BUFFER FROM CONSOLE.

    명령어가 수행된 후 콘솔 화면에 "Accept request received!!!" 메시지가 출력된다.

    figure 3 3
    ACCEPT 실행 결과 화면
  3. 사용자는 ‘R’이라는 REPLY 명령을 통해서 응답 요구 메시지에 응답을 할 수 있다. ‘R’ 명령을 수행하면 콘솔 화면에 새로운 화면이 생성되어 응답을 요청한 메시지들의 리스트를 볼 수 있다. 사용자는 원하는 번호를 선택하여 응답 메시지를 보낼 수 있다.

    사용자가 REPLY 명령인 ‘R’을 실행하면 다음과 같은 화면이 나타난다.

    figure 3 4
    REPLY 실행 결과 화면
  4. REPLY 명령에서 요청 메시지 리스트에 0번을 선택하고 "OK"라는 메시지를 응답한 화면은 다음과 같다.

    figure 3 5
    OK 실행 후 화면 (1)
  5. "OK" 메시지를 입력하고 전송하면 다음과 같이 tconmgr에서 메시지를 응답하였다는 내용이 출력된다.

    figure 3 6
    OK 실행 후 화면 (2)

앞의 내용은 tconmgr를 종료하고 나면 화면에서 사라진다. 그러므로 이전의 내용들을 검색할 경우 ‘H’라는 HISTORY 명령을 통해서 검색할 수 있다.

다음은 HISTORY 명령을 통해서 이전 내용을 검색하는 화면이다.

figure 3 7
History 실행 후 화면

HISTORY 명령인 ‘H’를 수행하면 새로운 화면이 생성되고, 다음 조건 항목에 따라 이전 내용을 검색한다.

항목 설명

Process ID

UNIX의 PID이다.

User

일반적으로 JOBID를 의미한다. 단, JOBID가 없는 메시지의 경우는 다른 이름을 의미할 수도 있다.

Msg Source

메시지의 출처로 COBOL, TCONMGR 등이 있다.

Date

메시지가 생성된 날짜이다. 입력값이 없을 경우 당일의 내용을 검색한다.

Time

메시지가 생성된 시간이다. 주어진 시간 이후의 메시지만 검색된다.

예를 들어 Process ID를 5169로 입력하여 검색한 경우 다음과 같이 해당 화면이 나타난다.

figure 3 8
Process ID를 5169로 검색한 결과