Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La chiamata Allocate (nome funzione cmallc) viene emessa dal programma chiamante per allocare una conversazione con il programma partner, usando le caratteristiche di conversazione correnti. CPI-C può anche allocare una sessione tra l'unità logica locale (LU) e l'lu partner, se non ne esiste già uno.
Sintassi
CM_ENTRY Allocate(
unsigned char FAR *conversation_ID,
CM_INT32 FAR *return_code
);
Parametri
conversation_ID
Parametro fornito. Specifica l'identificatore della conversazione. Il valore di questo parametro è stato restituito da Initialize_Conversation.
return_code
Codice restituito da questa chiamata. I codici restituiti validi sono elencati più avanti in questo argomento.
Codici di ritorno
CM_OK
Codice restituito primario; la chiamata eseguita correttamente.
CM_OPERATION_NOT_ACCEPTED
Codice restituito primario; questo valore indica che un'operazione precedente in questa conversazione è incompleta.
CM_OPERATION_INCOMPLETE
Codice restituito primario; È stata avviata un'operazione non bloccante nella conversazione, ma non è stata completata. Il programma può emettere Wait_For_Conversation attendere il completamento dell'operazione o Cancel_Conversation annullare l'operazione e la conversazione.
CM_PARAMETER_ERROR
Codice restituito primario; si è verificato uno dei seguenti:
Il nome della modalità derivato dalle informazioni sul lato o impostato da Set_Mode_Name non è valido.
Il nome della modalità viene usato dai programmi di transazione del servizio SNA (TP); il programma chiamante non dispone dell'autorità per usare questo nome di modalità. Un esempio è SNASVCMG.
Il programma partner derivato dalle informazioni sul lato è un servizio SNA TP; il programma locale non dispone del privilegio necessario per allocare una conversazione a un tp di servizio SNA.
Il programma partner è un servizio TP, che partecipa a conversazioni di base, ma la conversazione è impostata su CM_MAPPED_CONVERSATION.
Il nome lu partner derivato dalle informazioni sul lato o impostato da Set_Partner_LU_Name non è valido.
CM_PROGRAM_PARAMETER_CHECK
Codice restituito primario; il valore specificato da conversation_ID non è valido oppure l'indirizzo di una variabile non è valido.CM_PROGRAM_STATE_CHECK
Codice restituito primario; la conversazione non è in stato INITIALIZE.CM_PRODUCT_SPECIFIC_ERROR
Codice restituito primario; si è verificato un errore specifico del prodotto ed è stato registrato nel log degli errori dei prodotti.CM_UNSUCCESSFUL
Codice restituito primario; la caratteristica del controllo restituito delle conversazioni è impostata su CM_IMMEDIATE e l'lu locale non ha una sessione di contesa disponibile.I codici restituiti seguenti possono essere generati se il tipo di controllo restituito delle conversazioni è impostato su CM_WHEN_SESSION_ALLOCATED.
CM_ALLOCATE_FAILURE_NO_RETRY
Codice restituito primario; 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.CM_ALLOCATE_FAILURE_RETRY
Codice restituito primario; 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.Modifiche dello stato
La conversazione deve essere in stato INITIALIZE quando viene emesso Allocate.
Le modifiche dello stato, riepilogate nella tabella seguente, si basano sul valore del parametro return_code .
| return_code | Nuovo stato |
|---|---|
| CM_OK | SEND |
| CM_ALLOCATE_FAILURE_NO_RETRY | RESETTARE |
| CM_ALLOCATE_FAILURE_RETRY | RESETTARE |
| Tutti gli altri | Nessuna modifica |
Osservazioni:
Il tipo di conversazione allocata è basato sulla caratteristica del tipo di conversazione: mappata o di base.
Quando la conversazione è stata allocata da questa chiamata, non è possibile modificare le caratteristiche di conversazione seguenti:
Tipo di conversazione
Nome modalità
Nome lu partner
Nome del programma partner
Controllo Restituito
Livello di sincronizzazione
Sicurezza delle conversazioni
ID utente
Parola d’ordine
Per inviare immediatamente la richiesta di allocazione, il programma chiamante può emettere Flush o Confirm immediatamente dopo Allocate. In caso contrario, la richiesta di allocazione si accumula con altri dati nel buffer di invio delle unità organizzative locali fino a quando il buffer non è pieno.
Eseguendo Conferma dopo Allocate, il programma chiamante può determinare immediatamente se l'allocazione è riuscita (se il livello di sincronizzazione della conversazione è impostato su CM_CONFIRM).
Se il lu partner rifiuta la richiesta di allocazione generata da Allocate, l'errore viene restituito al programma richiamante in una chiamata successiva.