Conversazioni avviate in remoto

Le applicazioni che vogliono ricevere conversazioni avviate in remoto (allegati in ingresso) rilasciano un verbo RECEIVE_ALLOCATE . Per supportare il supporto del punto di sincronizzazione, il verbo RECEIVE_ALLOCATE viene modificato in diversi modi:

  • Il parametro restituito sync_level del verbo RECEIVE_ALLOCATE può assumere un valore di AP_SYNCPT, specificando che la conversazione è una conversazione del punto di sincronizzazione. Il valore del parametro sync_level può essere determinato anche emettendo un verbo GET_ATTRIBUTES nella nuova conversazione.

  • Il supporto viene aggiunto per la ricezione dei parametri di avvio del programma (PIP) da un nuovo parametro al verbo RECEIVE_ALLOCATE :

    Il parametro pip_incoming viene impostato dall'applicazione per indicare se è disposto ad accettare i dati PIP in ingresso e viene restituito da Host Integration Server per indicare se i dati PIP sono disponibili per essere ricevuti. Se l'applicazione non vuole ricevere dati PIP, questo membro deve essere impostato su AP_NO, il valore predefinito, prima di emettere il verbo RECEIVE_ALLOCATE . Se è disposto ad accettare i dati PIP, questo membro deve essere impostato su AP_YES. Al termine del verbo RECEIVE_ALLOCATE , questo membro verrà impostato su AP_YES se i dati PIP sono disponibili per essere ricevuti dall'applicazione e per AP_NO in caso contrario.

  • Se sono disponibili dati PIP, l'applicazione può riceverla emettendo uno dei verbi per ricevere i dati al completamento del verbo RECEIVE_ALLOCATE . Per le conversazioni di base, questi verbi di ricezione includono RECEIVE_AND_POST, RECEIVE_AND_WAIT e RECEIVE_IMMEDIATE. Nelle conversazioni di base i dati PIP verranno restituiti inclusivi dell'intestazione generale del flusso di dati (GDS) per i dati PIP (identificatore GDS 0x12F5). Per le conversazioni mappate, questi verbi di ricezione includono MC_RECEIVE_AND_POST, MC_RECEIVE_AND_WAIT e MC_RECEIVE_IMMEDIATE. Nelle conversazioni mappate, Host Integration Server rimuove l'intestazione GDS a 4 byte e restituisce solo i dati PIP.

  • Per conversazioni di base, se l'applicazione genera un SEND_ERROR, DEALLOCATE o TP_ENDED verbo prima che vengano ricevuti i dati PIP, i dati PIP verranno eliminati. Per le conversazioni mappate, se l'applicazione genera un MC_SEND_ERROR, MC_DEALLOCATE o TP_ENDED verbo prima che vengano ricevuti i dati PIP, i dati PIP verranno eliminati.

  • Se i dati PIP vengono ricevuti per un TP che non può o non vuole riceverlo, la conversazione viene rifiutata con un codice restituito primario di AP_ALLOCATION_ERROR e un codice restituito secondario di AP_PIP_NOT_ALLOWED.