Allocate (CPI-C)
La chiamata Alloca (nome funzione cmallc) viene emessa dal programma di chiamata per allocare una conversazione con il programma partner, usando le caratteristiche correnti della conversazione. CPI-C può anche allocare una sessione tra l'unità logica locale (LU) e l'LU partner se non esiste già.
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 restituiti
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 sbloccata nella conversazione, ma non è stata completata. Il programma può emettere Wait_For_Conversation attendere il completamento dell'operazione o Cancel_Conversation per 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 di chiamata 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 ha il privilegio necessario per allocare una conversazione a un servizio SNA TP.
Il programma partner è un servizio TP, che partecipa alle 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 ripetere l'allocazione finché 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. Riprovare l'allocazione.Modifiche dello stato
La conversazione deve essere in stato INITIALIZE quando Allocato viene emesso.
Le modifiche allo stato, riepilogate nella tabella seguente, sono basate sul valore del parametro return_code .
return_code | Nuovo stato |
---|---|
CM_OK | SEND |
CM_ALLOCATE_FAILURE_NO_RETRY | RESET |
CM_ALLOCATE_FAILURE_RETRY | RESET |
Tutti gli altri | Nessuna modifica |
Commenti
Il tipo di conversazione allocata è basato sulla caratteristica del tipo di conversazione: mappato o di base.
Quando la conversazione è stata allocata da questa chiamata, non è possibile modificare le caratteristiche della conversazione seguenti:
Tipo di conversazione
Nome modalità
Nome LU partner
Nome del programma partner
Controllo restituito
Livello di sincronizzazione
Sicurezza della conversazione
ID utente
Password
Per inviare immediatamente la richiesta di allocazione, il programma di chiamata può emettere Scarica o Conferma immediatamente dopo Allocare. In caso contrario, la richiesta allocata si accumula con altri dati nel buffer di invio delle UNITÀ locali fino a quando il buffer non è pieno.
Eseguendo conferma dopo allocare, il programma di chiamata può determinare immediatamente se l'allocazione è riuscita (se il livello di sincronizzazione della conversazione è impostato su CM_CONFIRM).
Se l'lu partner rifiuta la richiesta di allocazione generata da Allocate, l'errore viene restituito al programma di chiamata in una chiamata successiva.