RUI_WRITE

Il verbo RUI_WRITE invia una richiesta O un'unità di risposta SNA dall'applicazione dell'applicazione di unità logica (LUA) 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® Microsoft Windows ® LUA all'host LUA.

La struttura seguente descrive il membro LUA_COMMON del blocco di controllo verbo (VCB) usato 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 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 rilasciato.

lua_prim_rc
Codice restituito primario impostato da LUA al completamento del verbo. I codici restituiti validi variano a seconda del verbo LUA rilasciato.

lua_sec_rc
Codice restituito secondario impostato da LUA al completamento del verbo. I codici restituiti validi variano a seconda del verbo LUA rilasciato.

lua_opcode
Parametro fornito. Contiene il codice del comando LUA (codice operazione verbo) per l'emissione del verbo, LUA_OPCODE_RUI_WRITE.

lua_correlator
Parametro fornito. Contiene un valore fornito dall'utente che collega il verbo ad altre informazioni fornite dall'utente. LUA non usa o modifica queste informazioni. Questo parametro è facoltativo.

lua_luname
Parametro fornito. Specifica il nome ASCII dell'lu locale usato dalla sessione LUA di Windows.

RUI_WRITE richiede solo questo parametro se lua_sid è zero.

Questo parametro è lungo otto byte, spaziato a destra con spazi (0x20) se il nome è più breve di otto caratteri.

lua_extension_list_offset
Non usato da 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 ENA e i dati vengono inseriti in questo buffer e possono essere in formato EBCDIC.

lua_post_handle
Parametro fornito. Usato 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

Formattare il tipo di identificazione 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 medio 0x04 Ultimo segmento 0x08 Primo segmento 0x0C Solo segmento

lua_th.flags_odai

Indicatore di assegnazione del campo indirizzo di origine-destinazione (OAF-DAF), un bit.

lua_th.flags_efi

Indicatore del 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 sequenza, un carattere senza segno[2].

lua_rh
Parametro restituito. Contiene l'intestazione richiesta/risposta SNA del messaggio inviato o ricevuto. Per il rh per RUI_WRITE, vengono usati tutti i campi tranne l'indicatore di risposta in coda (lua_rh.qri) e l'indicatore di pacing (lua_rh.pi). I relativi sottoparametri sono i seguenti:

lua_rh.rri

Indicatore di risposta richiesta, un bit.

lua_rh.ruc

Categoria UR, due bit. I valori seguenti sono validi:

LUA_RH_FMD (0x00) segmento dati FM LUA_RH_NC (0x20) Controllo del flusso di dati LUA_RH_DFC(0x40) Controllo flusso di dati LUA_RH_SC (0x60) Controllo sessione

lua_rh.fi

Indicatore di formato, un bit.

lua_rh.sdi

Indicatore di senso incluso, un bit.

lua_rh.bci

Indicatore della catena di inizio, un bit.

lua_rh.eci

Indicatore della catena di fine, un bit.

lua_rh.dr1i

Indicatore di risposta definito 1, un bit.

lua_rh.dr2i

Indicatore di risposta definito 2, un bit.

lua_rh.ri

Indicatore di risposta dell'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 velocità, un bit.

lua_rh.bbi

Indicatore parentesi quadre iniziale, un bit.

lua_rh.ebi

Indicatore parentesi quadra 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 di dati crittografati, un bit.

lua_rh.pdi

Indicatore dati riempito, un bit.

lua_flag1
Parametro fornito. Contiene una struttura di dati contenente i 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

Indicatore immediato di chiusura, un bit.

lua_flag1.nowait

Nessuna attesa per il flag di dati, un bit.

lua_flag1.sscp_exp

Flusso accelerato di SSCP, un bit.

lua_flag1.sscp_norm

Flusso normale SSCP, un bit.

lua_flag1.lu_exp

Flusso accelerato 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 devono essere inviati i dati:

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 riabilitato 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 accelerato 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 accelerato 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 emesso 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; È stato specificato un valore non valido per lua_sid 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). In ogni flusso di sessione può essere in sospeso un solo RUI_WRITE alla volta.

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 in questo flusso.

LUA_INVALID_POST_HANDLE

