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.