MC_CONFIRM

Il verbo MC_CONFIRM invia il contenuto del buffer di invio (LU) dell'unità logica locale e una richiesta di conferma al programma di transazione partner (TP).

La struttura seguente descrive il blocco di controllo verbo (VCB) usato dal verbo MC_CONFIRM verbo.

Sintassi

  
struct mc_confirm {  
    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   rts_rcvd;  
};   

Members

Opcode
Parametro fornito. Specifica il codice dell'operazione verbo, AP_M_CONFIRM.

opext
Parametro fornito. Specifica l'estensione dell'operazione verbo, AP_MAPPED_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 TP locale. Il valore di questo parametro è stato restituito da TP_STARTED.

Conv_id
Parametro restituito. Identifica la conversazione stabilita tra i due provider di servizi.

rts_rcvd
Parametro restituito. Indica se il partner TP ha rilasciato MC_REQUEST_TO_SEND, che richiede al TP locale di modificare la conversazione in stato DI RICEZIONE.

Per modificare lo stato RECEIVE, il TP locale può usare MC_PREPARE_TO_RECEIVE, MC_RECEIVE_AND_WAIT o MC_RECEIVE_AND_POST.

Codici restituiti

AP_OK
Codice restituito primario; il verbo eseguito correttamente.

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

AP_BAD_CONV_ID

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

AP_BAD_TP_ID

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

AP_CONFIRM_ON_SYNC_LEVEL_NONE

Codice restituito secondario; il TP locale ha tentato di usare MC_CONFIRM in una conversazione con un livello di sincronizzazione di AP_NONE. Il livello di sincronizzazione, stabilito da MC_ALLOCATE, deve essere AP_CONFIRM_SYNC_LEVEL.

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

AP_CONFIRM_BAD_STATE

Codice restituito secondario; la conversazione non era in stato SEND.

AP_CONFIRM_NOT_LL_BDY

Codice restituito secondario; la conversazione per il TP locale era in stato SEND e il TP locale non ha completato l'invio di un record logico.

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_CONVERSATION_TYPE_MISMATCH

Codice restituito secondario; l'lu del partner o TP non supporta il tipo di conversazione (basic o mappato) specificato nella richiesta di allocazione.

AP_PIP_NOT_ALLOWED

Codice restituito secondario; la richiesta di allocazione specificata dati PIP, ma il TP partner non richiede questi dati o l'lu partner non lo supporta.

AP_PIP_NOT_SPECIFIED_CORRECTLY

Codice restituito secondario; il partner TP richiede dati PIP, ma la richiesta di allocazione non ha specificato dati PIP o un numero errato di parametri.

AP_SECURITY_NOT_VALID

Codice restituito secondario; l'identificatore utente o la password specificati nella richiesta di allocazione non sono stati accettati dall'LU partner.

AP_SYNC_LEVEL_NOT_SUPPORTED

Codice restituito secondario; il TP del partner non supporta il sync_level (AP_NONE , AP_CONFIRM_SYNC_LEVEL o AP_SYNCPT) specificato nella richiesta di allocazione o il sync_level non è stato riconosciuto.

AP_TP_NAME_NOT_RECOGNIZED

Codice restituito secondario; l'lu partner non riconosce il nome TP specificato nella richiesta di allocazione.

AP_TRANS_PGM_NOT_AVAIL_NO_RETRY

Codice restituito secondario; l'lu remoto ha rifiutato la richiesta di allocazione perché non è stato in grado di avviare il TP del partner richiesto. La condizione è permanente. Il motivo dell'errore può essere connesso al nodo remoto. Non ripetere l'allocazione finché l'errore non è stato corretto.

AP_TRANS_PGM_NOT_AVAIL_RETRY

