SEND_CONVERSATION

Il verbo SEND_CONVERSATION alloca una sessione tra l'unità logica locale (LU) e l'lu partner, invia i dati nella sessione e quindi dealloca la sessione.

Nella struttura seguente viene descritto il blocco di controllo verbo (VCB) utilizzato dal verbo SEND_CONVERSATION .

Sintassi

  
struct send_conversation {  
    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[8];  
    unsigned char       rtn_ctl;  
    unsigned char       reserv4;  
    unsigned long       conv_group_id;  
    unsigned long       sense_data;  
    unsigned char       plu_alias[8];  
    unsigned char       mode_name[8];  
    unsigned char       tp_name[64];  
    unsigned char       security;  
    unsigned char       reserv6[11];  
    unsigned char       pwd[10];  
    unsigned char       user_id[10];  
    unsigned short      pip_dlen;  
    unsigned char FAR * pip_dptr;  
    unsigned char       reserv6;  
    unsigned char       fqplu_name[17];  
    unsigned char       reserv7[8];  
    unsigned short      dlen;  
    unsigned char FAR * dptr;  
};   

Members

Opcode
Parametro fornito. Specifica il codice dell'operazione verbo AP_B_SEND_CONVERSATION.

opext
Parametro fornito. Specifica l'estensione dell'operazione verbo AP_BASIC_CONVERSATION.

reserv2
Un campo riservato.

Primary_rc
Parametro restituito. Specifica il codice restituito primario impostato da APPC al completamento del verbo. I codici restituiti validi variano a seconda del verbo APPC emesso. Per questo verbo, vedere Codici restituiti per codici di errore validi.

Secondary_rc
Parametro restituito. Specifica il codice restituito secondario impostato da APPC al completamento del verbo. I codici restituiti validi variano a seconda del verbo APPC emesso. Per questo verbo, vedere Codici restituiti per codici di errore validi.

Tp_id
Parametro fornito. Identifica il programma di transazione locale (TP). Il valore di questo parametro è stato restituito da TP_STARTED.

Conv_id
Parametro fornito. Fornisce l'identificatore della conversazione.

Il valore di questo parametro viene restituito da ALLOCATE nella chiamata di TP o da RECEIVE_ALLOCATE nel tp richiamato.

