MC_PREPARE_TO_RECEIVE

Il MC_PREPARE_TO_RECEIVE verbo modifica lo stato della conversazione per il programma di transazione locale (TP) da SEND a RECEIVE.

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

Sintassi

  
struct mc_prepare_to_receive {  
    unsigned short   opcode;  
    unsigned char    opext;  
    unsigned char    primary_rc;  
    unsigned short   reserv2;  
    unsigned long    secondary_rc;  
    unsigned char    tp_id[8];  
    unsigned long    conv_id;  
    unsigned char    ptr_type;  
    unsigned char    locks;  
};   

Osservazioni

Members

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

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 emesso. Vedere Codici restituiti per i codici di errore validi per questo verbo.

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. Vedere Codici restituiti per i codici di errore validi per questo verbo.

Tp_id
Parametro fornito. Identifica il valore TP locale. Il valore di questo parametro viene restituito TP_STARTED nel TP richiamato o da RECEIVE_ALLOCATE nel TP richiamato.

Conv_id
Parametro fornito. Fornisce l'identificatore di conversazione. Il valore di questo parametro viene restituito MC_ALLOCATE nel TP richiamato o RECEIVE_ALLOCATE nel TP richiamato.

ptr_type
Parametro fornito. Specifica come eseguire la modifica dello stato.

Usare AP_FLUSH per inviare il contenuto del buffer di invio dell'unità logica locale (LU) alle unità logiche partner (e TP) prima di modificare lo stato della conversazione in RECEIVE.

Il AP_SYNC_LEVEL usa il livello di sincronizzazione della conversazione (stabilito da MC_ALLOCATE) per determinare come eseguire la modifica dello stato.

Se il livello di sincronizzazione della conversazione è AP_NONE, APPC invia il contenuto del buffer di invio dell'unità di sincronizzazione locale al partner TP prima di modificare lo stato della conversazione in RECEIVE. Se il livello di sincronizzazione AP_CONFIRM_SYNC_LEVEL, APPC invia il contenuto del buffer di invio dell'unità di sincronizzazione locale e una richiesta di conferma al partner TP. Quando si riceve la conferma dal partner TP, APPC modifica lo stato della conversazione in RECEIVE. Se, tuttavia, il partner TP segnala un errore, lo stato cambia in RECEIVE o RESET. Vedere le note in questo argomento.

Serrature
Parametro fornito. Specifica quando APPC deve restituire il controllo al punto di controllo locale.

Usare questo parametro solo se ptr_type è impostato su AP_SYNC_LEVEL e il livello di sincronizzazione della conversazione, stabilito MC_ALLOCATE, è AP_CONFIRM_SYNC_LEVEL. In caso contrario, il parametro viene ignorato.

  • AP_LONG indica che APPC restituisce il controllo al punto di destinazione locale quando la conferma e i dati successivi dal partner TP arrivano alla LU locale. Questo metodo consente un uso più efficiente della rete, ma richiede più tempo per restituire il controllo al punto di distribuzione locale.

  • AP_SHORT indica che APPC restituisce il controllo al TP locale quando la conferma dal partner TP arriva alla LU locale.

    Codici restituiti

    AP_OK
    Codice restituito primario; Il verbo è stato 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_P_TO_R_INVALID_TYPE

    Codice restituito secondario; Il ptr_type parametro non è stato impostato su un valore valido.

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

    AP_P_TO_R_NOT_SEND_STATE

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

    AP_P_TO_R_NOT_LL_BDY

    Codice restituito secondario; TP locale non ha completato l'invio di un record logico.

    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 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 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_CONVERSATION_TYPE_MISMATCH

    Codice restituito secondario; il partner LU o TP non supporta il tipo di conversazione (di base o mappato) specificato nella richiesta di allocazione.

    AP_PIP_NOT_ALLOWED

    Codice restituito secondario; La richiesta di allocazione ha specificato i dati PIP, ma il partner TP non richiede questi dati o il partner LU non li 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 specificata nella richiesta di allocazione non è stata accettata dal lun del partner.

    AP_SYNC_LEVEL_NOT_SUPPORTED

    Codice restituito secondario; il partner partner non supporta l'sync_level (AP_NONE o AP_CONFIRM_SYNC_LEVEL) specificato nella richiesta di allocazione oppure il sync_level non è stato riconosciuto.

    AP_TP_NAME_NOT_RECOGNIZED

    Codice restituito secondario; L'unità di ricerca partner non riconosce il nome TP specificato nella richiesta di allocazione.

    AP_TRANS_PGM_NOT_AVAIL_NO_RETRY

    Codice restituito secondario; L'unità lu remota ha rifiutato la richiesta di allocazione perché non è stato in grado di avviare il partner TP richiesto. La condizione è permanente. Il motivo dell'errore può essere registrato nel nodo remoto. Non ripetere l'allocazione fino a quando l'errore non è stato corretto.

    AP_TRANS_PGM_NOT_AVAIL_RETRY

    Codice restituito secondario; L'unità lu remota ha rifiutato la richiesta di allocazione perché non è stato in grado di avviare il partner TP richiesto. La condizione può essere temporanea, ad esempio un timeout. Il motivo dell'errore può essere registrato nel nodo remoto. 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 TP e il nodo PU 2.1 è stata interrotta (errore LAN).

  • L'oggetto SnaBase nel computer del TP ha rilevato un ABEND.

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

    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 ripetere 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 TP per verificare se il problema si verifica di nuovo. In caso contrario, l'amministratore di sistema deve esaminare il log degli errori per determinare la causa dell'errore.

    AP_CONVERSATION_TYPE_MIXED
    Codice restituito primario; TP ha rilasciato verbi di conversazione di base e mappati. È possibile eseguire un solo tipo in una singola conversazione.

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

    AP_PROG_ERROR_PURGING
    Codice restituito primario; in stato RECEIVE, PENDING, PENDING_POST, CONFIRM, CONFIRM_SEND o CONFIRM_DEALLOCATE, il partner TP ha rilasciato 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; in qualsiasi conversazione può essere presente un solo verbo di conversazione in sospeso alla volta. Ciò può verificarsi se il TP locale ha più thread e più thread emette 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.

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

  • Il partner TP ha MC_DEALLOCATE con dealloc_type impostato su AP_ABEND.

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

    Osservazioni:

    Prima di modificare lo stato della conversazione, questo verbo esegue l'equivalente di uno degli elementi seguenti:

  • MC_FLUSH, inviando il contenuto del buffer di invio della LU locale alla lu partner (e TP).

  • MC_CONFIRM, inviando il contenuto del buffer di invio della LU locale e una richiesta di conferma al partner TP.

    Al termine dell'esecuzione di questo verbo, il TP locale può ricevere i dati.

    La conversazione deve essere nello stato SEND quando il TP invia questo verbo.

    Le modifiche dello stato, riepilogate nella tabella seguente, si basano sul valore di primary_rc.

Primary_rc Nuovo stato
AP_OK RECEIVE
AP_ALLOCATION_ERROR RESET
AP_CONV_FAILURE_RETRY RESET
AP_CONV_FAILURE_NO_RETRY RESET
AP_DEALLOC_ABEND RESET
AP_DEALLOC_ABEND_PROG RESET
AP_DEALLOC_ABEND_SVC RESET
AP_DEALLOC_ABEND_TIMER RESET
AP_PROG_ERROR_PURGING RECEIVE
AP_SVC_ERROR_PURGING RECEIVE

La conversazione non passa allo stato SEND per il partner TP fino a quando il partner TP non riceve uno dei valori seguenti tramite il parametro what_rcvd di un verbo di ricezione successivo: