RUI_WRITE
Il verbo RUI_WRITE invia una richiesta O un'unità di risposta SNA dall'applicazione luA (Logical Unit Application) all'host tramite la sessione LU o la sessione del punto di controllo dei servizi di sistema (SSCP) e invia risposte, comandi SNA e dati da un'applicazione LUA di Microsoft® Windows® all'host LUA.
Nella struttura seguente viene descritto il membro LUA_COMMON del blocco di controllo verbo (VCB) utilizzato da RUI_WRITE.
Sintassi
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;
};
Members
lua_verb
Parametro fornito. Contiene il codice verbo LUA_VERB_RUI per i verbi URI (Request Unit Interface).
lua_verb_length
Parametro fornito. Specifica la lunghezza in byte del VCB LUA. Deve contenere la lunghezza del record verbo da emettere.
lua_prim_rc
Codice restituito primario impostato da LUA al completamento del verbo. I codici restituiti validi variano a seconda del verbo LUA emesso.
lua_sec_rc
Codice restituito secondario impostato da LUA al completamento del verbo. I codici restituiti validi variano a seconda del verbo LUA emesso.
lua_opcode
Parametro fornito. Contiene il codice del comando LUA (codice dell'operazione verbo) per il verbo da emettere, LUA_OPCODE_RUI_WRITE.
lua_correlator
Parametro fornito. Contiene un valore fornito dall'utente che collega il verbo con altre informazioni fornite dall'utente. LUA non usa o modifica queste informazioni. Questo parametro è facoltativo e,
lua_luname
Parametro fornito. Specifica il nome ASCII dell'lu locale utilizzato dalla sessione LUA di Windows.
RUI_WRITE richiede questo parametro solo se lua_sid è zero.
Questo parametro è lungo otto byte, riempito a destra con spazi (0x20) se il nome è più breve di otto caratteri.
lua_extension_list_offset
Non usato dalla URI in Microsoft® Host Integration Server e deve essere impostato su zero.
lua_cobol_offset
Non usato da LUA in Host Integration Server e deve essere zero.
lua_sid
Parametro fornito e restituito. Specifica l'identificatore di sessione e viene restituito da SLI_OPEN e RUI_INIT. Altri verbi usano questo parametro per identificare la sessione usata per il comando . Se altri verbi usano il parametro lua_luname per identificare le sessioni, impostare il parametro lua_sid su zero.
lua_max_length
Non usato da RUI_WRITE e deve essere impostato su zero.
lua_data_length
Parametro restituito. Specifica la lunghezza dei dati restituiti in lua_peek_data per il verbo RUI_BID .
lua_data_ptr
Punta al buffer contenente i dati da inviare all'host tramite RUI_WRITE.
Entrambi i comandi e i dati SNA vengono inseriti in questo buffer e possono essere in formato EBCDIC.
lua_post_handle
Parametro fornito. Utilizzato in Microsoft Windows se la notifica asincrona deve essere eseguita dagli eventi. Questa variabile contiene l'handle dell'evento da segnalare o un handle di finestra.
lua_th
Parametro restituito. Contiene l'intestazione di trasmissione SNA (TH) del messaggio inviato o ricevuto. Vari sottoparametri sono impostati per le funzioni di scrittura e restituite per le funzioni di lettura e offerta. I relativi sottoparametri sono i seguenti:
lua_th.flags_fid
Tipo di identificazione del formato 2, quattro bit.
lua_th.flags_mpf
Campo di mapping segmentazione, due bit. Definisce il tipo di segmento di dati. I valori seguenti sono validi:
0x00 Segmento intermedio0x04 Segmento ultimo0x08 Segmento primo0x0C Solo segmento
lua_th.flags_odai
Indicatore dell'assegnatore OAF-DAF (Address Field-DAF) di origine, un bit.
lua_th.flags_efi
Indicatore di flusso accelerato, un bit.
lua_th.daf
Campo indirizzo di destinazione (DAF), un carattere senza segno.
lua_th.oaf
Campo indirizzo di origine (OAF), un carattere senza segno.
lua_th.snf
Campo numero di sequenza, un carattere senza segno[2].
lua_rh
Parametro restituito. Contiene l'intestazione richiesta/risposta SNA del messaggio inviato o ricevuto. Per rh per RUI_WRITE, vengono usati tutti i campi ad eccezione dell'indicatore di risposta in coda (lua_rh.qri) e dell'indicatore di avanzamento (lua_rh.pi). I relativi sottoparametri sono i seguenti:
lua_rh.rri
Indicatore di risposta della richiesta, un bit.
lua_rh.ruc
Categoria UR, due bit. I valori seguenti sono validi:
LUA_RH_FMD (0x00) controllo di reteLUA_RH_NC (0x20) Controllo di reteLUA_RH_DFC (0x40) Controllo flusso di datiLUA_RH_SC (0x60) Controllo sessione
lua_rh.fi
Indicatore di formato, un bit.
lua_rh.sdi
Indicatore di rilevamento dei dati inclusi, un bit.
lua_rh.bci
Indicatore della catena di inizio, un bit.
lua_rh.eci
Indicatore catena finale, un bit.
lua_rh.dr1i
Indicatore di risposta definito 1, un bit.
lua_rh.dr2i
Indicatore di risposta definita 2, un bit.
lua_rh.ri
Indicatore di risposta eccezione (per una richiesta) o indicatore del tipo di risposta (per una risposta), un bit.
lua_rh.qri
Indicatore di risposta in coda, un bit.
lua_rh.pi
Indicatore di pacing, un bit.
lua_rh.bbi
Inizio indicatore parentesi quadre, un bit.
lua_rh.ebi
Indicatore della parentesi quadre finale, un bit.
lua_rh.cdi
Indicatore di direzione di modifica, un bit.
lua_rh.csi
Indicatore di selezione del codice, un bit.
lua_rh.edi
Indicatore dati crittografato, un bit.
lua_rh.pdi
Indicatore dati spaziato, un bit.
lua_flag1
Parametro fornito. Contiene una struttura di dati contenente flag per i messaggi forniti dall'applicazione. I relativi sottoparametri sono i seguenti:
lua_flag1.bid_enable
Indicatore di abilitazione dell'offerta, un bit.
lua_flag1.close_abend
Chiudere l'indicatore immediato, un bit.
lua_flag1.nowait
Nessuna attesa per il flag di dati, un bit.
lua_flag1.sscp_exp
Flusso rapido SSCP, un bit.
lua_flag1.sscp_norm
Flusso normale SSCP, un bit.
lua_flag1.lu_exp
Flusso rapido lu, un bit.
lua_flag1.lu_norm
Flusso normale lu, un bit.
Impostare uno dei flag seguenti su 1 per indicare in quale flusso di messaggi i dati devono essere inviati:
lua_flag1.sscp_exp
lua_flag1.sscp_norm
lua_flag1.lu_exp
lua_flag1.lu_norm
lua_message_type
Non usato da RUI_WRITE e deve essere impostato su zero.
lua_flag2
Parametro restituito. Contiene flag per i messaggi restituiti da LUA. I relativi sottoparametri sono i seguenti:
lua_flag2.bid_enable
Indica che RUI_BID è stato abilitato nuovamente se impostato su 1.
lua_flag2.async
Indica che il verbo dell'interfaccia LUA è stato completato in modo asincrono se impostato su 1.
lua_flag2.sscp_exp
Indica il flusso rapido di SSCP se impostato su 1.
lua_flag2.sscp_norm
Indica il flusso normale di SSCP se impostato su 1.
lua_flag2.lu_exp
Indica il flusso rapido lu se impostato su 1.
lua_flag2.lu_norm
Indica il flusso normale lu se impostato su 1.
lua_resv56
Riservato e deve essere impostato su zero.
lua_encr_decr_option
Riservato e deve essere impostato su zero.
Codici restituiti
LUA_OK
Codice restituito primario; il verbo eseguito correttamente.
LUA_CANCELED
Codice restituito primario; il verbo non è stato completato correttamente perché è stato annullato da un altro verbo.
LUA_TERMINATED
Codice restituito secondario; il verbo è stato annullato perché RUI_TERM è stato rilasciato per questa sessione.
LUA_PARAMETER_CHECK
Codice restituito primario; il verbo non è stato eseguito a causa di un errore di parametro.
LUA_BAD_DATA_PTR
Codice restituito secondario; il parametro lua_data_ptr contiene un valore non valido.
LUA_BAD_SESSION_ID
Codice restituito secondario; un valore non valido per lua_sid è stato specificato nel VCB.
LUA_DUPLICATE_WRITE_FLOW
Codice restituito secondario; RUI_WRITE era già in sospeso per il flusso di sessione specificato in questo verbo (il flusso di sessione viene specificato impostando uno dei flag di flusso lua_flag1 su 1). Una sola RUI_WRITE alla volta può essere in sospeso in ogni flusso di sessione.
LUA_INVALID_FLOW
Codice restituito secondario; è stato impostato il flag di flusso lua_flag1.sscp_exp , che indica che il messaggio deve essere inviato nel flusso SSCP accelerato. LUA non consente alle applicazioni di inviare dati su questo flusso.
LUA_INVALID_POST_HANDLE
Codice restituito secondario; per un sistema operativo Windows che usa eventi come metodo di registrazione asincrona, windows LUA VCB non contiene un handle di eventi valido.
LUA_MULTIPLE_WRITE_FLOWS
Codice restituito secondario; più di uno dei flag di flusso lua_flag1 è stato impostato su 1. Uno e uno di questi flag devono essere impostati su 1, per indicare il flusso di sessione in cui inviare i dati.
LUA_REQUIRED_FIELD_MISSING
Codice restituito secondario; indica uno dei casi seguenti:
Nessuno dei flag di flusso lua_flag1 è stato impostato. Uno e uno di questi flag devono essere impostati su 1.
RUI_WRITE è stato usato per inviare una risposta e la risposta richiedeva più dati rispetto a quelli forniti.
LUA_RESERVED_FIELD_NOT_ZERO
Codice restituito secondario; un campo riservato nel record verbo o un parametro non usato da questo verbo è stato impostato su un valore diverso da zero.
LUA_VERB_LENGTH_INVALID
Codice restituito secondario; un verbo LUA è stato rilasciato con il valore di lua_verb_length imprevisto da LUA.
LUA_STATE_CHECK
Codice restituito primario; il verbo non è stato eseguito perché è stato rilasciato in uno stato non valido.LUA_MODE_INCONSISTENCY
Codice restituito secondario; il messaggio SNA inviato in RUI_WRITE non è valido in questo momento. Ciò è causato dal tentativo di inviare dati nella sessione LU prima che la sessione sia associata. Controllare la sequenza di messaggi SNA inviati.
LUA_NO_RUI_SESSION
Codice restituito secondario; RUI_INIT non è ancora stato completato correttamente per il nome lu specificato in questo verbo.
LUA_UNSUCCESSFUL
Codice restituito primario; il record verbo specificato è valido, ma il verbo non è stato completato correttamente.LUA_FUNCTION_NOT_SUPPORTED
Codice restituito secondario; indica uno dei casi seguenti:
Il bit lua_rh.fi (indicatore di formato) è stato impostato su 1, ma il primo byte della UR fornita non è un codice di richiesta riconosciuto.
Il parametro lua_rh.ruc (categoria UR) ha specificato la categoria di controllo di rete(NC); LUA non consente alle applicazioni di inviare richieste in questa categoria.
LUA_INVALID_PROCESS
Codice restituito secondario; il processo os/2 che ha emesso questo verbo non è lo stesso processo che ha emesso RUI_INIT per questa sessione. Solo il processo che ha avviato una sessione può emettere verbi in tale sessione.
LUA_INVALID_SESSION_PARAMETERS
Codice restituito secondario; l'applicazione ha usato RUI_WRITE per inviare una risposta positiva a un messaggio BIND ricevuto dall'host. Tuttavia, Host Integration Server non può accettare i parametri BIND come specificato e ha inviato una risposta negativa all'host. Per altre informazioni sui profili BIND accettati da Host Integration Server, vedere Considerazioni su SNA con LUA.
LUA_RSP_CORRELATION_ERROR
Codice restituito secondario; quando si usa RUI_WRITE per inviare una risposta, lua_th.snf (che indica il numero di sequenza del messaggio ricevuto a cui si risponde) non contiene un valore valido.
LUA_RU_LENGTH_ERROR
Codice restituito secondario; il parametro lua_data_length contiene un valore non valido. Quando si inviano dati sul flusso normale lu, la lunghezza massima viene specificata nell'oggetto BIND ricevuto dall'host; per tutti gli altri flussi la lunghezza massima è di 256 byte.
Nota
Qualsiasi altro codice restituito secondario è un codice SNA sense che indica che i dati SNA forniti non sono validi o non possono essere inviati. Per informazioni sull'interpretazione dei codici del senso SNA che possono essere restituiti, vedere Considerazioni su SNA con LUA.
LUA_COMM_SUBSYSTEM_ABENDED
Codice restituito primario; indica una delle condizioni seguenti:
Il nodo usato da questa conversazione ha rilevato un ABEND.
La connessione tra il programma di transazione (TP) e il nodo unità fisica (PU) 2.1 è stato interrotto (errore LAN).
SnaBase nel computer TPS ha rilevato un ABEND.
LUA_SESSION_FAILURE
Codice restituito primario; è stato terminato un componente Host Integration Server necessario.LUA_LU_COMPONENT_DISCONNECTED
Codice restituito secondario; indica che la sessione LUA non è riuscita a causa di un problema con il servizio di collegamento o con l'lu host.
LUA_RUI_LOGIC_ERROR
Codice restituito secondario; è stato rilevato un errore interno all'interno di LUA. Questo errore non deve verificarsi durante il normale funzionamento.
LUA_INVALID_VERB
Codice restituito primario; Il codice verbo o il codice dell'operazione o entrambi non sono validi. Il verbo non è stato eseguito.LUA_STACK_TOO_SMALL
Codice restituito primario; le dimensioni dello stack dell'applicazione sono troppo piccole per eseguire il verbo. Aumentare le dimensioni dello stack dell'applicazione.LUA_COMM_SUBSYSTEM_NOT_LOADED
Codice restituito primario; Impossibile caricare o terminare un componente richiesto durante l'elaborazione del verbo. Pertanto, la comunicazione non poteva avvenire. Contattare l'amministratore di sistema per un'azione correttiva.LUA_UNEXPECTED_DOS_ERROR
Codice restituito primario; dopo aver eseguito una chiamata al sistema operativo, è stato ricevuto un codice restituito imprevisto del sistema operativo e viene specificato nel codice restituito secondario.
Commenti
RUI_INIT devono essere rilasciati correttamente prima dell'emissione di questo verbo.
Quando si invia una richiesta SNA, è necessario impostare tutti i valori applicabili nel lua_rh . Concatenamento e parentesi sono responsabilità dell'applicazione.
Quando si invia una risposta, il tipo di risposta determina le informazioni RUI_WRITE necessarie. Per tutte le risposte, è necessario:
Impostare il flag lua_rh.rri selezionato su 1.
Specificare il numero di sequenza in lua_th.snf per la richiesta a cui si sta rispondendo.
Per le risposte a più catene di messaggi, è necessario usare il numero di sequenza dell'ultimo elemento della catena ricevuta. Per una risposta a un messaggio multichain che termina con un comando CANCEL, viene usato il numero di sequenza di comando CANCEL.
Per risposte positive che richiedono solo il codice della richiesta, impostare lua_rh.ri su zero (a indicare che la risposta è positiva) e lua_data_length su zero (a indicare che non vengono forniti dati). Il codice della richiesta viene compilato dall'URI, usando il numero di sequenza specificato.
Per le risposte negative, impostare lua_rh.ri su 1, lua_data_ptr sull'indirizzo del codice senso SNA e lua_data_length sulla lunghezza del codice di senso SNA (quattro byte). Il numero di sequenza viene usato dall'URI per compilare il codice della richiesta.
Per risposte positive ai comandi BIND e STSN che richiedono dati nelle risposte, impostare lua_data_ptr in modo che punti alla risposta e impostare lua_data_length sulla lunghezza dei dati forniti in lua_data_ptr.
Mentre un RUI_WRITE esistente è in sospeso, è possibile eseguire un secondo RUI_WRITE solo se specifica un flusso di sessione diverso dal RUI_WRITE in sospeso. Non è possibile avere più di un RUI_WRITE in sospeso per lo stesso flusso di sessione.
RUI_WRITE possono essere rilasciate nel flusso normale SSCP in qualsiasi momento dopo un RUI_INIT riuscito. RUI_WRITE verbi nei flussi lu accelerati o lu normali sono consentiti solo dopo la ricezione di un BIND e devono rispettare i protocolli specificati in BIND.
Il completamento corretto di RUI_WRITE indica che il messaggio è stato accodato correttamente al collegamento dati. Non indica necessariamente che il messaggio è stato inviato correttamente o che l'host l'ha accettata.
La pacing può essere usata nella metà della sessione da secondaria a primaria (specificata in BIND) per impedire all'applicazione LUA di inviare più dati rispetto all'lu locale o remoto. In questo caso, un RUI_WRITE sul flusso normale LUA può essere ritardato da LUA e potrebbe richiedere del tempo.
Vedere anche
RUI_INIT
RUI_READ
RUI_TERM
SLI_OPEN
SLI_PURGE
SLI_RECEIVE
SLI_SEND