다음을 통해 공유


TCP TRM(트랜잭션 요청 메시지) 링크

TRM(TCP 트랜잭션 요청 메시지) 링크 모델을 사용하면 COMMAREA를 통해 TI와 서버 TP 간에 데이터와 매개 변수를 전달할 수 있습니다. 또한 모델을 사용하면 동시 서버에서 CICS DPL 프로그램에 연결할 수 있습니다. TCP/IP에 대한 표준 수신기는 두 개의 네트워크 교환을 사용하여 단일 트랜잭션 프로그램을 실행하며 클라이언트에서 다음을 수행하도록 합니다.

  • 표준 수신기에 TRM(트랜잭션 요청 메시지) 보내기

  • 애플리케이션 프로그램에서 TRM 회신 받기

  • 서버 트랜잭션 프로그램에 애플리케이션 요청 데이터 스트림 보내기

  • 서버 트랜잭션 프로그램에서 애플리케이션 회신 데이터 받기

    TCP TRM 링크 모델은 CICS 동시 서버 모델을 기반으로 합니다. TCP TRM 링크 모델은 CICS 환경 내에서 DPL 서버 애플리케이션 프로그램의 실행을 지원하고 CICS LU6.2 링크 프로그래밍 모델과의 호환성을 유지하는 Microsoft 변형입니다.

    다음 그림에는 클라이언트, 표준 CICS 수신기, 동시 서버, 메인프레임 트랜잭션 프로그램 간에 발생하는 워크플로가 요약되어 있습니다. 괄호 안의 숫자는 이벤트가 발생하는 대략적인 순서를 나타냅니다. 이벤트에 대한 자세한 설명은 그림 뒤에 나옵니다.

    클라이언트가 기본 수신기를 시작하는 프로세스를 보여 주는 이미지입니다.
    클라이언트가 기본 수신기를 시작하는 프로세스입니다. 이 수신기는 동시 서버에 대한 호출을 전달한 다음 클라이언트에서 데이터를 보내고 받습니다. 그러면 서버는 비즈니스 논리로 처리하기 위해 CICS DPL 프로그램에 전달합니다.

