다음을 통해 공유


TCP TRM 사용자 데이터

TCP TRM(트랜잭션 요청 메시지) 사용자 데이터 프로그래밍 모델을 사용하면 데이터 및 매개 변수를 TI와 호스트 TP 간에 직접 교환할 수 있습니다. TCP TRM 사용자 데이터 모델은 CICS 동시 서버 모델을 기반으로 합니다. 표준 수신기는 두 개의 네트워크 교환을 사용하여 단일 트랜잭션 프로그램을 실행하며 클라이언트에서 다음을 수행하도록 합니다.

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

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

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

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

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

    클라이언트가 기본 수신기를 시작한 다음 클라이언트에서 데이터를 보내고 받는 프로세스를 보여 주는 이미지입니다.
    클라이언트가 기본 수신기를 시작하고 동시 서버에 호출을 전달한 다음, 클라이언트에서 데이터를 보내고 받는 프로세스

TCP TRM 사용자 데이터 프로그래밍 모델의 워크플로 요약 다이어그램

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

  1. 애플리케이션은 구성 요소 서비스 또는 .NET Framework에 구성된 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. 표준 수신기는 연결 요청을 수락하고 TRM을 보내도록 TI 런타임에 지시합니다. 그런 다음, 표준 수신기는 TRM을 대기합니다.

    TRM은 TRANID를 사용하여 호출할 서버 TP를 식별하는 서식 있는 데이터 레코드입니다. CICS 수신기 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(Mscmtics.cbl 샘플 애플리케이션)의 TRANID로 식별되는 동시 서버 TP 프로그램을 시작합니다.

    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 수신기에서 닫은 소켓에 따라 결정됩니다.

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

    표준 CICS 수신기는 동시 서버 트랜잭션에 대해 시작 명령을 실행한 후 애플리케이션 처리 루프를 벗어나 들어오는 다른 요청을 수신 대기할 수 있습니다.

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

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

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

    1. TRM 회신의 서식을 지정합니다.

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

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

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

  4. TI는 TRM을 평가하고 데이터를 동시 서버에 전달합니다. 또한 TI는 소켓 종료를 보낸 다음 TI가 회신 데이터를 기다립니다.

  5. 동시 서버가 애플리케이션 요청 데이터를 수신한 후 서버는 데이터에 대한 비즈니스 논리를 수행합니다.

  6. 서버는 요청 처리 및 회신 작성을 완료한 후 회신 데이터를 준비하고 클라이언트에 직접 응답을 보냅니다. 애플리케이션 데이터 처리 완료는 두 번째 교환 시퀀스의 종료를 나타냅니다.

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

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

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

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

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

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

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

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

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

    Host Integration Server에는 TCP TRM Link 프로그래밍 모델을 구현하는 방법을 보여 주는 샘플 코드가 포함되어 있습니다. 샘플 코드는 \installation directory\SDK\Samples\AppInt에 있습니다. 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 런타임
적절한 프로그래밍 모델 선택
프로그래밍 모델