다음을 통해 공유


대화 상태 변경(CPI-C)

대화 상태가 변경되면 다음과 같은 결과가 발생할 수 있습니다.

  • TP(로컬 트랜잭션 프로그램)에서 수행한 호출입니다.

  • 파트너 TP가 수행한 호출입니다.

  • 오류 조건입니다.

    다음 예제에서는 통신용 공용 프로그래밍 인터페이스(CPI-C) 호출이 대화 상태를 SEND에서 RECEIVE로, RECEIVE에서 SEND로 변경하는 방법을 보여 줍니다.

비고

모든 TP는 호출 TP(대화를 시작한 TP) 또는 호출 가능한 TP(대화 시작 요청에 응답한 TP)이든 관계없이 데이터를 보내거나 받을 수 있습니다.

이 예제에서는 CPI-C 호출이 대화 상태를 변경하는 방법을 보여줍니다. 이 표에서 각 대화 상태는 굵게 표시되고 해당 상태에 있는 동안 사용되는 CPI-C 호출 앞에 표시됩니다.

호출 TP에 의해 발급됨 호출 가능한 TP에서 발급됨
대화 상태: RESET
Initialize_Conversation
대화 상태: INITIALIZE
동기화_수준_설정
(sync_level=CM_CONFIRM)
할당하다
대화 상태: SEND
데이터_전송
받을 준비하기 대화 상태: RESET
대화_수락
대화 상태: RECEIVE
(status_received= CM_CONFIRM_SEND_RECEIVED)
대화 상태: CONFIRM_SEND
확인
대화 상태: SEND
(return_code=CM_OK) 데이터_전송
대화 상태: RECEIVE 확인
(status_received= CM_CONFIRM_RECEIVED)
대화 상태: 확인
전송 요청
확인됨
대화 상태: RECEIVE (return_code=CM_OK)
요청_전송_수신= CM_REQ_TO_SEND_RECEIVED
수신 준비
받다
(status_received= CM_CONFIRM_SEND_RECEIVED)
대화 상태: CONFIRM_SEND
확인됨
대화 상태: SEND (return_code=CM_OK)
대화 상태: RECEIVE
데이터_전송
할당
받다
(status_received= CM_CONFIRM_DEALLOC_RECEIVED)
대화 상태:
CONFIRM_DEALLOCATE
확인됨
(반환 코드=CM_OK) 대화 상태: RESET
대화 상태: RESET

초기 상태

대화가 할당되기 전에 두 TP의 상태는 리셋됩니다.

이 예제에서 대화가 할당된 후 초기 상태는 호출하는 TP에 대한 SEND이고, 호출 가능한 TP에 대한 RECEIVE입니다.

RECEIVE 상태로 변경

Prepare_To_Receive 호출을 사용하면 TP가 대화를 SEND에서 RECEIVE 상태로 변경할 수 있습니다. 이 호출:

  • 로컬 LU의 송신 버퍼를 비웁니다.

  • 동기화 수준이 CM_CONFIRM 설정되어 있으므로 수신 호출의 status_received 매개 변수를 통해 파트너 TP에 CM_CONFIRM_SEND 표시기를 보냅니다. 이 표시기는 파트너 TP가 데이터 보내기를 시작하기 전에 확인된 응답이 예상된다는 것을 파트너 TP에 알려줍니다.

SEND 상태로 변경

Request_To_Send 호출은 파트너 TP(대화가 SEND 상태인 경우)에 로컬 TP(대화가 RECEIVE 상태)가 데이터를 보내려고 했음을 알릴 수 있습니다. 이 요청은 Confirm 호출의 request_to_send_received 매개 변수를 통해 파트너 TP에 전달됩니다. request_to_send_received 매개 변수는 Send_Data 및 기타 호출에도 반환됩니다.

파트너 TP가 Prepare_To_Receive 호출을 실행하면 대화 상태가 파트너 TP에 대한 RECEIVE로 변경되므로 로컬 TP가 데이터를 보낼 수 있습니다.

중요합니다

Request_To_Send 발급해도 대화의 상태는 변경되지 않습니다. 전송 요청을 받으면 파트너 TP가 대화 상태를 변경할 필요가 없습니다. 요청을 무시할 수 있습니다.