Codice restituito secondario; per un sistema operativo Windows che usa eventi come metodo di registrazione asincrona, la Windows LUA VCB non contiene un handle di evento 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 devono essere inviati 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 utilizzato da questo verbo è stato impostato su un valore diverso da zero.

    LUA_VERB_LENGTH_INVALID

    Codice restituito secondario; Un verbo LUA è stato emesso con il valore di lua_verb_length imprevisto da LUA.

    LUA_STATE_CHECK
    Codice restituito primario; il verbo non è stato eseguito perché è stato emesso in uno stato non valido.

    LUA_MODE_INCONSISTENCY

    Codice restituito secondario; il messaggio SNA inviato al RUI_WRITE non è valido in questo momento. Ciò è causato dal tentativo di inviare dati nella sessione lu prima dell'associazione della sessione. 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 fornito è stato valido, ma il verbo non è stato completato correttamente.

    LUA_FUNCTION_NOT_SUPPORTED

    Codice restituito secondario; indica uno dei casi seguenti:

  • Il lua_rh.fi bit (indicatore di formato) è stato impostato su 1, ma il primo byte dell'UR fornito non era un codice di richiesta riconosciuto.

  • Il parametro lua_rh.ruc (categoria UR) ha specificato la categoria 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 rilasciato questo verbo non era lo stesso processo che ha rilasciato 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 using 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 viene risposto) 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 nel flusso normale lu, la lunghezza massima viene specificata nell'host BIND ricevuto dall'host; per tutti gli altri flussi la lunghezza massima è di 256 byte.

Nota

Qualsiasi altro codice restituito secondario è un codice di senso SNA che indica che i dati SNA forniti non sono validi o non possono essere inviati. Per informazioni sull'interpretazione dei codici di senso SNA che possono essere restituiti, vedere Considerazioni di SNA tramite 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 l'unità fisica (PU) 2.1 nodo è stato interrotto (errore LAN).

  • Il SnaBase nel computer TP ha rilevato un ABEND.

    LUA_SESSION_FAILURE
    Codice restituito primario; un componente Host Integration Server richiesto ha terminato.

    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 la normale operazione.

    LUA_INVALID_VERB
    Codice restituito primario; il codice verbo o il codice dell'operazione, o entrambi, non è valido. 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 obbligatorio durante l'elaborazione del verbo. Pertanto, la comunicazione non poteva essere eseguita. Contattare l'amministratore di sistema per un'azione correttiva.

    LUA_UNEXPECTED_DOS_ERROR
    Codice restituito primario; dopo l'emissione di una chiamata al sistema operativo, è stato ricevuto un codice restituito del sistema operativo imprevisto e viene specificato nel codice restituito secondario.

Commenti

RUI_INIT deve essere rilasciato correttamente prima che questo verbo venga rilasciato.

Quando si invia una richiesta SNA, è necessario impostare tutti i valori applicabili nella lua_rh . Concatenamento e parentesi quadre sono la responsabilità dell'applicazione.

Quando si invia una risposta, il tipo di risposta determina le informazioni di 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 risponde.

    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 comandi CANCEL.

    Per le risposte positive che richiedono solo il codice della richiesta, impostare lua_rh.ri su zero (indicante che la risposta è positiva) e lua_data_length su zero (indicante che non sono 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 di 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 le risposte positive ai comandi BIND e STSN che richiedono dati nelle risposte, impostare lua_data_ptr per puntare 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 può essere rilasciato nel flusso normale SSCP in qualsiasi momento dopo un RUI_INIT riuscito. RUI_WRITE verbi sui flussi normali di LU accelerati o LU sono consentiti solo dopo che è stato ricevuto un BINDING e deve rispettare i protocolli specificati nel BIND.

    Il completamento 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 accettato.

    La pacing può essere usata nella metà primaria secondaria (specificata in BIND) per impedire all'applicazione LUA di inviare più dati rispetto all'luA locale o remoto può gestire. Se si tratta del caso, un RUI_WRITE nel flusso normale lua può essere ritardato da LUA e potrebbe richiedere tempo per completare.

Vedere anche

RUI_INIT
RUI_READ
RUI_TERM
SLI_OPEN
SLI_PURGE
SLI_RECEIVE
SLI_SEND