Olvido implícito
Las sesiones de punto de sincronización de LU 6.2 pueden usar una optimización de los flujos de mensajes diseñados conocidos como olvido implícito. Cuando el protocolo especifica que se requiere un encabezado de presentación FORGET (PS), el siguiente flujo de datos de la sesión implica que se ha recibido forget, aunque no lo haya hecho. En la situación normal, el TP es consciente del siguiente flujo de datos cuando se reciben o envían datos en una de sus conversaciones de punto de sincronización.
Sin embargo, es posible que el último mensaje que fluye se deba a que la conversación se desasigna. En este caso, el TP no es consciente cuando se produce el siguiente flujo de datos en la sesión. Para proporcionar el TP con esta notificación, los verbos DEALLOCATE y MC_DEALLOCATE se modifican para permitir que el TP registre una función de devolución de llamada a la que se llamará:
En la primera transmisión de flujo normal (solicitud o respuesta) sobre la sesión utilizada por la conversación.
Si la sesión está desenlazada antes de cualquier otro flujo de datos.
Si la sesión finaliza anómalamente debido a una interrupción del control de vínculo de datos (DLC).
El procedimiento de devolución de llamada puede tomar cualquier nombre porque la dirección del procedimiento se pasa al archivo DLL de APPC.
Tenga en cuenta que los verbos DEALLOCATE y MC_DEALLOCATE probablemente se completarán antes de llamar a la rutina de devolución de llamada. La conversación se considera que está en estado RESET y no se puede emitir ningún verbo adicional mediante el identificador de conversación. Si la aplicación emite un verbo TP_ENDED antes del siguiente flujo de datos de la sesión, no se invocará la rutina de devolución de llamada.
Los verbos DEALLOCATE y MC_DEALLOCATE se modifican de la siguiente manera para admitir el olvido implícito:
Se agrega un nuevo miembro, devolución de llamada, para permitir que el TP especifique la dirección de la función a la que llamar en el siguiente flujo de datos de la sesión que usa la conversación que se desasigna. Si este miembro es NULL, no se proporcionará ninguna notificación. Normalmente, un proveedor proporcionaría esta función de devolución de llamada.
Los verbos DEALLOCATE y MC_DEALLOCATE también contienen un miembro de correlación que se devuelve como uno de los parámetros cuando se invoca la función de devolución de llamada. La aplicación puede usar este parámetro de cualquier manera (por ejemplo, como puntero a un bloque de control dentro de la aplicación).
Host Integration Server permite a los CSP desasignar conversaciones inmediatamente después de enviar datos especificando el miembro de tipo en el SEND_DATAy MC_SEND_DATAverbos como AP_SEND_DATA_DEALLOC_FLUSH, AP_SEND_DATA_DEALLOC_SYNC_LEVEL, AP_SEND_DATA_DEALLOC_ABEND y AP_SEND_DATA_DEALLOC_CONFIRM. Sin embargo, los verbos SEND_DATA y MC_SEND_DATA no contienen la función de devolución de llamada olvidada implícita. Los CSP que deseen recibir una notificación de olvido implícita deben emitir un verbo DEALLOCATE o MC_DEALLOCATE explícitamente.