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.
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.
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.
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.
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.
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.
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.