Condividi tramite


MC_SEND_CONVERSATION

Il verbo MC_SEND_CONVERSATION alloca una sessione tra l'unità logica locale (LU) e l'lu del 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 MC_SEND_CONVERSATION .

Sintassi

  
struct mc_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_M_SEND_CONVERSATION.

opext
Parametro fornito. Specifica l'estensione dell'operazione verbo AP_MAPPED_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 MC_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.

    In una conversazione mappata il nome non può essere SNASVCMG (nome della modalità riservata usato internamente da APPC).

    Tp_name
    Parametro fornito. Specifica il nome del tp richiamato. Il valore di tp_name specificato da MC_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 è che un nome tp del servizio può contenere 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. Può essere costituito da caratteri dal set di caratteri AE EBCDIC. Questi caratteri sono:

  • Lettere maiuscole e minuscole

  • Numeri da 0 a 9

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

    Se la password è minore di 10 byte, usare spazi EBCDIC (0x40) per tastierarlo a destra.

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

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

  • Lettere maiuscole e minuscole

  • Numeri da 0 a 9

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

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

    pip_dlen
    Parametro fornito. Specifica la lunghezza del PIP da passare al TP 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 sulla configurazione ambientale necessarie da un sistema operativo TP o remoto partner. 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 di otto caratteri), ovvero il nome di rete (NETID) e il nome LU del partner. I nomi sono separati da un periodo EBCDIC (.). Il NETID può essere omesso e, se si tratta del caso, il periodo deve essere omesso anche.

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

    Digitare caratteri EBCDIC contenenti:

  • Lettere maiuscole

  • Numeri da 0 a 9

  • Caratteri speciali $, #e @

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

    dlen
    Parametro fornito. Specifica il numero di byte di dati da inserire nel buffer di invio dell'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'ISTANZA 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 adattarsi 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 restituito immediatamente 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_NO_USE_OF_SNASVCMG

Codice restituito secondario; SNASVCMG non è un valore valido per mode_name.

AP_INVALID_DATA_SEGMENT

Codice restituito secondario; i dati PIP o i dati dell'applicazione erano più lunghi del segmento di dati allocato o l'indirizzo di un buffer di dati non è corretto.

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

Questo codice può essere restituito tramite un verbo rilasciato dopo MC_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 finché 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. Riprovare 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 obbligatorio durante l'elaborazione del verbo. Pertanto, la comunicazione non poteva essere eseguita. Contattare l'amministratore di sistema per un'azione correttiva.

    Quando questo codice restituito viene usato con MC_ALLOCATE, può indicare che non è 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 che può soddisfare la richiesta di MC_ALLOCATE .

    Quando MC_ALLOCATE produce questo codice restituito per un sistema client host integration server configurato con più nodi, sono disponibili due codici restituiti secondari come indicato di seguito:

    0xF0000001

    Codice restituito secondario; non sono stati avviati nodi.

    0xF0000002

    Codice restituito secondario; almeno un nodo è stato avviato, ma l'lu locale (quando viene rilasciato 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 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; c'è solo un verbo di conversazione in sospeso alla volta su qualsiasi conversazione. Ciò può verificarsi se il TP locale ha più thread e più thread eseguono chiamate APPC usando la stessa 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 all'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 di byte Intel. Se il problema persiste, consultare l'amministratore di sistema.

Commenti

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

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

Diversi parametri di MC_SEND_CONVERSATION sono stringhe EBCDIC o ASCII. Un TP può usare il verbo del servizio comune (CSV) CONVERT per tradurre una stringa da un set di caratteri all'altro.

Normalmente, 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 del partner nel nodo tp richiamato è una modalità implicita, la sessione stabilita tra le due UNITÀ sarà della modalità implicita quando nessun nome di modalità associato all'lu partner corrisponde al valore di mode_name.