TCP TRM 링크 프로그래밍 모델은 다음과 같이 작동합니다.

  1. 애플리케이션이 구성 요소 서비스 또는 .NET Framework에 구성된 TI 구성 요소에서 메서드를 호출합니다.

  2. TI 런타임은 TI 자동화 프록시를 호출합니다.

  3. 애플리케이션이 COM+ 구성 요소인 경우 TI 자동화 프록시는 다음을 수행합니다.

    1. TI 디자이너에서 이전에 만든 형식 라이브러리를 읽습니다.

    2. 자동화 데이터 형식을 COBOL 데이터 형식에 매핑합니다.

      애플리케이션이 .NET Framework 어셈블리인 경우 TI 자동화 프록시는 다음을 수행합니다.

    3. TI 디자이너에서 이전에 만든 어셈블리 및 메타데이터를 읽습니다.

    4. .NET Framework 데이터 형식을 COBOL 데이터 형식에 매핑합니다.

      그런 다음, TI 자동화 프록시는 다음을 수행합니다.

    5. 변환 루틴을 호출하여 애플리케이션 데이터를 메인프레임 COBOL 형식으로 변환합니다.

    6. COBOL 선언 또는 copybook을 나타내는 평면화된 데이터 스트림 버퍼를 작성합니다.

    7. 데이터 스트림을 TCP 전송 구성 요소에 전달합니다.

  4. TI TCP 전송은 메인프레임 컴퓨터의 IP(인터넷 프로토콜) 주소와 수신기의 포트 주소를 사용하여 표준 수신기에 연결 요청을 보냅니다.

  5. 표준 수신기는 연결 요청을 수락하고 TRM을 보내도록 TI 런타임에 지시합니다. 그런 다음, 표준 수신기는 TRM을 대기합니다.

    TRM은 TRANID를 사용하여 호출할 서버 TP를 식별하는 형식이 지정된 데이터 레코드입니다. 수신기 TP는 특수 메인프레임 TP로, 주요 기능은 TCP/IP를 실행하는 클라이언트 애플리케이션에서 보낸 서버 TP 호출을 수신하는 것입니다.

    IBM에서 제공한 표준 수신기 TP의 TRANID는 CSKL입니다. PCT(프로그램 제어 테이블)에 표시되는 수신기 TP의 TP 이름은 EZACIC02입니다.

  6. TI 런타임은 표준 또는 사용자 지정 TRM의 형식을 지정하고 표준 수신기로 전송합니다. TI 런타임은 TRM 회신을 기다립니다.

  7. 표준 수신기는 TRM을 수신하고 TI 런타임에 수신 확인을 보낸 다음, TRM의 내용을 읽습니다. 수신기는 TRM의 정보를 해석하고 요청을 처리하는 동시 서버 프로그램의 트랜잭션 ID를 추출합니다.

  8. 표준 수신기는 EXEC CICS Start를 사용하여 TRM의 TRANID로 식별되는 동시 서버 TP 프로그램(Mscmtics.cbl 샘플 애플리케이션)을 시작합니다.

    Mscmtics.cbl은 COMMAREA를 사용하여 TI와 서버 TP 간에 데이터를 전달하는 데 사용되는 Microsoft 샘플 TP 파일입니다. Mscmtics.cbl 샘플 TP는 Microsoft에서 개발했으며 Host Integration Server 소프트웨어의 일부로 제공됩니다. 이 샘플 파일은 $\Microsoft Host Integration Server\SDK\Samples\Comti\ProgrammingSpecifics\Tcp에 있습니다. 이 모델을 사용하기 전에 메인프레임 컴퓨터에서 이 코드를 컴파일, 연결 및 설치해야 합니다.

    참고

    표준 수신기가 동시 서버를 시작할 수 없는 경우 수신기는 오류 메시지의 형식을 지정하고 COMTI TCP 전송으로 다시 보냅니다. 수신기가 시작할 수 없는 이유는 다음과 같습니다.

    제한된 CICS 리소스(예: CICS 작업 또는 동시 서버 작업의 최대 수 초과)로 인해 연결이 거부되었습니다.

    동시 서버에 대한 TRANID가 잘못되었거나 사용할 수 없습니다.

    트랜잭션 ID와 연결된 동시 서버 프로그램이 잘못되었거나, 비활성화되었거나, 사용할 수 없습니다.

    참고

    CICS 수신기의 오류 메시지는 문자 기반이며 항상 EZY 문자로 시작합니다. 오류 메시지의 길이는 변경될 수 있으며, 메시지의 끝은 CICS 수신기에서 닫은 소켓에 따라 결정됩니다. 표준 수신기는 호스트 환경에서 소켓 API(애플리케이션 프로토콜 인터페이스)를 호출합니다. 표준 수신기는 TRM 회신을 보낼 수 없습니다. TRM 회신은 클라이언트에서 애플리케이션 요청 데이터를 보내기 전에 트랜잭션 프로그램을 시작할 시간을 허용하는 동기화 프로세스를 나타냅니다. 이 동기화 프로세스는 내부 CICS 아키텍처 고려 사항으로 인해 필요하며, 요청 후 트랜잭션 프로그램이 시작되는 시기는 보장하지 않습니다.

    표준 CICS 수신기는 동시 서버 트랜잭션에 대해 시작 명령을 실행한 후 더 이상 애플리케이션 처리에 필요하지 않으며 들어오는 다른 요청을 수신 대기할 수 있습니다.

  9. 동시 서버는 실행된 후 표준 수신기에서 보낸 TIM(트랜잭션 초기 메시지)을 읽습니다.

    TIM은 서버가 실행되고 있는 TCP/IP 환경에 대해 설명하며 동시 서버가 COMTI TCP 전송과 통신하는 데 사용하는 TCP/IP 소켓 정보 및 동시 서버가 실행 동작을 사용자 지정하는 데 사용하는 클라이언트 메시지 헤더를 포함합니다. 헤더에는 연결할 서버 프로그램의 이름이 포함됩니다.

  10. 동시 서버는 다음을 수행합니다.

    1. 표준 또는 사용자 지정 TRM 회신의 형식을 지정합니다.

    2. TI TCP 전송에 TRM 회신을 보내 이제 애플리케이션 요청 데이터를 보낼 수 있음을 알립니다.

    3. 받기를 실행하고 애플리케이션 요청 데이터를 대기합니다.

      TRM 회신을 보내면 표준 수신기 교환 시퀀스의 첫 번째 부분이 완료됩니다.

  11. TI 런타임은 TRM을 평가하고 표준 EXEC CICS 링크 호출을 사용하여 CICS COMMAREA를 통해 동시 서버 프로그램에 데이터를 전달합니다. 또한 TI 런타임은 소켓(즉, 2 바이트) 종료를 보낸 다음 회신 데이터를 기다립니다.

  12. 동시 서버는 애플리케이션 요청 데이터를 받은 후 TRM 클라이언트 메시지 헤더에 지정된 서비스 애플리케이션에 연결됩니다. CICS EXEC CICS LINK 명령은 실제 서버 애플리케이션을 시작하는 데 사용됩니다. Link 명령은 COMTI TCP 전송에서 받은 애플리케이션 데이터를 일반 메모리(COMMAREA) 영역으로 전달하고 데이터에 대한 비즈니스 논리를 수행합니다. 모든 비즈니스 논리는 서버 TP에서 정의됩니다.

  13. 서버 애플리케이션 프로그램은 요청 처리를 완료하고 회신을 작성한 후 EXEC CICS RETURN 명령을 실행하여 동시 서버(mscmtics. cbl) 프로그램에 제어를 다시 제공합니다. 서버 TP는 표준 또는 사용자 지정 TRM과 함께 회신 데이터를 준비하고 COMMAREA의 데이터를 수락한 다음 COMMAREA를 통해 애플리케이션 회신 데이터를 TI TCP 전송으로 다시 보냅니다. 애플리케이션 데이터 처리 완료는 두 번째 교환 시퀀스의 종료를 나타냅니다.

  14. 동시 서버에서 소켓을 닫습니다.

  15. TI 자동화 프록시는 회신 데이터를 받고 회신을 처리합니다. TI 자동화 프록시는 다음을 수행합니다.

    1. TCP 전송 구성 요소에서 메시지를 받습니다.

    2. 메시지 버퍼를 읽습니다.

      애플리케이션이 COM+ 구성 요소인 경우 TI 자동화 프록시는 다음을 수행합니다.

    3. COBOL 데이터 형식을 자동화 데이터에 매핑합니다.

    4. 변환 루틴을 호출하여 메인프레임 COBOL 형식을 애플리케이션 데이터로 변환합니다.

      애플리케이션이 .NET Framework 어셈블리인 경우 TI 자동화 프록시는 다음을 수행합니다.

    5. COBOL 데이터 형식을 .NET Framework 데이터 형식에 매핑합니다.

    6. 변환 루틴을 호출하여 메인프레임 COBOL 형식을 애플리케이션 데이터로 변환합니다.

  16. TI 런타임은 메서드를 호출한 .NET Framework 애플리케이션 또는 COM에 변환된 데이터를 다시 보냅니다.

    이 모델을 구현하려면 TI에 IP 주소, 포트 번호, CICS 프로그램 이름을 제공하여 동시 서버 프로그램(Mscmtics.cbl)에서 전달한 애플리케이션을 실행해야 합니다. 이 모델을 사용하려면 IBM에서 제공하는 기본 수신기(EZACIC02)를 CICS 내에 설치해야 합니다. CICS IBM 기본 수신기는 IBM에서 제공하는 기본 설정을 사용합니다.

    Host Integration Server에는 TCP TRM Link 프로그래밍 모델을 구현하는 방법을 보여 주는 샘플 코드가 포함되어 있습니다. 샘플 코드는 \installation directory\SDK\Samples\AppInt에 있습니다. Microsoft Visual Studio를 시작하고 선택한 자습서를 연 다음, 추가 정보의 지침을 따릅니다.

    메인프레임 구성 및 TCP/IP용 서버 애플리케이션 작성에 대한 자세한 내용은 TCP/IP V3R2 for MVS: CICS TCP/IP Socket Interface Guide(MVS용 TCP/IP V3R2: CICS TCP/IP 소켓 인터페이스 가이드)(IBM 문서 #SC31-7131)를 참조하세요.

참고 항목

트랜잭션 통합자 구성 요소
트랜잭션 요청 메시지
Automation에서 z/OS COBOL로 데이터 형식 변환]
z/OS COBOL에서 Automation으로 데이터 형식 변환
CICS 구성 요소
적절한 프로그래밍 모델 선택
프로그래밍 모델