Condividi tramite


SEND_CONVERSATION

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

La struttura seguente descrive 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;  
};   

Membri

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
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 rilasciato. Per questo verbo, vedere Codici restituiti per i 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 rilasciato. Per questo verbo, vedere Codici restituiti per i 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 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'unità lu locale deve restituire il controllo al tp locale. I valori consentiti sono:

  • AP_IMMEDIATE specifica che l'unità lu alloca una sessione con conflitti, se disponibile immediatamente, e restituisce il controllo al tp.

  • AP_WHEN_SESSION_ALLOCATED specifica che il lu non restituisce il controllo al tp finché non alloca una sessione o rileva uno degli errori descritti in Codici restituiti in questo argomento. Se il limite di sessione è zero, il 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 il lu non restituisce il controllo fino a quando non alloca una sessione vincitore di conflitti o rileva uno degli errori descritti in Codici restituiti in questo argomento. Se il limite di sessione è zero, il lu restituisce immediatamente il controllo . Si noti che se una sessione non è disponibile, il tp attende uno.

  • AP_WHEN_CONV_GROUP_ALLOC specifica che il 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 pertanto le conversazioni eseguite sulla sessione si verificheranno nella stessa sequenza che sono state avviate.

    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 G ASCII a 8 byte che include:

  • Lettere maiuscole

  • Numerali 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'unità operativa del partner durante la configurazione.

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

  • Lettere maiuscole

  • Numerali 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 richiamato 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

  • Numerali 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 è composta da un massimo di quattro caratteri. Il primo carattere è un byte esadecimale tra 0x00 e 0x3F. Gli altri caratteri provengono dal set di caratteri AE EBCDIC.

    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 di conversazione.

  • AP_PGM specifica che il tp richiamato usa la sicurezza della conversazione 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 richiama a sua volta 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 a 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

  • Numerali da 0 a 9

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

    Se la password è inferiore a 10 byte, usare spazi EBCDIC (0x40) per riempirla 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

  • Numerali 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 ambientale richieste da un partner TP 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 di 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'unità lu locale. Questo parametro deve corrispondere al nome completo dell'unità lu locale definita nel nodo remoto. Il parametro è costituito da due stringhe di caratteri EBCDIC di tipo (ognuna di otto caratteri), ovvero il nome di rete (NETID) e il nome LU del lu partner. I nomi sono separati da un punto EBCDIC (.). È possibile omettere l'NETID e, in questo caso, è necessario omettere anche il periodo.

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

    Digitare caratteri EBCDIC contenenti:

  • Lettere maiuscole

  • Numerali 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 del 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 di dati può risiedere in un'area dati statica o in un'area allocata a livello globale. Il buffer di dati deve rientrare interamente all'interno di questa area.

Codici di ritorno

AP_OK
Codice restituito primario; verbo eseguito correttamente.

AP_UNSUCCESSFUL
Codice restituito primario; il parametro fornito rtn_ctl restituito immediato del controllo al TP (AP_IMMEDIATE) e l'lu locale non ha una sessione di 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 ritentare 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).

  • La SnaBase nel computer del TP ha incontrato 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 obbligatorio 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 trovato alcun sistema di comunicazione per supportare l'unità 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 di 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'unità lu locale non viene avviato.

  • L'unità lu locale non è configurata.

    AP_INVALID_VERB_SEGMENT
    Codice restituito primario; VCB è stato esteso 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 del sistema operativo viene restituito tramite il secondary_rc. Viene visualizzato nell'ordine di scambio dei byte Intel. Se il problema persiste, rivolgersi all'amministratore di sistema.

Osservazioni:

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

Lo stato della conversazione è RESET quando il tp emette questo verbo. Non viene apportata alcuna modifica allo stato.

Diversi parametri di SEND_CONVERSATION sono stringhe EBCDIC o ASCII. Un tp può usare CSV CONVERT per convertire 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 l'lu partner. Se una delle modalità associate all'lu partner nel nodo tp richiamato è una modalità implicita, la sessione stabilita tra le due unità di elaborazione sarà della modalità implicita quando nessun nome di modalità associato all'lu partner corrisponde al valore di mode_name.