rtn_ctl
Parametro fornito. Specifica il modo in cui APPC deve selezionare una sessione da allocare per la conversazione e quando l'lu locale deve restituire il controllo al tp locale. Di seguito sono elencati i valori consentiti:

  • AP_IMMEDIATE specifica che il lu alloca una sessione con contesa, se disponibile immediatamente, e restituisce il controllo al tp.

  • AP_WHEN_SESSION_ALLOCATED specifica che l'lu non restituisce il controllo al tp fino a quando non alloca una sessione o rileva uno degli errori descritti in Codici restituiti in questo argomento. Se il limite di sessione è zero, l'unità lu restituisce immediatamente il controllo . Si noti che se una sessione non è disponibile, il tp attende uno.

  • AP_WHEN_SESSION_FREE specifica che l'lu alloca una sessione di contesa o di contesa, se disponibile o in grado di essere attivata e restituisce il controllo al tp. Se si verifica un errore ,come descritto in Codici restituiti in questo argomento, la chiamata restituirà immediatamente con l'errore nei campi primary_rc e secondary_rc .

  • AP_WHEN_CONWINNER_ALLOC specifica che l'unità lu non restituisce il controllo finché non alloca una sessione con conflitti o rileva uno degli errori descritti in Codici restituiti in questo argomento. Se il limite di sessione è zero, l'unità lu restituisce immediatamente il controllo . Si noti che se una sessione non è disponibile, il tp attende uno.

  • AP_WHEN_CONV_GROUP_ALLOC specifica che l'lu non restituisce il controllo al tp finché non alloca la sessione specificata da conv_group_id o rileva uno degli errori descritti in Codici restituiti in questo argomento. Se la sessione non è disponibile, il tp attende che diventi gratuito.

    conv_group_id
    Parametro fornito/restituito. Usato come parametro fornito quando rtn_ctl è WHEN_CONV_GROUP_ALLOC per specificare l'identità del gruppo di conversazioni da cui deve essere allocata la sessione. Quando rtn_ctl specifica un valore diverso e il primary_rc è AP_OK, si tratta di un valore restituito. Lo scopo di questo parametro è fornire un tp con la garanzia che la stessa sessione verrà riallocata e quindi le conversazioni eseguite nella sessione si verificheranno nella stessa sequenza avviata.

    sense_data
    Parametro restituito. Se i codici restituiti primario e secondario indicano un errore di allocazione (ripetizione o nessun tentativo), viene restituito un codice di senso definito da SNA.

    plu_alias
    Parametro fornito. Specifica l'alias in base al quale il lu partner è noto al tp locale. Questo parametro deve corrispondere al nome di un lu partner stabilito durante la configurazione. Il parametro è un set di caratteri ASCII a 8 byte che include:

  • Lettere maiuscole

  • Numeri da 0 a 9

  • Spazi

  • Caratteri speciali $, #, %e @

    Se il valore di questo parametro è inferiore a otto byte, aggiungerlo a destra con spazi ASCII (0x20).

    mode_name
    Parametro fornito. Specifica il nome di un set di caratteristiche di rete definite durante la configurazione. Questo parametro deve corrispondere al nome di una modalità associata all'lu del partner durante la configurazione.

    Il parametro è una stringa di caratteri EBCDIC a 8 byte. Può essere costituito da caratteri del set di caratteri EBCDIC di tipo A, inclusi tutti gli spazi EBCDIC. Questi caratteri sono:

  • Lettere maiuscole

  • Numeri da 0 a 9

  • Caratteri speciali $, #e @

    Il primo carattere nella stringa deve essere una lettera maiuscola o un carattere speciale.

    Non è consigliabile usare il nome SNASVCMG (un nome di modalità riservata usato internamente da APPC) in una conversazione di base.

    Tp_name
    Parametro fornito. Specifica il nome del tp richiamato. Il valore di tp_name specificato da ALLOCATE nel tp di chiamata deve corrispondere al valore di tp_name specificato da RECEIVE_ALLOCATE nel tp richiamato.

    Il parametro è una stringa di caratteri EBCDIC a 64 byte, con distinzione tra maiuscole e minuscole. Questo parametro può essere costituito da caratteri del set di caratteri EBCDIC di tipo AE. Questi caratteri sono:

  • Lettere maiuscole e minuscole

  • Numeri da 0 a 9

  • Caratteri speciali $, #, @e punto (.)

    Se il nome tp è inferiore a 64 byte, usare spazi EBCDIC (0x40) per riempirlo a destra.

    La convenzione SNA per la denominazione di un tp di servizio è fino a quattro caratteri. Il primo carattere è un byte esadecimale tra 0x00 e 0x3F. Gli altri caratteri provengono dal set di caratteri EBCDIC AE.

    Sicurezza
    Parametro fornito. Specifica le informazioni richieste dal lu partner per convalidare l'accesso al tp richiamato.

  • AP_NONE specifica che il tp richiamato non usa alcuna sicurezza della conversazione.

  • AP_PGM specifica che il tp richiamato usa la sicurezza delle conversazioni e richiede un identificatore utente e una password. Usare user_id e pwd per fornire queste informazioni.

  • AP_SAME specifica che il tp richiamato, richiamato con un identificatore utente e una password validi, richiama a sua volta un altro tp.

    Si supponga, ad esempio, che TP A richiami TP B con un identificatore utente e una password validi e TP B a sua volta richiami TP C. Se TP B specifica il valore AP_SAME, APPC invierà l'lu per TP C l'identificatore utente da TP A e un indicatore già verificato. Questo indicatore indica a TP C di non richiedere la password (se TP C è configurato per accettare un indicatore già verificato).

    pwd
    Parametro fornito. Specifica la password associata alla user_id. Questo parametro è obbligatorio solo se il parametro di sicurezza è impostato su AP_PGM e deve corrispondere alla password per user_id stabilita durante la configurazione.

    Questo parametro è una stringa di caratteri EBCDIC a 10 byte, con distinzione tra maiuscole e minuscole. Può essere costituito da caratteri del set di caratteri EBCDIC di tipo AE. Questi caratteri sono:

  • Lettere maiuscole e minuscole

  • Numeri da 0 a 9

  • Caratteri speciali $, #, @e punto (.)

    Se la password è inferiore a 10 byte, usare spazi EBCDIC (0x40) per riempirlo a destra.

    User_id
    Parametro fornito. Specifica l'identificatore utente necessario per accedere al tp del partner. Questo parametro è obbligatorio solo se il parametro di sicurezza è impostato su AP_PGM e deve corrispondere a uno degli identificatori utente configurati per il tp del partner.

    Il parametro può essere costituito da caratteri del set di caratteri EBCDIC di tipo AE. Questi caratteri sono:

  • Lettere maiuscole e minuscole

  • Numeri da 0 a 9

  • Caratteri speciali $, #, @e punto (.)

    Se l'identificatore utente è inferiore a 10 byte, usare spazi EBCDIC (0x40) per riempirlo a destra.

    pip_dlen
    Parametro fornito. Specifica la lunghezza del pip da passare al tp del partner. L'intervallo per questo parametro è compreso tra 0 e 32767.

    pip_dptr
    Parametro fornito. Specifica l'indirizzo del buffer contenente i dati PIP. Usare questo parametro solo se pip_dlen è maggiore di zero.

    I dati PIP possono essere costituiti da parametri di inizializzazione o informazioni di configurazione ambientali richieste da un tp partner o da un sistema operativo remoto. I dati PIP devono seguire il formato GDS. Per altre informazioni, vedere i manuali IBM SNA.

    Per il sistema operativo Microsoft Windows, il buffer dei dati può risiedere in un'area dati statica o in un'area allocata a livello globale.

    fqplu_name
    Parametro fornito. Specifica il nome completo dell'lu locale. Questo parametro deve corrispondere al nome completo dell'lu locale definito nel nodo remoto. Il parametro è costituito da due stringhe di caratteri EBCDIC di tipo (ognuna con un massimo di otto caratteri), ovvero il nome di rete (NETID) e il nome LU del lu partner. I nomi sono separati da un punto EBCDIC (.). NetID può essere omesso e, in questo caso, il periodo deve essere omesso.

    Questo nome deve essere specificato se non viene specificato alcun plu_alias .

    I caratteri EBCDIC di tipo A contengono:

  • Lettere maiuscole

  • Numeri da 0 a 9

  • Caratteri speciali $, #e @

    Se il valore di questo parametro è inferiore a 17 byte, aggiungerlo a destra con spazi EBCDIC (0x40).

    dlen
    Parametro fornito. Specifica il numero di byte di dati da inserire nel buffer di invio dell'unità lu locale. L'intervallo per questo parametro è compreso tra 0 e 65535.

    dptr
    Parametro fornito. Specifica l'indirizzo del buffer contenente i dati da inserire nel buffer di invio dell'unità lu locale.

    Per il sistema operativo Windows, il buffer dei dati può risiedere in un'area dati statica o in un'area allocata a livello globale. Il buffer dei dati deve rientrare interamente all'interno di questa area.

