MC_TEST_RTS_AND_POST
MC_TEST_RTS_AND_POST 동사를 사용하면 애플리케이션(일반적으로 5250 에뮬레이터)이 TP(파트너 트랜잭션 프로그램)가 전송 방향을 요청할 때 비동기 알림을 요청할 수 있습니다.
다음 구조체는 MC_TEST_RTS_AND_POST 동사에서 사용하는 VCB(동사 제어 블록)에 대해 설명합니다.
구문
struct mc_test_rts_and_post {
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 reserv3;
unsigned long handle;
};
구성원
opcode
제공된 매개 변수입니다. AP_M_TEST_RTS_AND_POST 동사 작업 코드를 지정합니다.
opext
제공된 매개 변수입니다. AP_MAPPED_CONVERSATION 동사 연산 확장을 지정합니다.
reserv2
예약된 필드입니다.
primary_rc
반환된 매개 변수입니다. 동사를 완료할 때 APPC에서 설정하는 기본 반환 코드를 지정합니다. 유효한 반환 코드는 발행된 APPC 동사에 따라 다릅니다. 이 동사의 유효한 오류 코드는 반환 코드를 참조하세요.
secondary_rc
반환된 매개 변수입니다. 동사를 완료할 때 APPC에서 설정하는 보조 반환 코드를 지정합니다. 유효한 반환 코드는 발행된 APPC 동사에 따라 다릅니다. 이 동사의 유효한 오류 코드는 반환 코드를 참조하세요.
tp_id
제공된 매개 변수입니다. 로컬 TP를 식별합니다. 이 매개 변수의 값은 호출하는 TP의 TP_STARTED 또는 호출된 TP의 RECEIVE_ALLOCATE 의해 반환되었습니다.
conv_id
제공된 매개 변수입니다. 대화 식별자를 제공합니다. 이 매개 변수의 값은 호출하는 TP의 MC_ALLOCATE 또는 호출된 TP의 RECEIVE_ALLOCATE 의해 반환되었습니다.
reserv3
예약된 필드입니다.
처리
제공된 매개 변수입니다. Microsoft Windows에서 이 필드는 설정할 이벤트 핸들을 제공합니다.
초기 동사에서 코드 반환
AP_OK
기본 반환 코드입니다. 동사가 성공적으로 실행되었습니다. 특히 초기 동사에서 AP_OK 반환 코드는 파트너 TP로부터 받은 MC_REQUEST_TO_SEND 동사를 나타내지 않습니다. 비동기 알림을 받을 수 있는 기능이 등록되었음을 나타냅니다.
AP_UNSUCCESSFUL
기본 반환 코드; 요청-송신 알림이 수신되지 않았습니다.
AP_PARAMETER_CHECK
기본 반환 코드입니다. 매개 변수 오류로 인해 동사가 실행되지 않았습니다.
AP_BAD_CONV_ID
보조 반환 코드; conv_id 값이 APPC에서 할당한 대화 식별자와 일치하지 않습니다.
AP_BAD_TP_ID
보조 반환 코드; tp_id 값이 APPC에서 할당한 TP 식별자와 일치하지 않습니다.
AP_COMM_SUBSYSTEM_ABENDED
기본 반환 코드입니다. 다음 조건 중 하나를 나타냅니다.
이 대화에서 사용하는 노드에 ABEND가 발생했습니다.
TP와 PU 2.1 노드 간의 연결이 끊어졌습니다(LAN 오류).
TP 컴퓨터의 SnaBase에서 ABEND가 발생했습니다.
시스템 관리자는 오류 로그를 검사하여 ABEND의 원인을 확인해야 합니다.
AP_COMM_SUBSYSTEM_NOT_LOADED
기본 반환 코드; 동사를 처리하는 동안 필수 구성 요소를 로드하거나 종료할 수 없습니다. 따라서 통신을 수행할 수 없습니다. 정정 작업은 시스템 관리자에게 문의하세요이 반환 코드를 MC_ALLOCATE 사용하면 LU(로컬 논리 단위)를 지원하는 통신 시스템을 찾을 수 없음을 나타낼 수 있습니다. (예를 들어 TP_STARTED 로 지정된 로컬 LU 별칭이 잘못되었거나 구성되지 않았습니다.) lu_alias 또는 mode_name 8자 미만인 경우 이러한 필드가 오른쪽의 공백으로 채워져 있는지 확인해야 합니다. MC_ALLOCATE 요청을 충족 할 수 있는 노드가 없으므로 이러한 매개 변수가 공백으로 채워지지 않으면 이 오류가 반환됩니다.
MC_ALLOCATE 여러 노드로 구성된 Host Integration Server 클라이언트 시스템에 대해 이 반환 코드를 생성하는 경우 다음과 같이 두 개의 보조 반환 코드가 있습니다.
0xF0000001
보조 반환 코드; 노드가 시작되지 않았습니다.
0xF0000002
보조 반환 코드; 하나 이상의 노드가 시작되었지만 로컬 LU( TP_STARTED 실행될 때)가 활성 노드에서 구성되지 않았습니다. 문제는 다음 중 하나일 수 있습니다.
로컬 LU가 있는 노드가 시작되지 않았습니다.
로컬 LU가 구성되지 않았습니다.
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 바이트 스와핑 순서로 표시됩니다. 문제가 지속되면 시스템 관리자에게 문의하세요.
비동기 완료에서 코드 반환
AP_OK
기본 반환 코드; 파트너 TP로부터 송신 요청 알림을 받았습니다.
AP_CANCELLED
미해결 TEST_RTS_AND_POST 동사가 종료되었습니다. 이 문제는 기본 대화의 할당이 취소되었거나 AP_TP_ENDED 실행된 경우에 발생합니다. RECEIVE_AND_POST 마찬가지로 TP는 여전히 대화를 올바르게 종료하고 TP를 종료할 책임이 있습니다. 이 시점에서 RECEIVE_IMMEDIATE 같은 다른 동사를 실행하면 대화 실패의 이유가 표시됩니다.
설명
TP가 이 동사를 발급할 때 RESET을 제외한 모든 상태에 있을 수 있습니다. 상태 변경은 없습니다.
5250 에뮬레이터와 같은 많은 APPC 애플리케이션의 일반적인 기능은 파트너의 전송 요청을 검색하기 위한 요구 사항입니다. 현재 이 작업은 APPC 인터페이스를 폴링하여 파트너의 요청을 검색하여 수행할 수 있습니다. 예를 들어 애플리케이션은 때때로 다음 동사 중 하나를 실행할 수 있습니다.
MC_TEST_RTS
rts_rcvd 필드 MC_RECEIVE_IMMEDIATE 및 검사
0바이트로 MC_SEND_DATArts_rcvd 필드를 다시 확인합니다.
이 폴링 접근 방식과 관련된 몇 가지 문제는 다음과 같습니다.
애플리케이션은 APPC를 폴링하기 위해 기본 작업을 지속적으로 중단해야 합니다.
파트너의 요청은 사용 가능한 즉시 검색되지 않습니다.
이러한 접근 방식은 프로세서 집약적입니다.
MC_TEST_RTS_AND_POST 동사를 사용하면 파트너 TP가 방향을 보낼 때 Windows에서 실행되는 애플리케이션(일반적으로 5250 에뮬레이터)이 비동기 알림을 요청할 수 있습니다.
APPC 애플리케이션은 일반적으로 SEND 상태인 동안 MC_TEST_RTS_AND_POST 동사를 발급한 다음 기본 처리를 계속합니다. 파트너 TP의 송신 방향 요청은 애플리케이션에 비동기적으로 표시됩니다. 파트너의 요청을 처리한 후 애플리케이션은 일반적으로 SEND 상태로 돌아와 MC_TEST_RTS_AND_POST 다시 실행하고 계속합니다.
MC_TEST_RTS_AND_POST 동사가 동기적으로 완료되고 반환 코드 AP_OK 비동기 알림 요청이 등록되었음을 나타냅니다. 이는 파트너 TP로부터 송신 요청을 받았다는 것을 의미하지는 않는다는 점을 강조하는 것이 중요합니다.
파트너의 보내기 요청을 받으면 비동기 이벤트 완료가 발생합니다. 로컬 TP의 원래 MC_TEST_RTS_AND_POST 동사가 완료되기 전일 수 있습니다. 이는 로컬 TP의 MC_TEST_RTS_AND_POST 동사가 발급되기 전에 또는 로컬 TP의 MC_TEST_RTS_AND_POST동사가 처리되는 동안 파트너의 송신 요청을 받은 경우입니다.