Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La llamada Set_Deallocate_Type ( cmsdt) especifica cómo se desasigna la conversación.
Sintaxis
CM_ENTRY Set_Deallocate_Type(
unsigned char FAR *conversation_ID,
CM_INT32 FAR *deallocate_type,
CM_INT32 FAR *return_code
);
Parámetros
conversation_ID
Parámetro proporcionado. Especifica el identificador de la conversación. El valor de este parámetro lo devolvió Initialize_Conversation o Accept_Conversation.
deallocate_type
Parámetro proporcionado. Especifica cómo realizar la desasignación. Los valores posibles son:
CM_DEALLOCATE_ABEND
Indica que la conversación se va a desasignar anómala e incondicionalmente. Un programa debe especificar CM_DEALLOCATE_ABEND cuando se produce un error que impide la finalización correcta de una transacción.
Si la conversación está en estado SEND, CPI-C envía el contenido del búfer de envío de la unidad lógica local (LU) al programa asociado antes de desasignar la conversación. Si la conversación está en estado RECEIVE, se pueden purgar los datos entrantes. Para una conversación básica en estado SEND, puede producirse un truncamiento de registros lógicos.
CM_DEALLOCATE_CONFIRM
Se usa para enviar al programa asociado el contenido del búfer de envío de lus locales y una solicitud para confirmar la desasignación.
Esta solicitud de confirmación de desasignación se envía mediante Deallocate o Send_Data con el tipo de envío establecido en CM_SEND_AND_DEALLOCATE. La conversación se desasigna normalmente cuando el programa asociado emite Confirmado, respondiendo a la solicitud de confirmación.
CM_DEALLOCATE_FLUSH
Se usa para enviar el contenido de las LU locales enviar búfer al programa asociado antes de desasignar la conversación con normalidad.
CM_DEALLOCATE_SYNC_LEVEL
Usa el nivel de sincronización de conversaciones para determinar cómo desasignar la conversación. Un nivel de sincronización predeterminado se establece mediante Initialize_Conversation y se puede invalidar mediante Set_Sync_Level.
Si el nivel de sincronización de la conversación es CM_NONE, el valor predeterminado es que el contenido del búfer de envío de LU local se envíe al programa asociado y la conversación se desasigne normalmente.
Si el nivel de sincronización de la conversación es CM_CONFIRM, el contenido de las LU locales envía el búfer y una solicitud para confirmar que la desasignación se envía al programa de partners. Esta solicitud de confirmación de desasignación se envía mediante Deallocate o Send_Data con el tipo de envío establecido en CM_SEND_AND_DEALLOCATE. La conversación se desasigna normalmente cuando el programa asociado emite la llamada confirmada , respondiendo a la solicitud de confirmación.
return_code
Código devuelto de esta llamada. Los códigos de retorno válidos se enumeran más adelante en este tema.
Códigos de retorno
CM_OK
Código de retorno principal; la llamada se ejecutó correctamente.
CM_PROGRAM_PARAMETER_CHECK
Código de retorno principal; se produjo una de las siguientes acciones:
El valor especificado por conversation_ID o deallocate_type no es válido.
El parámetro deallocate_type especifica CM_DEALLOCATE_CONFIRM, pero el nivel de sincronización de conversaciones se establece en CM_NONE.
La dirección de una variable no es válida.
CM_PRODUCT_SPECIFIC_ERROR
Código de retorno principal; se produjo un error específico del producto y se ha registrado en el registro de errores de productos.
Cambios de estado
La conversación puede estar en cualquier estado excepto RESET.
No hay ningún cambio de estado.
Observaciones
Esta llamada invalida el tipo de desasignación predeterminado establecido por Initialize_Conversation o Accept_Conversation. El tipo de desasignación predeterminado es CM_DEALLOCATE_SYNC_LEVEL.
Las instrucciones de desasignación especificadas por esta llamada surten efecto cuando se emite Deallocate o cuando el tipo de envío se establece en CM_SEND_AND_DEALLOCATE y se emite Send_Data .
Puede establecer deallocate_type en CM_FLUSH si el nivel de sincronización de la conversación está establecido en CM_NONE o CM_CONFIRM.
El valor CM_DEALLOCATE_FLUSH es funcionalmente el mismo que CM_DEALLOCATE_SYNC_LEVEL con el nivel de sincronización de conversaciones establecido en CM_NONE.
El valor CM_DEALLOCATE_CONFIRM es funcionalmente el mismo que CM_DEALLOCATE_SYNC_LEVEL con el nivel de sincronización de conversaciones establecido en CM_CONFIRM.