Codici restituiti

AP_OK
Codice restituito primario; il verbo eseguito correttamente.

AP_UNSUCCESSFUL
Codice restituito primario; il parametro fornito rtn_ctl specificato il ritorno immediato del controllo al tp (AP_IMMEDIATE) e l'lu locale non dispone di una sessione con contesa disponibile.

AP_PARAMETER_CHECK
Codice restituito primario; il verbo non è stato eseguito a causa di un errore di parametro.

AP_BAD_RETURN_CONTROL

Codice restituito secondario; il valore specificato per rtn_ctl non è valido.

AP_BAD_SECURITY

Codice restituito secondario; il valore specificato per la sicurezza non è valido.

AP_BAD_TP_ID

Codice restituito secondario; il valore di tp_id non corrisponde a un identificatore TP assegnato da APPC.

AP_PIP_LEN_INCORRECT

Codice restituito secondario; il valore di pip_dlen è maggiore di 32767.

AP_UNKNOWN_PARTNER_MODE

Codice restituito secondario; il valore specificato per mode_name non è valido.

AP_BAD_PARTNER_LU_ALIAS

Codice restituito secondario; APPC non riconosce il partner_lu_alias fornito.

AP_ALLOCATION_ERROR
Codice restituito primario; APPC non è riuscito ad allocare una conversazione. Lo stato della conversazione è impostato su RESET.

