Conversaciones iniciadas de manera remota
Las aplicaciones que quieren recibir conversaciones iniciadas de forma remota (attaches entrantes) emiten un verbo RECEIVE_ALLOCATE . Para dar cabida a la compatibilidad con el punto de sincronización, el verbo RECEIVE_ALLOCATE se modifica de varias maneras como se indica a continuación:
El parámetro sync_level devuelto del verbo RECEIVE_ALLOCATE puede tomar un valor de AP_SYNCPT, especificando que la conversación es una conversación de punto de sincronización. El valor del parámetro sync_level también se puede determinar mediante la emisión de un verbo GET_ATTRIBUTES en la nueva conversación.
Se agrega compatibilidad para la recepción de datos de parámetros de inicio de programa (PIP) mediante un nuevo parámetro al verbo RECEIVE_ALLOCATE :
La aplicación establece el parámetro pip_incoming para indicar si está dispuesto a aceptar los datos de PIP entrantes y lo devuelve Host Integration Server para indicar si los datos de PIP están disponibles para recibirse. Si la aplicación no quiere recibir datos pip, este miembro debe establecerse en AP_NO, el valor predeterminado, antes de emitir el verbo RECEIVE_ALLOCATE . Si está dispuesto a aceptar datos pip, este miembro debe establecerse en AP_YES. Al finalizar el verbo RECEIVE_ALLOCATE , este miembro se establecerá en AP_YES si la aplicación recibe los datos pip y AP_NO de lo contrario.
Si los datos pip están disponibles, la aplicación puede recibirla emitiendo uno de los verbos para recibir datos al finalizar el verbo RECEIVE_ALLOCATE . Para las conversaciones básicas, estos verbos de recepción incluyen RECEIVE_AND_POST, RECEIVE_AND_WAIT y RECEIVE_IMMEDIATE. En las conversaciones básicas, los datos de PIP se devolverán incluidos el encabezado de flujo de datos general (GDS) para los datos PIP (identificador de GDS 0x12F5). Para las conversaciones asignadas, estos verbos de recepción incluyen MC_RECEIVE_AND_POST, MC_RECEIVE_AND_WAIT y MC_RECEIVE_IMMEDIATE. En las conversaciones asignadas, Host Integration Server quita el encabezado GDS de 4 bytes y devuelve solo los datos pip.
En el caso de las conversaciones básicas, si la aplicación emite un SEND_ERROR, DEALLOCATE o TP_ENDED verbo antes de recibir los datos pip, se descartarán los datos de PIP. En el caso de las conversaciones asignadas, si la aplicación emite un MC_SEND_ERROR, MC_DEALLOCATE o TP_ENDED verbo antes de que se reciban los datos de PIP, se descartarán los datos de PIP.
Si se reciben datos PIP para un TP que no puede o no desea recibirlos, la conversación se rechaza con un código de retorno principal de AP_ALLOCATION_ERROR y un código de retorno secundario de AP_PIP_NOT_ALLOWED.