다음을 통해 공유


확인

CONFIRMED 동사는 TP(파트너 트랜잭션 프로그램)의 확인 요청에 응답합니다. 파트너 TP에 로컬 TP가 수신된 데이터의 오류를 감지하지 못했음을 알릴 수 있습니다. 확인 요청을 실행하는 TP가 확인을 대기하므로 CONFIRMED는 두 TP의 처리를 동기화합니다.

다음 구조체는 CONFIRMED 동사에서 사용하는 동사 제어 블록(VCB)을 설명합니다.

구문


struct confirmed {  
    unsigned short  opcode;  
    unsigned char   opext;  
    unsigned char   reserv2;  
    unsigned short  primary_rc;  
    unsigned long   secondary_rc;  
    unsigned char   tp_id[8];  
    unsigned long   conv_id;  
    unsigned char   rts_rcvd;  
};   

설명

멤버

opcode
제공된 매개 변수입니다. 동사 작업 코드 AP_B_CONFIRMED 지정합니다.

opext
제공된 매개 변수입니다. 동사 연산 확장 AP_BASIC_CONVERSATION 지정합니다.

reserv2
예약된 필드입니다.

primary_rc
반환된 매개 변수입니다. 동사를 완료할 때 APPC에서 설정하는 기본 반환 코드를 지정합니다. 유효한 반환 코드는 발행된 APPC 동사에 따라 다릅니다. 이 동사의 유효한 오류 코드는 반환 코드를 참조하세요.

secondary_rc
반환된 매개 변수입니다. 동사를 완료할 때 APPC에서 설정하는 보조 반환 코드를 지정합니다. 유효한 반환 코드는 발행된 APPC 동사에 따라 다릅니다. 이 동사의 유효한 오류 코드는 반환 코드를 참조하세요.

tp_id
제공된 매개 변수입니다. 로컬 TP를 식별합니다. 이 매개 변수의 값은 호출하는 TP의 TP_STARTED또는 호출된 TP의 RECEIVE_ALLOCATE 반환되었습니다.

conv_id
제공된 매개 변수입니다. 두 TP 간에 설정된 대화를 식별합니다. 이 매개 변수의 값은 호출하는 TP의 ALLOCATE 또는 호출된 TP의 RECEIVE_ALLOCATE 반환됩니다.

rts_rcvd
반환된 매개 변수입니다. 파트너 TP가 로컬 TP에 대화를 RECEIVE 상태로 변경하도록 요청하는 MC_REQUEST_TO_SEND 발급했는지 여부를 나타냅니다.

RECEIVE 상태로 변경하려면 로컬 TP가 MC_PREPARE_TO_RECEIVE, MC_RECEIVE_AND_WAIT 또는 MC_RECEIVE_AND_POST 사용할 수 있습니다.

반환 코드

AP_OK
기본 반환 코드입니다. 동사가 성공적으로 실행되었습니다.

AP_PARAMETER_CHECK
기본 반환 코드입니다. 매개 변수 오류로 인해 동사가 실행되지 않았습니다.

AP_BAD_CONV_ID

보조 반환 코드; conv_id 값이 APPC에서 할당한 대화 식별자와 일치하지 않습니다.

AP_BAD_TP_ID

보조 반환 코드; tp_id 값이 APPC에서 할당한 TP 식별자와 일치하지 않습니다.

AP_STATE_CHECK
기본 반환 코드입니다. 동사가 잘못된 상태에서 발행되었으므로 실행되지 않았습니다.

AP_CONFIRMED_BAD_STATE

보조 반환 코드; 대화가 CONFIRM, CONFIRM_SEND 또는 CONFIRM_DEALLOCATE 상태가 아닙니다.