Codice restituito secondario; l'lu remoto ha rifiutato la richiesta di allocazione perché non è stato in grado di avviare il TP del partner richiesto. La condizione può essere temporanea, ad esempio un timeout. Il motivo dell'errore può essere connesso al nodo remoto. 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).

  • La 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.

    AP_CONV_FAILURE_NO_RETRY
    Codice restituito primario; la conversazione è stata terminata a causa di una condizione permanente, ad esempio un errore del protocollo di sessione. L'amministratore di sistema deve esaminare il log degli errori di sistema per determinare la causa dell'errore. Non ritentare la conversazione fino a quando l'errore non è stato corretto.

    AP_CONV_FAILURE_RETRY
    Codice restituito primario; la conversazione è stata terminata a causa di un errore temporaneo. Riavviare il tp per verificare se il problema si verifica di nuovo. In caso affermativo, l'amministratore di sistema deve esaminare il log degli errori per determinare la causa dell'errore.

    AP_CONVERSATION_TYPE_MIXED
    Codice restituito primario; il tp ha emesso verbi di conversazione di base e mappati. È possibile emettere un solo tipo in una singola conversazione.

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

    AP_PROG_ERROR_PURGING
    Codice restituito primario; durante lo stato RECEIVE, PENDING, PENDING_POST, CONFIRM, CONFIRM_SEND o CONFIRM_DEALLOCATE, il partner TP ha emesso MC_SEND_ERROR. I dati inviati ma non ancora ricevuti vengono eliminati.

    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.

    AP_DEALLOC_ABEND
    Codice restituito primario; la conversazione è stata deallocata per uno dei motivi seguenti:

  • Il MC_DEALLOCATE rilasciato dal partner condealloc_typeimpostato su AP_ABEND.

  • Il partner TP ha rilevato un ABEND, causando l'invio di una richiesta di MC_DEALLOCATE da parte del partner LU.

Commenti

In risposta a MC_CONFIRM, il tp del partner in genere emette MC_CONFIRMED per confermare che i dati sono stati ricevuti senza errori. Se il tp del partner rileva un errore, genera MC_SEND_ERROR o dealloca in modo anomalo la conversazione.

Il tp può emettere MC_CONFIRM solo se il livello di sincronizzazione della conversazione, stabilito da MC_ALLOCATE, è AP_CONFIRM_SYNC_LEVEL.

La conversazione deve essere in stato SEND quando il tp rilascia questo verbo. Le modifiche dello stato, riepilogate nella tabella seguente, si basano sul valore della primary_rc.

Primary_rc Nuovo stato
AP_OK Nessuna modifica
AP_ALLOCATION_ERROR RESET
AP_COMM_SUBSYSTEM_ABENDED AP_COMM_SUBSYSTEM_NOT_LOADED RESET RESET
AP_CONV_FAILURE_RETRY AP_CONV_FAILURE_NO_RETRY RESET RESET
AP_DEALLOC_ABEND AP_DEALLOC_ABEND_PROG AP_DEALLOC_ABEND_SVC AP_DEALLOC_ABEND_TIMER RESET RESET RESET RESET
AP_PROG_ERROR_PURGING AP_SVC_ERROR_PURGING RECEIVE RECEIVE

MC_CONFIRM attende una risposta dal tp del partner. Una risposta viene generata da uno dei verbi seguenti nel tp del partner:

  • MC_CONFIRMED

  • MC_SEND_ERROR

  • MC_DEALLOCATE con dealloc_type impostato su AP_ABEND

  • TP_ENDED

    Eseguendo MC_CONFIRM dopoMC_ALLOCATE, il tp di richiamo può determinare immediatamente se l'allocazione è riuscita (se il livello di sincronizzazione è impostato su AP_CONFIRM_SYNC_LEVEL).

    In genere, il valore del parametro mode_name del verbo MC_ALLOCATE deve corrispondere al nome di una modalità configurata per il nodo del 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à di sviluppo sarà della modalità implicita quando nessun nome di modalità associato all'lu partner corrisponde al valore di mode_name. Per altre informazioni, vedere Guida di Host Integration Server.

    Diversi parametri di MC_ALLOCATE sono stringhe EBCDIC o ASCII. Un tp può usare common service verb (CSV) CONVERT per tradurre una stringa da un set di caratteri all'altro.

    Per inviare immediatamente la richiesta di MC_ALLOCATE , il tp di chiamata può emettere MC_FLUSH o MC_CONFIRM immediatamente dopo MC_ALLOCATE. In caso contrario, la richiesta di MC_ALLOCATE si accumula con altri dati nel buffer di invio dell'lu locale fino a quando il buffer non è pieno.