Le modèle de programmation envoi/réception

Ce modèle de programmation vous permet d'exécuter une transaction de mode de réponse IMS.

Modèle de traitement de connexions socket persistantes partageables

Pour exécuter une transaction dans IMS, votre application Java exécute une interaction SYNC_SEND_RECEIVE. Votre application fournit une valeur SYNC_SEND_RECEIVE pour la propriété interactionVerb et une valeur 0 ou 1 pour la propriété commitMode de l'objet définition d'interaction IMS utilisé par la méthode execute. Toutefois, le traitement de l'interaction SYNC_SEND_RECEIVE n'est pas le même pour les connexions socket persistantes partageables que pour les connexions socket persistantes dédiées.

Les connexions socket persistantes partageables peuvent être utilisées pour les interactions en mode de validation 1 et 0. Les scénarios suivants décrivent l'interaction SYNC_SEND_RECEIVE sur une connexion socket persistante partageable lors d'un traitement normal, d'une erreur de traitement et du délai d'attente d'exécution.
  • Scénario de traitement normal

    L'adaptateur de ressources de gestionnaire de transactions IMS, avec le serveur d'applications, obtient une connexion disponible à partir du pool de connexions ou crée une nouvelle connexion. L'adaptateur de ressources du gestionnaire de transactions IMS génère alors, dans le cadre de l'initialisation d'une nouvelle connexion, un ID client pour cette connexion. Cet ID client identifie la connexion socket et, dans le cas d'interactions en mode de validation 0, le TPIPE et la file d'attente de stockage temporaire asynchrone OTMA.

    L'adaptateur de ressources IMS garantit qu'un socket est associé à la connexion et envoie la requête avec les données d'entrée à IMS Connect à l'aide de ce socket. IMS Connect envoie alors le message à IMS où IMS exécute la transaction et renvoie le message de sortie.

    Pour les interactions en mode de validation 0, l'adaptateur de ressources du gestionnaire de transactionsIMS envoie de manière interne, dès réception du message de sortie, un message d'accusé de réception à IMS indiquant à IMS d'éliminer le message de sortie de la file d'attente IMS. Lorsque l'application client ferme la connexion ou se termine, la connexion est renvoyée au pool de connexions pour être réutilisée par les interactions en mode de validation 0 ou 1.

  • Scénario d'erreur de traitement

    Pour extraire un message de sortie non livré d'une destination de redirection, une application client séparée peut émettre une interaction SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT ou SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT sur une connexion socket persistante dédiée. Cette application client fournira la destination de redirection en tant qu'ID client de l'interaction.

    Autre solution, pour récupérer un message de sortie non livré d'une destination de redirection, une application client séparée peut émettre une interaction SYNC_RECEIVE_ASYNCOUTPUT or SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT ou SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT sur une connexion socket persistante partageable en spécifiant l'ID client alternatif. En utilisant cet ID alternatif, l'application client peut extraire les messages de sortie asynchrones non livrés de n'importe quel TPIPE.

    Remarque : La valeur par défaut de la propriété purgeAsyncOutput est TRUE.
    Lorsque cette propriété a cette valeur, les messages de sortie suivants sont purgés :
    • Message de sortie non livré inséré dans le bloc de communication d'entrée-sortie par le programme d'application IMS principal.
    • Messages de sortie insérés dans le PBC d'entrée-sortie par les programmes d'application IMS secondaires appelés par le basculement d'un programme sur un autre programme.
    Lorsque purgeAsyncOutput est défini sur FALSE, la destination de réacheminement doit être spécifiée.
  • Scénario de délai d'attente d'exécution
    Si un délai d'attente d'exécution est dépassé, la connexion socket reste ouverte mais le message de sortie n'est pas transmis à l'application client. Suite à une exception relative au délai d'attente d'exécution, il existe cependant deux possibilités d'extraire les messages de sortie non distribués pour les interactions de validation en mode 0 sur les connexions sockets persistantes partageables :
    • L'application client ayant exécuté l'interaction SYNC_SEND_RECEIVE peut exécuter l'interaction SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT ou SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT.
    • Le message de sortie non transmis peut être redirigé vers une destination spécifique comme indiqué ci-dessus dans le scénario de traitement des erreurs.

    Lorsque l'application client ferme la connexion ou se termine, la connexion est renvoyée au pool de connexions pour être réutilisée par d'autres interactions en mode de validation 0 ou 1.

Modèle de traitement de connexions socket persistantes partageables

Les connexions socket persistantes dédiées ne peuvent être utilisées que pour les interactions en mode de validation 0. Les scénarios suivants décrivent l'interaction SYNC_SEND_RECEIVE en mode de validation 0 sur une connexion socket persistante partageable lors d'un traitement normal, d'une erreur de traitement et du délai d'attente d'exécution.
  • Scénario de traitement normal

    Dans des conditions normales, lorsqu'une interaction 0 SYNC_SEND_RECEIVE en mode de validation 0 est exécutée par une application client, le serveur d'applications renvoie une connexion existante avec l'ID client défini par l'utilisateur ou crée une nouvelle connexion avec cet ID. Cet ID client identifie la connexion socket, le TPIPE et la file d'attente de stockage temporaire asynchrone OTMA.

    L'adaptateur de ressources du gestionnaire de transactions IMS garantit qu'un socket est associé à la connexion et envoie la requête avec les données d'entrée à IMS Connect à l'aide de ce socket. IMS Connect envoie alors le message à IMS où IMS exécute la transaction et renvoie le message de sortie. L'adaptateur de ressources du gestionnaire de transactions IMS envoie de manière interne, dès réception du message de sortie, un message d'accusé de réception à IMS indiquant d'éliminer le message de sortie de la file d'attente IMS. Lorsque la connexion est fermée ou que l'application s'arrête, la connexion est renvoyée au pool de connexions pour être réutilisée par une autre application exécutant une interaction en mode de validation 0 avec le même ID client défini par l'utilisateur.

  • Scénario d'erreur de traitement

    Toutes les erreurs entraînent une exception relative aux ressources qui est émise à l'application client. Par ailleurs, certaines erreurs entraînent la déconnexion de la connexion socket par IMS Connect. Dans le cas des interactions en mode de validation 0, une exception signifie que le message de sortie ne peut pas être transmis à l'application client. Ce message est mis en file d'attente dans le TPIPE associé à l'ID client défini par l'utilisateur.

    Les propriétés purgeAsyncOutput et reRoute ne peuvent pas s'appliquer aux connexions socket persistantes dédiées. Vous ne pouvez pas purger ou rediriger les messages de sortie non distribués sur une connexion socket persistante dédiée.

  • Scénario de délai d'attente d'exécution

    Si un délai d'attente d'exécution est dépassé, la connexion socket reste ouverte et la sortie de l'interaction en mode de validation 0 est mise en file d'attente dans le TPIPE associée à l'ID client défini par l'utilisateur pour une extraction ultérieure. Lorsque la connexion est fermée ou que l'application s'arrête, l'objet IMSManagedConnection est renvoyé au pool de connexions pour être réutilisé par une autre application exécutant une interaction en mode de validation 0 avec le même ID client défini par l'utilisateur.


Vos commentaires