다음을 통해 공유


TCP ELM(향상된 수신기 메시지) 링크

TCP ELM(향상된 수신기 메시지) 링크 모델을 사용하면 COMMAREA를 사용하여 TI와 서버 TP 간에 데이터 및 매개 변수를 전달할 수 있습니다. 또한 이 모델을 사용하여 동시 서버에서 CICS DPL 프로그램에 연결할 수 있습니다. 향상된 수신기는 CICS Transaction Server 버전 1.4에서 도입되었으며, 해당 아키텍처는 TRM 및 TRM 회신 시퀀스를 제거하여 CICS TCP/IP 환경의 효율성을 향상합니다. 향상된 수신기는 초기 스트림에서 클라이언트의 헤더 및 요청 데이터를 수락하며, 애플리케이션 데이터를 사용할 수 있게 되기 전에 서버 애플리케이션이 별도의 응답을 제공할 필요가 없습니다. 향상된 수신기를 사용하려면 클라이언트가 다음을 수행해야 합니다.

  • 요청 헤더와 애플리케이션 요청 데이터로 구성된 단일 데이터 스트림을 생성하고 서버 애플리케이션 프로그램에 보냅니다.

  • 서버 애플리케이션 프로그램에서 회신 헤더 및 애플리케이션 데이터로 구성된 단일 데이터 스트림을 받습니다.

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

    클라이언트, 향상된 CICS 수신기, 동시 서버 및 메인프레임 트랜잭션 프로그램 간에 발생하는 워크플로를 보여 주는 이미지입니다.

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

  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. 향상된 수신기는 연결 요청을 수락하고 ELM을 보내도록 TI 런타임에 지시합니다. 그런 다음, 향상된 수신기는 ELM을 대기합니다.

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

  6. TI 런타임은 ELM의 서식을 지정하고 향상된 수신기로 보냅니다. 그러면 TI는 ELM 회신을 대기하는 전송 논리를 무시하고 요청 헤더 다음에 바로 애플리케이션 요청 데이터를 보냅니다. TI는 ELM 회신을 대기합니다.

  7. 향상된 수신기는 35바이트 ELM을 받은 다음, ELM 헤더의 내용을 읽습니다. 향상된 수신기는 35바이트를 TIM(트랜잭션 초기 메시지)에 배치하지만 해당 내용에서는 작업하지 않습니다.

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

  8. 향상된 수신기는 수신기 정의에 정의된 동시 서버 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 수신기에서 닫은 소켓에 따라 결정됩니다.

  9. 향상된 수신기는 호스트 환경에서 소켓 API(애플리케이션 프로토콜 인터페이스)를 호출합니다. 향상된 수신기는 동시 서버 트랜잭션에 대해 시작 명령을 실행한 후 애플리케이션 처리 루프를 벗어나 들어오는 다른 요청을 수신 대기할 수 있습니다.

  10. 동시 서버는 TIM을 검색하고, 소켓을 연결하고, ELM의 내용을 읽습니다.

  11. TI는 표준 EXEC CICS Link 호출을 사용하는 비즈니스 논리가 포함된 서버 애플리케이션 프로그램에 CICS COMMAREA를 통해 애플리케이션 데이터를 전달합니다. 또한 TI 런타임은 보내는 1/2 소켓에 대한 종료를 발급한 다음, 회신 데이터를 대기합니다.

  12. 서버 TP는 애플리케이션 데이터를 받고, 요청을 처리하고, 데이터에 대해 비즈니스 논리를 수행합니다. 모든 비즈니스 논리는 서버 TP에 정의됩니다.

  13. 동시 서버는 COMMAREA를 통해 TI에 ELM 회신 헤더를 보냅니다.

  14. 서버 TP는 회신 데이터를 준비한 다음, COMMAREA를 통해 클라이언트에 응답을 보냅니다.

  15. 애플리케이션 회신 데이터 스트림은 두 부분으로 구성됩니다. 첫 번째는 요청의 성공 또는 실패에 대해 전송에 알리는 ELM 회신입니다. TCP 전송은 스트림의 ELM 회신을 사용한 다음, ELM 회신에 호출이 성공한 것으로 표시되면 동시 서버에서 소켓을 닫을 때까지 애플리케이션 회신 데이터를 받습니다.

  16. 동시 서버가 소켓을 닫습니다.

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

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

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

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

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

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

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

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

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

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

    이 모델을 구현하려면 TI에 IP 주소, 포트 번호, CICS 프로그램 이름을 제공하여 동시 서버 프로그램(Mscmtics.cbl)에서 전달한 애플리케이션을 실행해야 합니다.

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

참고 항목

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