Confirm(CPI-C)
Confirm 호출(함수 이름 cmcfm)은 LU(로컬 논리 단위)의 송신 버퍼 내용과 확인 요청을 파트너 프로그램에 보내고 확인을 기다립니다. Microsoft Windows의 경우 모든 CPI-C 통신에 대해 백그라운드 스레드를 실행하고 사용자 인터페이스에 대해서만 포그라운드 스레드를 유지합니다.
구문
CM_ENTRY Confirm(
unsigned char FAR *conversation_ID,
CM_INT32 FAR *request_to_send_received,
CM_INT32 FAR *return_code
);
매개 변수
conversation_ID
제공된 매개 변수입니다. 대화의 식별자를 지정합니다. 이 매개 변수의 값은 Initialize_Conversation 또는 Accept_Conversation 반환되었습니다.
request_to_send_received
반환된 매개 변수입니다. 수신 요청 표시기를 제공합니다. 가능한 값은 다음과 같습니다.
CM_REQ_TO_SEND_RECEIVED
파트너 프로그램은 Request_To_Send 발급하여 로컬 프로그램에 대화를 RECEIVE 상태로 변경하도록 요청합니다.
CM_REQ_TO_SEND_NOT_RECEIVED
파트너 프로그램은 Request_To_Send 발급하지 않았습니다. 이 값은 return_code CM_PROGRAM_PARAMETER_CHECK 또는 CM_PROGRAM_STATE_CHECK 설정되는 경우 관련이 없습니다.
return_code
이 호출에서 반환된 코드입니다. 유효한 반환 코드는 이 항목의 뒷부분에 나와 있습니다.
반환 코드
CM_OK
기본 반환 코드; 호출이 성공적으로 실행되었습니다. 파트너 프로그램에서 확인된 호출을 실행 했습니다 .
CM_OPERATION_NOT_ACCEPTED
기본 반환 코드; 이 대화에 대한 이전 작업이 불완전합니다.
CM_OPERATION_INCOMPLETE
기본 반환 코드; 작업이 완료되지 않았으며(처리 모드는 차단 해제 전용임) 아직 진행 중입니다. 프로그램은 Wait_For_Conversation 실행하여 작업 완료를 기다리거나 Cancel_Conversation 작업 및 대화를 취소할 수 있습니다. Specify_Windows_Handle 호출된 경우 애플리케이션은 Windows 메시지로 알림을 기다리며 Wait_For_Conversation 호출하지 않아야 합니다.
CM_PROGRAM_PARAMETER_CHECK
기본 반환 코드; 다음 중 하나가 발생했습니다.
conversation_ID 지정한 값이 잘못되었습니다.
로컬 프로그램에서 동기화 수준의 CM_NONE 대화에서 확인을 사용하려고 했습니다. 동기화 수준은 CM_CONFIRM 합니다.
CM_PROGRAM_STATE_CHECK
기본 반환 코드; 다음 중 하나가 발생했습니다.대화가 SEND 또는 SEND_PENDING 상태가 아닙니다.
로컬 프로그램의 기본 대화가 SEND 상태였고 로컬 프로그램이 논리 레코드 보내기를 완료하지 않았습니다.
CM_PRODUCT_SPECIFIC_ERROR
기본 반환 코드; 제품별 오류가 발생하여 제품 오류 로그에 기록되었습니다.CM_CONVERSATION_TYPE_MISMATCH
기본 반환 코드; 파트너 LU 또는 프로그램은 할당 요청에 지정된 대화 유형(기본 또는 매핑됨)을 지원하지 않습니다.CM_PIP_NOT_SPECIFIED_CORRECTLY
기본 반환 코드; 할당 요청은 비 CPI-C LU 6.2 트랜잭션 프로그램(TP)에 의해 거부되었습니다. 파트너 프로그램에는 CPI-C에서 지원하지 않는 하나 이상의 PIP 데이터 변수가 필요합니다.CM_SECURITY_NOT_VALID
기본 반환 코드; 할당 요청에 지정된 사용자 식별자 또는 암호는 파트너 LU에서 수락되지 않습니다.CM_SYNC LEVEL_NOT_SUPPORTED_PGM
기본 반환 코드; 파트너 프로그램은 할당 요청에 지정된 동기화 수준을 지원하지 않습니다.CM_TPN_NOT_RECOGNIZED
기본 반환 코드; 파트너 LU가 할당 요청에 지정된 프로그램 이름을 인식하지 못합니다.CM_TP_NOT_AVAILABLE_NO_RETRY
기본 반환 코드; 파트너 LU는 영구적 조건 때문에 할당 요청에 지정된 프로그램을 시작할 수 없습니다. 오류의 원인이 원격 노드에 기록될 수 있습니다. 오류가 수정될 때까지 할당을 다시 시도하지 마세요.CM_TP_NOT_AVAILABLE_RETRY
기본 반환 코드; 파트너 LU는 임시 조건으로 인해 할당 요청에 지정된 프로그램을 시작할 수 없습니다. 오류의 원인이 원격 노드에 기록될 수 있습니다. 할당을 다시 시도하세요.CM_PROGRAM_ERROR_PURGING
기본 반환 코드; 다음 중 하나가 발생했습니다.RECEIVE 또는 CONFIRM 상태인 동안 파트너 프로그램은 Send_Error 발급했습니다. 전송되었지만 아직 받지 않은 데이터는 제거됩니다.
오류 방향이 CM_RECEIVE_ERROR 설정된 SEND_PENDING 상태에서 파트너 프로그램은 Send_Error. 데이터가 제거되지 않았습니다.
CM_RESOURCE_FAILURE_NO_RETRY
기본 반환 코드; 다음 중 하나가 발생했습니다.대화는 영구적인 조건으로 인해 조기에 종료되었습니다. 오류가 수정될 때까지 다시 시도하지 마세요.
파트너 프로그램은 정상적으로 종료하기 전에 대화를 할당 취소하지 않았습니다.
CM_RESOURCE_FAILURE_RETRY
기본 반환 코드; 모뎀 오류와 같은 임시 조건으로 인해 대화가 조기에 종료되었습니다. 대화를 다시 시도합니다.CM_DEALLOCATED_ABEND
기본 반환 코드; 대화의 할당이 취소된 이유는 다음과 같습니다.원격 프로그램에서 형식 매개 변수가 CM_DEALLOCATE_ABEND 설정된 할당 취소 를 실행했습니다. 호출이 실행되었을 때 원격 프로그램에 대한 대화가 RECEIVE 상태이면 로컬 프로그램에서 전송되었지만 원격 프로그램에서 아직 받지 못한 정보가 제거됩니다.
파트너 프로그램은 정상적으로 종료되었지만 종료하기 전에 대화를 할당 취소하지 않았습니다.
CM_DEALLOCATED_ABEND_SVC
기본 반환 코드; 대화의 할당이 취소된 이유는 다음과 같습니다.파트너 프로그램에서 형식 매개 변수가 ABEND_SVC 설정된 할당 취소 를 실행했습니다.
파트너 프로그램은 종료하기 전에 대화를 할당 취소하지 않았습니다.
로컬 프로그램에서 이 호출을 실행할 때 파트너 프로그램에 대한 대화가 RECEIVE 상태이면 로컬 프로그램에서 보낸 데이터와 파트너 프로그램에서 아직 받지 못한 데이터가 제거됩니다.
CM_DEALLOCATED_ABEND_TIMER
기본 반환 코드; 파트너 프로그램에서 형식 매개 변수가 ABEND_TIMER 설정된 할당 취소 를 실행했기 때문에 대화의 할당이 취소되었습니다. 로컬 프로그램에서 이 호출을 실행할 때 파트너 프로그램에 대한 대화가 RECEIVE 상태이면 로컬 프로그램에서 보낸 데이터와 파트너 프로그램에서 아직 받지 못한 데이터가 제거됩니다.CM_SVC_ERROR_PURGING
기본 반환 코드; SEND 상태인 동안 파트너 프로그램 또는 파트너 LU는 형식 매개 변수가 SVC로 설정된 Send_Error 발급했습니다. 파트너 프로그램으로 전송된 데이터가 제거되었을 수 있습니다.상태 변경
확인이 실행될 때 대화는 SEND 또는 SEND_PENDING 상태일 수 있습니다.
다음 표에 요약된 상태 변경 내용은 return_code 매개 변수의 값을 기반으로 합니다.
return_code | 새 상태 |
---|---|
CM_OK | 변경 내용 없음 |
SEND 상태에서 호출이 실행되었습니다. | 변경 내용 없음 |
SEND_PENDING 상태에서 호출이 실행되었습니다. | SEND |
CM_PROGRAM_ERROR_PURGING | RECEIVE |
CM_SVC_ERROR_PURGING | RECEIVE |
CM_CONVERSATION_TYPE_MISMATCH | RESET |
CM_PIP_NOT_SPECIFIED_CORRECTLY | RESET |
CM_SECURITY_NOT_VALID | RESET |
CM_SYNC_LEVEL_NOT_SUPPORTED_PGM | RESET |
CM_TPN_NOT_RECOGNIZED | RESET |
CM_TP_NOT_AVAILABLE_NO_RETRY | RESET |
CM_TP_NOT_AVAILABLE_RETRY | RESET |
CM_RESOURCE_FAILURE_NO_RETRY | RESET |
CM_RESOURCE_FAILURE_RETRY | RESET |
CM_DEALLOCATED_ABEND | RESET |
CM_DEALLOCATED_ABEND_SVC | RESET |
CM_DEALLOCATED_ABEND_TIMER | RESET |
나머지 | 변경 내용 없음 |
설명
확인에 대한 응답으로 파트너 프로그램은 일반적으로 Confirmed를 발급하여 오류 없이 데이터를 수신했는지 확인합니다. (파트너 프로그램에서 오류가 발생하면 Send_Error 문제를 발생하거나 할당 취소 를 사용하여 대화를 비정상적으로 할당 취소합니다.)
프로그램은 대화 동기화 수준이 CM_CONFIRM 경우에만 확인을 실행할 수 있습니다.
파트너 프로그램의 응답을 기다리는지 확인합니다. 응답은 파트너 프로그램에서 다음 CPI-C 호출 중 하나에 의해 생성됩니다.
확인됨
Send_Error
5 대화 할당 취소 유형을 CM_DEALLOCATE_ABEND