Questo codice può essere restituito tramite un verbo emesso dopo ALLOCATE.

AP_ALLOCATION_FAILURE_NO_RETRY

Codice restituito secondario; La conversazione non può essere allocata a causa di una condizione permanente, ad esempio un errore di configurazione o un errore del protocollo di sessione. Per determinare l'errore, l'amministratore di sistema deve esaminare il file di log degli errori. Non ripetere l'allocazione fino a quando l'errore non è stato corretto.

AP_ALLOCATION_FAILURE_RETRY

Codice restituito secondario; Impossibile allocare la conversazione a causa di una condizione temporanea, ad esempio un errore di collegamento. Il motivo dell'errore viene registrato nel log degli errori di sistema. Ripetere l'allocazione.

AP_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 tp e il nodo pu 2.1 è stata interrotta (errore LAN).

  • SnaBase nel computer tp ha rilevato un ABEND.

    L'amministratore di sistema deve esaminare il log degli errori per determinare il motivo di ABEND.

    AP_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.

    Quando questo codice restituito viene usato con ALLOCATE, può indicare che non è stato possibile trovare alcun sistema di comunicazione per supportare l'lu locale. Ad esempio, l'alias LU locale specificato con TP_STARTED non è corretto o non è stato configurato. Si noti che se lu_alias o mode_name è inferiore a otto caratteri, è necessario assicurarsi che questi campi siano riempiti con spazi a destra. Questo errore viene restituito se questi parametri non vengono riempiti con spazi, poiché non è disponibile alcun nodo in grado di soddisfare la richiesta ALLOCATE .

    Quando ALLOCATE produce questo codice restituito per un sistema client host Integration Server configurato con più nodi, esistono due codici restituiti secondari come indicato di seguito:

    0xF0000001

    Codice restituito secondario; nessun nodo è stato avviato.

    0xF0000002

    Codice restituito secondario; almeno un nodo è stato avviato, ma l'lu locale (quando viene emesso TP_STARTED ) non è configurato in alcun nodo attivo. Il problema potrebbe essere uno dei seguenti:

  • Il nodo con l'lu locale non viene avviato.

  • L'lu locale non è configurato.

    AP_INVALID_VERB_SEGMENT
    Codice restituito primario; VCB si estende oltre la fine del segmento di dati.

    AP_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.

    AP_CONV_BUSY
    Codice restituito primario; può essere presente un solo verbo di conversazione in sospeso alla volta in qualsiasi conversazione. Ciò può verificarsi se il tp locale ha più thread e più thread eseguono chiamate APPC usando lo stesso conv_id.

    AP_THREAD_BLOCKING
    Codice restituito primario; il thread chiamante è già in una chiamata di blocco.

    AP_UNEXPECTED_DOS_ERROR
    Codice restituito primario; il sistema operativo ha restituito un errore ad APPC durante l'elaborazione di una chiamata APPC dal tp locale. Il codice restituito dal sistema operativo viene restituito tramite il secondary_rc. Viene visualizzato nell'ordine di scambio dei byte Intel. Se il problema persiste, consultare l'amministratore di sistema.

Commenti

Questo verbo viene emesso dal chiamante TP per condurre un'intera conversazione con il tp remoto. Se il tp remoto rifiuta l'avvio della conversazione o i dati, il tp di chiamata non riceverà la notifica del rifiuto.

Lo stato della conversazione è RESET quando il tp emette questo verbo. Non esiste alcuna modifica dello stato.

Diversi parametri di SEND_CONVERSATION sono stringhe EBCDIC o ASCII. Un tps può usare CSV CONVERT per tradurre una stringa da un set di caratteri all'altro.

In genere, il valore di mode_name deve corrispondere al nome di una modalità configurata per il nodo tp richiamato e associato durante la configurazione con il lu partner. Se una delle modalità associate all'lu del partner nel nodo tp richiamato è una modalità implicita, la sessione stabilita tra le due unità di sviluppo sarà della modalità implicita quando nessun nome di modalità associato all'lu partner corrisponde al valore di mode_name.