다음을 통해 공유


TCP ELM 사용자 데이터

TCP ELM(향상된 수신기 메시지) 사용자 데이터 모델을 사용하면 TI와 서버 TP 간에 직접 데이터 및 매개 변수를 전달할 수 있습니다.

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

클라이언트, 향상된 CICS 수신기, 동시 서버 및 메인프레임 트랜잭션 프로그램 간에 발생하는 워크플로를 보여 주는 이미지입니다.
TCP ELM 사용자 데이터 프로그래밍 모델의 워크플로 요약

TCP ELM 사용자 데이터 프로그래밍 모델

TCP ELM 사용자 데이터 프로그래밍 모델은 다음과 같이 작동합니다.

  1. 애플리케이션은 TI .NET 개체에서 메서드를 호출합니다.

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

  3. TI 프록시는 다음을 수행합니다.

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

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

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

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

    4. COBOL 선언 또는 copybook을 나타내는 일반 데이터 스트림 버퍼를 작성합니다.

    5. 메시지를 TCP 전송 구성 요소에 전달합니다.

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

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

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

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

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

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

  8. 향상된 수신기는 EXEC CICS Start를 사용하여 ELM의 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에 있습니다. 이 모델을 사용하려면 먼저 메인프레임 컴퓨터에서 컴파일, 연결, 설치해야 합니다.

참고

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

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

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

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

참고

CICS 수신기의 오류 메시지는 문자 기반이며 항상 EZY 문자로 시작합니다. 오류 메시지의 길이는 변경될 수 있으며, 메시지의 끝은 CICS 수신기에서 닫은 소켓에 따라 결정됩니다. 향상된 수신기는 호스트 환경에서 소켓 API(애플리케이션 프로토콜 인터페이스)를 호출합니다. 향상된 수신기는 동시 서버 트랜잭션에 대해 시작 명령을 실행한 후 애플리케이션 처리 루프를 벗어나 들어오는 다른 요청을 수신 대기할 수 있습니다.

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

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

  2. 동시 서버는 TRM을 TI로 보내고 애플리케이션 요청 데이터를 대기합니다.

  3. TI는 TRM을 평가하고 데이터를 동시 서버 프로그램(Mscmtics.cbl)에 직접 전달합니다. 또한 TI는 소켓 종료를 보낸 다음 TI가 회신 데이터를 기다립니다.

  4. 데이터를 받은 후 서버 TP는 데이터에 대해 비즈니스 논리를 수행합니다. 모든 비즈니스 논리는 서버 TP에 정의됩니다.

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

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

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

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

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

      TI 프록시는 다음을 수행합니다.

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

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

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

    Host Integration Server에는 TCP ELM 사용자 데이터 프로그래밍 모델을 구현하는 방법을 보여 주는 샘플 코드가 포함되어 있습니다. 샘플 코드는 \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)를 참조하세요.

참고 항목

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