대화 상태가 변경되면 다음과 같은 결과가 발생할 수 있습니다.
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가 대화 상태를 변경할 필요가 없습니다. 요청을 무시할 수 있습니다.