AP_COMM_SUBSYSTEM_ABENDED
기본 반환 코드입니다. 다음 조건 중 하나를 나타냅니다.

  • 이 대화에서 사용하는 노드에 ABEND가 발생했습니다.

  • TP와 PU 2.1 노드 간의 연결이 끊어졌습니다(LAN 오류).

  • TP 컴퓨터의 SnaBase에서 ABEND가 발생했습니다.

    시스템 관리자는 오류 로그를 검사하여 ABEND의 원인을 확인해야 합니다.

    AP_COMM_SUBSYSTEM_NOT_LOADED
    기본 반환 코드입니다. 동사를 처리하는 동안 필수 구성 요소를 로드하거나 종료할 수 없습니다. 따라서 통신을 수행할 수 없습니다. 정정 작업은 시스템 관리자에게 문의하세요

    AP_CONVERSATION_TYPE_MIXED
    기본 반환 코드; TP는 기본 및 매핑된 대화 동사를 모두 실행했습니다. 단일 대화에서 하나의 형식만 발급할 수 있습니다.

    AP_INVALID_VERB_SEGMENT
    기본 반환 코드입니다. VCB가 데이터 세그먼트의 끝을 넘어 확장되었습니다.

    AP_STACK_TOO_SMALL
    기본 반환 코드입니다. 애플리케이션의 스택 크기가 너무 작아서 동사를 실행할 수 없습니다. 애플리케이션의 스택 크기를 늘리세요.

    AP_CONV_BUSY
    기본 반환 코드; 모든 대화에서 한 번에 하나의 미해결 대화 동사만 있을 수 있습니다. 로컬 TP에 여러 스레드가 있고 둘 이상의 스레드가 동일한 conv_id 사용하여 APPC 호출을 실행하는 경우에 발생할 수 있습니다.

    AP_THREAD_BLOCKING
    기본 반환 코드입니다. 호출 스레드가 이미 차단 호출에 있습니다.

    AP_UNEXPECTED_DOS_ERROR
    기본 반환 코드입니다. 로컬 TP의 APPC 호출을 처리하는 동안 운영 체제가 APPC에 오류를 반환했습니다. 운영 체제 반환 코드는 secondary_rc를 통해 반환됩니다. Intel 바이트 스와핑 순서로 표시됩니다. 문제가 지속되면 시스템 관리자에게 문의하세요.

    주의

    TP가 이 동사를 발급할 때 대화는 다음 상태 중 하나여야 합니다.

  • 확인

  • CONFIRM_SEND

  • CONFIRM_DEALLOCATE

    새 상태는 이전 상태(로컬 TP가 CONFIRMED를 발급한 경우 대화의 상태)에 의해 결정됩니다. 이전 상태는 이전 수신 동사의 what_rcvd 매개 변수 값으로 표시됩니다. 다음과 같은 상태 변경이 가능합니다.

이전 상태 새 상태
확인 RECEIVE
CONFIRM_SEND SEND
CONFIRM_DEALLOCATE RESET

확인 요청

파트너 TP의 다음 동사 중 하나에 의해 확인 요청이 발급됩니다.

  • 확인

  • PREPARE_TO_RECEIVEptr_type AP_SYNC_LEVEL 설정되고 대화의 동기화 수준( ALLOCATE에서 설정)이 AP_CONFIRM_SYNC_LEVEL

  • dealloc_typeAP_SYNC_LEVEL 설정되고 대화의 동기화 수준( ALLOCATE에서 설정)이 AP_CONFIRM_SYNC_LEVEL

  • SEND_DATA 형식이 AP_SEND_DATA_CONFIRM 설정되고 대화의 동기화 수준( ALLOCATE에서 설정)이 AP_CONFIRM_SYNC_LEVEL

    다음 동사 중 하나의 what_rcvd 매개 변수를 통해 로컬 TP에서 확인 요청을 받습니다.

  • RECEIVE_IMMEDIATE

  • RECEIVE_AND_WAIT

  • RECEIVE_AND_POST

    CONFIRMEDwhat_rcvd 다음 값 중 하나가 포함된 경우에만 로컬 TP에서 발급됩니다.

  • AP_CONFIRM_WHAT_RECEIVED

  • AP_CONFIRM_SEND

  • AP_CONFIRM_DEALLOCATE

    rtn_status 매개 변수가 AP_YES 설정된 경우 what_rcvd 다음 값을 포함할 수도 있습니다.

  • AP_DATA_COMPLETE_CONFIRM

  • AP_DATA_COMPLETE_CONFIRM_SEND

  • AP_DATA_COMPLETE_CONFIRM_DEALL

    기본 대화의 경우 what_rcvd 다음 값을 포함할 수도 있습니다.

  • AP_DATA_CONFIRM

  • AP_DATA_CONFIRM_SEND

  • AP_DATA_CONFIRM_DEALLOCATE