RUI_BID
RUI_BID 동사는 RUI(요청 단위 인터페이스) 애플리케이션에 RUI_READ 사용하여 메시지를 읽기를 기다리고 있음을 알 수 있습니다.
다음 구조체는 RUI_BID 사용하는 VCB(동사 제어 블록)의 LUA_COMMON 멤버에 대해 설명합니다.
두 번째 구문 공용 구조체는 RUI_BID 사용되는 동사 제어 블록(VCB)의 LUA_SPECIFIC 멤버를 설명합니다. 다른 조합원은 명확성을 위해 생략됩니다.
구문
struct LUA_COMMON {
unsigned short lua_verb;
unsigned short lua_verb_length;
unsigned short lua_prim_rc;
unsigned long lua_sec_rc;
unsigned short lua_opcode;
unsigned long lua_correlator;
unsigned char lua_luname[8];
unsigned short lua_extension_list_offset;
unsigned short lua_cobol_offset;
unsigned long lua_sid;
unsigned short lua_max_length;
unsigned short lua_data_length;
char FAR * lua_data_ptr;
unsigned long lua_post_handle;
struct LUA_TH lua_th;
struct LUA_RH lua_rh;
struct LUA_FLAG1 lua_flag1;
unsigned char lua_message_type;
struct LUA_FLAG2 lua_flag2;
unsigned char lua_resv56[7];
unsigned char lua_encr_decr_option;
};
union LUA_SPECIFIC {
unsigned char lua_peek_data[12];
};
멤버
lua_verb
제공된 매개 변수입니다. RUI 동사에 대한 LUA_VERB_RUI 동사 코드를 포함합니다.
lua_verb_length
제공된 매개 변수입니다. LUA(논리 단위 애플리케이션) VCB의 길이(바이트)를 지정합니다. 발급되는 동사 레코드의 길이를 포함해야 합니다.
lua_prim_rc
동사가 완료될 때 LUA에서 설정한 기본 반환 코드입니다. 유효한 반환 코드는 발급된 LUA 동사에 따라 달라집니다.
lua_sec_rc
동사가 완료될 때 LUA에서 설정한 보조 반환 코드입니다. 유효한 반환 코드는 발급된 LUA 동사에 따라 달라집니다.
lua_opcode
제공된 매개 변수입니다. LUA_OPCODE_RUI_BID 발급할 동사에 대한 LUA 명령 코드(동사 작업 코드)를 포함합니다.
lua_correlator
제공된 매개 변수입니다. 동사를 다른 사용자가 제공한 정보와 연결하는 사용자가 제공한 값을 포함합니다. LUA는 이 정보를 사용하거나 변경하지 않습니다. 이 매개 변수는 선택적 요소입니다.
lua_luname
제공된 매개 변수입니다. Windows LUA 세션에서 사용하는 로컬 LU의 ASCII 이름을 지정합니다.
RUI_BIDlua_sid 0인 경우에만 이 매개 변수가 필요합니다.
이 매개 변수는 8바이트 길이로, 이름이 8자보다 짧은 경우 오른쪽에 공백(0x20)이 채워집니다.
lua_extension_list_offset
Microsoft® Host Integration Server의 RUI에서 사용되지 않으며 0으로 설정해야 합니다.
lua_cobol_offset
호스트 통합 서버에서 LUA에서 사용되지 않으며 0이어야 합니다.
lua_sid
제공된 매개 변수입니다. 세션 식별자를 지정하고 SLI_OPEN 및 RUI_INIT 반환합니다. 다른 동사는 이 매개 변수를 사용하여 명령에 사용되는 세션을 식별합니다. 다른 동사에서 lua_luname 매개 변수를 사용하여 세션을 식별하는 경우 lua_sid 매개 변수를 0으로 설정합니다.
lua_max_length
RUI_BID 사용되지 않으며 0으로 설정해야 합니다.
lua_data_length
반환된 매개 변수입니다. RUI_BID 대해lua_peek_data 반환되는 데이터의 길이를 지정합니다.
lua_data_ptr
이 매개 변수는 사용되지 않으며 0으로 설정해야 합니다.
lua_post_handle
제공된 매개 변수입니다. 이벤트에 의해 비동기 알림을 수행할 경우 Microsoft Windows Server에서 사용됩니다. 이 변수에는 신호를 받을 이벤트의 핸들 또는 창 핸들이 포함됩니다.
lua_th
반환된 매개 변수입니다. 받은 메시지의 SNA 전송 헤더(TH)를 포함합니다. 다양한 하위 매개 변수는 쓰기 함수에 대해 설정되고 읽기 및 입찰 함수에 대해 반환됩니다. 하위 매개 변수는 다음과 같습니다.
lua_th.flags_fid
형식 식별 유형 2, 4비트.
lua_th.flags_mpf
분할 매핑 필드, 두 비트. 데이터 세그먼트의 형식을 정의합니다. 유효한 값은 다음과 같습니다.
0x00 중간 세그먼트0x04 마지막 세그먼트0x08 첫 번째 세그먼트0x0C 세그먼트만
lua_th.flags_odai
OAF–DAF(원래 주소 필드– 대상 주소 필드) 할당자 표시기( 1비트)
lua_th.flags_efi
신속한 흐름 표시기, 1비트.
lua_th.daf
서명되지 않은 문자인 DAF(대상 주소 필드)입니다.
lua_th.oaf
서명되지 않은 문자인 OAF(원래 주소 필드)입니다.
lua_th.snf
시퀀스 번호 필드, 부호 없는 char[2].
lua_rh
반환된 매개 변수입니다. 보내거나 받은 메시지의 SNA 요청/응답 헤더(RH)를 포함합니다. 쓰기 함수에 대해 설정되고 읽기 및 입찰 함수에서 반환됩니다. 하위 매개 변수는 다음과 같습니다.
lua_rh.rri
요청 응답 표시기( 1비트).
lua_rh.ruc
RU 범주, 2비트. 유효한 값은 다음과 같습니다.
LUA_RH_FMD(0x00) FM 데이터 세그먼트LUA_RH_NC(0x20) 0x40(네트워크 제어LUA_RH_DFC) 0x60(데이터 흐름 제어LUA_RH_SC) 세션 제어
lua_rh.fi
서식 표시기( 1비트).
lua_rh.sdi
센스 데이터 포함 표시기( 1비트)
lua_rh.bci
체인 표시기를 시작합니다( 1비트).
lua_rh.eci
끝 체인 표시기( 1비트).
lua_rh.dr1i
명확한 응답 1 표시기, 1비트.
lua_rh.dr2i
명확한 응답 2 표시기, 1비트.
lua_rh.ri
예외 응답 표시기(요청의 경우) 또는 응답 유형 표시기(응답의 경우) 1비트입니다.
lua_rh.qri
큐에 대기된 응답 표시기( 1비트)
lua_rh.pi
속도 표시기, 1비트.
lua_rh.bbi
대괄호 표시기를 시작합니다( 1비트).
lua_rh.ebi
끝 대괄호 표시기, 1비트.
lua_rh.cdi
방향 표시기( 1비트)를 변경합니다.
lua_rh.csi
코드 선택 표시기, 1비트.
lua_rh.edi
암호화된 데이터 표시기( 1비트).
lua_rh.pdi
패딩된 데이터 표시기( 1비트)
lua_flag1
제공된 매개 변수입니다. 애플리케이션에서 제공하는 메시지에 대한 플래그를 포함하는 데이터 구조를 포함합니다. 하위 매개 변수는 다음과 같습니다.
lua_flag1.bid_enable
입찰 사용 표시기( 1비트).
lua_flag1.close_abend
즉시 표시기를 닫습니다( 1비트).
lua_flag1.nowait
데이터 플래그가 1비트일 때까지 기다리지 않습니다.
lua_flag1.sscp_exp
SSCP 신속한 흐름, 1비트.
lua_flag1.sscp_norm
SSCP 일반 흐름, 1비트.
lua_flag1.lu_exp
LU 신속한 흐름, 1비트.
lua_flag1.lu_norm
LU 일반 흐름, 1비트.
lua_message_type
반환된 매개 변수입니다. RUI_BID 표시되는 SNA 메시지 유형을 지정합니다. 가능한 값은 다음과 같습니다.
LUA_MESSAGE_TYPE_LU_DATA
LUA_MESSAGE_TYPE_SSCP_DATA
LUA_MESSAGE_TYPE_BID
LUA_MESSAGE_TYPE_BIND
LUA_MESSAGE_TYPE_BIS
LUA_MESSAGE_TYPE_CANCEL
LUA_MESSAGE_TYPE_CHASE
LUA_MESSAGE_TYPE_CLEAR
LUA_MESSAGE_TYPE_CRV
LUA_MESSAGE_TYPE_LUSTAT_LU
LUA_MESSAGE_TYPE_LUSTAT_SSCP
LUA_MESSAGE_TYPE_QC
LUA_MESSAGE_TYPE_QEC
LUA_MESSAGE_TYPE_RELQ
LUA_MESSAGE_TYPE_RQR
LUA_MESSAGE_TYPE_RTR
LUA_MESSAGE_TYPE_SBI
LUA_MESSAGE_TYPE_SHUTD
LUA_MESSAGE_TYPE_SIGNAL
LUA_MESSAGE_TYPE_SDT
LUA_MESSAGE_TYPE_STSN
LUA_MESSAGE_TYPE_UNBIND
SLI(세션 수준 인터페이스)는 LUA 인터페이스 확장 루틴을 통해 BIND, CRV 및 STSN 요청을 수신하고 응답합니다.
LU_DATA, LUSTAT_LU, LUSTAT_SSCP 및 SSCP_DATA SNA 명령이 아닙니다.
lua_flag2
반환된 매개 변수입니다. LUA에서 반환하는 메시지에 대한 플래그를 포함합니다. 하위 매개 변수는 다음과 같습니다.
lua_flag2.bid_enable
1로 설정된 경우 RUI_BID 다시 사용하도록 설정되었음을 나타냅니다.
lua_flag2.async
1로 설정된 경우 LUA 인터페이스 동사가 비동기적으로 완료되었음을 나타냅니다.
lua_flag2.sscp_exp
1로 설정된 경우 SSCP 긴급 흐름을 나타냅니다.
lua_flag2.sscp_norm
1로 설정된 경우 SSCP 일반 흐름을 나타냅니다.
lua_flag2.lu_exp
1로 설정된 경우 LU 긴급 흐름을 나타냅니다.
lua_flag2.lu_norm
1로 설정된 경우 LU 정상 흐름을 나타냅니다.
lua_resv56
예약되어 있으며 0으로 설정해야 합니다.
lua_encr_decr_option
예약되어 있으며 0으로 설정해야 합니다.
lua_peek_data
RUI_BID 및 SLI_BID 동사에서 사용하는 LUA_SPECIFIC공용 구조체 멤버입니다. 반환된 매개 변수입니다. 읽기를 기다리는 데이터의 최대 12바이트를 포함합니다.
반환 코드
LUA_OK
기본 반환 코드입니다. 동사가 성공적으로 실행되었습니다.
LUA_CANCELED
기본 반환 코드; 동사가 다른 동사에 의해 취소되었기 때문에 동사가 성공적으로 완료되지 않았습니다.
LUA_TERMINATED
보조 반환 코드; 이 동사가 보류 중인 동안 RUI_TERM 발행되었습니다.
LUA_PARAMETER_CHECK
기본 반환 코드입니다. 매개 변수 오류로 인해 동사가 실행되지 않았습니다.
LUA_BAD_SESSION_ID
보조 반환 코드; lua_sid 잘못된 값이 VCB에 지정되었습니다.
LUA_BID_ALREADY_ENABLED
보조 반환 코드; 이전 RUI_BID 이미 미해결되었으므로 RUI_BID 거부되었습니다. 한 번에 하나의 RUI_BID 만 처리할 수 있습니다.
LUA_INVALID_POST_HANDLE
보조 반환 코드; 이벤트를 비동기 게시 방법으로 사용하는 Windows 운영 체제의 경우 Windows LUA VCB에 유효한 이벤트 핸들이 없습니다.
LUA_RESERVED_FIELD_NOT_ZERO
보조 반환 코드; 동사 레코드의 예약 필드 또는 이 동사에서 사용하지 않는 매개 변수가 0이 아닌 값으로 설정되었습니다.
LUA_VERB_LENGTH_INVALID
보조 반환 코드; LUA 동사가 LUA에서 예기치 않은 lua_verb_length 값으로 발급되었습니다.
LUA_STATE_CHECK
기본 반환 코드입니다. 동사가 잘못된 상태에서 발행되었으므로 실행되지 않았습니다.
LUA_NO_RUI_SESSION
보조 반환 코드; 이 동사에 지정된 LU 이름에 대한 RUI_INIT 아직 완료되지 않았습니다.
LUA_UNSUCCESSFUL
기본 반환 코드; 제공된 동사 레코드가 유효했지만 동사가 성공적으로 완료되지 않았습니다.
LUA_INVALID_PROCESS
보조 반환 코드; 이 동사를 발급한 프로세스는 이 세션에 대해 RUI_INIT 발급한 프로세스와 다릅니다. 세션을 시작한 프로세스만 해당 세션에서 동사를 발급할 수 있습니다.
LUA_NEGATIVE_RSP
기본 반환 코드; LUA는 호스트에서 받은 데이터에서 오류를 감지했습니다. 수신된 메시지를 RUI_READ 애플리케이션에 전달하는 대신 LUA는 메시지(체인에 있는 경우 체인의 나머지 부분)를 삭제하고 호스트에 부정적인 응답을 보냅니다.
LUA는 후속 RUI_READ 또는 RUI_BID 애플리케이션에 부정적인 응답이 전송되었음을 알립니다.
보조 반환 코드에는 음수 응답에서 호스트로 전송된 센스 코드가 포함됩니다. 반환할 수 있는 센스 코드 값을 해석하는 방법에 대한 자세한 내용은 LUA를 사용하는 SNA 고려 사항을 참조하세요.
보조 반환 코드 0은 체인 중간에 있는 메시지에 대한 이전 RUI_WRITE 후 LUA가 이 체인의 모든 메시지를 수신하고 삭제했음을 나타냅니다.
LUA_COMM_SUBSYSTEM_ABENDED
기본 반환 코드입니다. 다음 조건 중 하나를 나타냅니다.
이 대화에서 사용하는 노드에 ABEND가 발생했습니다.
TP(트랜잭션 프로그램)와 PU(물리적 단위) 2.1 노드 간의 연결이 끊어졌습니다(LAN 오류).
TP 컴퓨터의 SnaBase에서 ABEND가 발견되었습니다.
LUA_SESSION_FAILURE
기본 반환 코드; 필수 호스트 통합 서버 구성 요소가 종료되었습니다.LUA_LU_COMPONENT_DISCONNECTED
보조 반환 코드; 는 링크 서비스 또는 호스트 LU 문제로 인해 LUA 세션이 실패했음을 나타냅니다.
LUA_RUI_LOGIC_ERROR
보조 반환 코드; LUA 내에서 내부 오류가 검색되었습니다. 이 오류는 정상 작업 중에는 발생하지 않습니다.
LUA_INVALID_VERB
기본 반환 코드; 동사 코드 또는 작업 코드 또는 둘 다 잘못되었습니다. 동사가 실행되지 않았습니다.LUA_STACK_TOO_SMALL
기본 반환 코드입니다. 애플리케이션의 스택 크기가 너무 작아서 동사를 실행할 수 없습니다. 애플리케이션의 스택 크기를 늘리세요.LUA_COMM_SUBSYSTEM_NOT_LOADED
기본 반환 코드; 동사를 처리하는 동안 필수 구성 요소를 로드하거나 종료할 수 없습니다. 따라서 통신을 수행할 수 없습니다. 정정 작업은 시스템 관리자에게 문의하세요LUA_UNEXPECTED_DOS_ERROR
기본 반환 코드; 운영 체제 호출을 실행한 후 예기치 않은 운영 체제 반환 코드가 수신되고 보조 반환 코드에 지정됩니다.
설명
RUI_BID 메시지가 읽기를 기다리고 있다는 알림이 필요한 애플리케이션에서 사용됩니다. 이를 통해 애플리케이션은 RUI_READ 발급하기 전에 메시지를 처리하는 방법을 결정할 수 있습니다.
메시지를 사용할 수 있으면 RUI_BID 받은 메시지 흐름, 메시지 유형, 메시지의 TH 및 RH, 최대 12바이트의 메시지 데이터와 함께 반환됩니다.
RUI_BID RUI_READ 간의 기본 차이점은 RUI_BID 애플리케이션이 들어오는 메시지 큐에서 데이터를 제거하지 않고 데이터를 검사 수 있으므로 나중에 남아 액세스할 수 있다는 것입니다. RUI_READ 큐에서 메시지를 제거하므로 애플리케이션이 데이터를 읽을 때도 처리해야 합니다.
RUI_BID 사용하는 경우 다음 사항에 유의하세요.
이 동사가 발급되기 전에 RUI_INIT 성공적으로 완료되어야 합니다.
한 번에 하나의 RUI_BID 만 처리할 수 있습니다.
RUI_BID 성공적으로 완료되면 후속RUI_READlua_flag1.bid_enable을 설정하여 재발행할 수 있습니다. 동사가 이러한 방식으로 재발행되는 경우 애플리케이션은 RUI_BID 레코드와 연결된 스토리지를 해제하거나 수정하지 않아야 합니다.
RUI_READ 및 RUI_BID 모두 미해결 상태일 때 호스트에서 메시지가 도착하면 RUI_READ 완료되고 RUI_BID 진행 중입니다.
도착하는 각 메시지는 한 번만 입찰됩니다. RUI_BID 데이터가 특정 세션 흐름에서 대기 중임을 나타내면 애플리케이션은 데이터를 수신하기 위해 RUI_READ 문제를 발생합니다. 후속 RUI_BID RUI_READ 발행하여 입찰된 메시지가 수락될 때까지 해당 세션 흐름에 도착하는 데이터를 보고하지 않습니다.
일반적으로 이 동사에서 반환된 lua_data_length 매개 변수는 대기 중인 메시지의 총 데이터 길이가 아니라 lua_peek_data 데이터 길이만 나타냅니다(값이 12보다 작은 경우를 제외하고). 애플리케이션은 데이터를 허용하는 RUI_READ 데이터 길이가 메시지를 포함하기에 충분한지 확인해야 합니다.