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