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:
AP_SEND
AP_CONFIRM_SEND risposte con MC_CONFIRMED
AP_DATA_COMPLETE_CONFIRM_SEND risposte con MC_CONFIRMED
AP_DATA_CONFIRM_SEND risposte con MC_CONFIRMED
I verbi di ricezione MC_RECEIVE_AND_POST, MC_RECEIVE_IMMEDIATE e MC_RECEIVE_AND_WAIT.