Ejemplo de una conversación asignada (CPI-C)
En el ejemplo siguiente de una conversación asignada se muestran las llamadas a Common Programming Interface for Communications (CPI-C) usadas para iniciar una conversación, intercambiar datos y finalizar la conversación. Los parámetros de llamada están entre paréntesis.
Emitido por el TP de invocación | Emitido por el TP invocable |
---|---|
Initialize_Conversation | |
Asignar | |
Send_Data | |
desasignar | Accept_Conversation |
Recepción | |
(data_received= | |
CM_COMPLETE_DATA_RECEIVED) | |
(return_code= | |
CM_DEALLOCATED_NORMAL) |
En los párrafos siguientes se describen las llamadas que se usan en una conversación asignada.
Llamadas para iniciar una conversación asignada
Para iniciar una conversación, la invocación del programa de transacciones (TP) emite las siguientes llamadas:
Initialize_Conversation, que solicita a CPI-C que establezca los valores que definen las características de la conversación. La llamada Initialize_Conversation especifica un nombre de destino simbólico asociado a una entrada de una tabla de información lateral en la memoria. La información del lado especifica tp de asociado, LU de asociado, modo, seguridad, etc.
Asigne, que solicita que CPI-C establezca una conversación entre el TP invocado y el TP invocable.
El TP invocable emite la llamada Accept_Conversation , que informa a CPI-C de que está listo para iniciar una conversación con el TP invocado.
Llamadas para enviar datos en una conversación asignada
La llamada Send_Data coloca un registro de datos (un registro que contiene los datos de la aplicación que se van a transmitir) en el búfer de envío de la unidad lógica local (LU). La transmisión de datos al TP del asociado no se produce hasta que se produce uno de los siguientes eventos:
El búfer de envío se rellena.
El TP de envío realiza una llamada que obliga a CPI-C a vaciar el búfer y enviar datos al TP del asociado.
Además del registro de datos, el búfer de envío también contiene la solicitud de asignación (que precede al registro de datos).
En el ejemplo anterior, Deallocate vacía el búfer de envío, enviando la solicitud de asignación y los datos al TP del asociado. Otras llamadas que vacían el búfer son Confirm y Flush.
Llamadas para recibir datos en una conversación asignada
La llamada Receive recibe el registro de datos y la información de estado del TP del asociado. Si no hay datos o información de estado disponible actualmente, el TP local, de forma predeterminada, espera a que lleguen los datos.
El parámetro data_received de Receive indica al programa si ha recibido datos y, si es así, si los datos están completos o no.
Llamadas para finalizar una conversación asignada
Para finalizar una conversación, uno de los TPs emite Deallocate, lo que hace que CPI-C desasigne la conversación entre los dos CSP.