Connexions socket persistantes dédiées

Une connexion socket persistante dédiée est une connexion socket attribuée à un ID client spécifique et qui restera dédiée à cet ID client pendant toute la connexion.

De manière générale, une connexion socket persistante dédiée est utilisée (ou réutilisée) à plusieurs reprises par une seule application. Néanmoins, elle peut également être réutilisée par plusieurs applications qui peuvent obtenir le socket en utilisant le même ID client.

Si différentes applications tentent simultanément d'utiliser une connexion socket persistante dédiée avec le même ID client, la tentative de la première application aboutira. Les tentatives suivantes par d'autres applications alors que la première application utilise toujours cette connexion recevront des erreurs de client en double (DUPCLNT) d'IMS Connect.

Une erreur de client en double peut aussi survenir lorsqu'une application obtenant une connexion socket persistante dédiée avec un ID client donné fonctionne dans un environnement où les connexions socket persistantes dédiées peuvent provenir de plusieurs instances de WebSphere Application Server. Par exemple, un environnement comportant plusieurs instances de WebSphere Application Server gérées par un gestionnaire de charge de travail peut rencontrer plusieurs erreurs de client en double.
Recommandation : Ne déployez pas votre application dans un environnement de ce type si une connexion socket persistante dédiée est utilisée.
Les connexions socket persistantes dédiées sont destinées à être utilisées dans un environnement où une même instance de WebSphere Application Server est connectée à une seule instance d'IMS Connect. Dans certaines situations, une même instance de WebSphere Application Server peut être connectée à plusieurs instances d'IMS Connect. Dans cette configuration, si Sysplex Distributor est utilisé entre WebSphere Application Server et IMS Connect, les interactions suivantes ne sont pas prises en charge :

Mode de validation et interactions pris en charge

Une connexion socket persistante dédiée peut être utilisée uniquement pour les applications Java™ qui exécutent des interactions de validation en mode 0.

Tableau 1. Modes de validation pris en charge, instructions d'interaction et niveaux de synchronisation par type de socket
Mode de validation Type de socket Instruction d'interaction ID client Niveau de synchronisation
CM1 Persistant partageable
  • SYNC_END_CONVERSATION (pour les transactions conversationnelles)
  • SYNC_SEND_RECEIVE
Automatiquement généré et géré Aucune ou Confirmation
CM0 Persistant partageable
  • SYNC_SEND
  • SYNC_SEND_RECEIVE
  • SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT
  • SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT
  • SYNC_RECEIVE_CALLOUT (pour le modèle de programmation d'appel non géré)
Automatiquement généré et géré Confirmation
Persistant dédié
  • SYNC_SEND
  • SYNC_SEND_RECEIVE
  • SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT
  • SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT
Spécifié par les applications client (la propriété clientID) Confirmation

L'instruction d'interaction SYNC_RECEIVE_ASYNCOUTPUT est dépréciée et remplacée par l'instruction d'interaction SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT.

Récupération de message

Les interactions SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT et SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT (ainsi que l'interaction obsolète SYNC_RECEIVE_ASYNCOUTPUT) sur les connexions socket persistantes dédiées permettent aux applications client de récupérer les messages des sources suivantes :
  • Les messages qui ont été placés dans une file d'attente de sortie asynchrone OTMA dIMS suite à l'échec d'une interaction en mode de validation 0.
  • Les messages émis par une application IMS qui a lancé une insertion dans un bloc ALTPCB (Alternate Program Communication Block).
  • Des messages provenant du réacheminement de la sortie d'une transaction exécutée sur une connexion socket partageable.
Pour récupérer ces messages, l'application client doit fournir l'ID client, qui représente le tpipe où les messages de sortie asynchrones sont mis en file d'attente. Les messages de sortie non distribués émis par les interactions sur les connexions persistantes dédiées ne peuvent pas être redirigés ou purgés.

Il est possible que vous ne puissiez pas extraire tous les messages de sortie disponibles à l'aide des interactions SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT lorsque vous utilisez plusieurs systèmes IMS sans membre OTMA "Super Member".

Les connexions socket persistantes dédiées

Les connexions socket persistantes dédiées sont créées par une fabrique de connexions IMS avec des valeurs pour les propriétés personnalisées suivantes au moins :
  • Nom de l'hôte : nom de l'hôte TCP/IP du système exécutant IMS Connect.
  • Numéro de port : numéro de port associé.
  • Nom du magasin de données : nom de la cible IMS.
  • CM0 dédié : true

La valeur true pour la propriété CM0Dedicated garantit que la fabrique de connexions crée des connexions socket persistantes dédiées.

Si vous disposez de plusieurs fabriques de connexions configurées pour créer des connexions socket persistantes dédiées pour la même instance IMS Connect, une seule fabrique de connexions peut dédier un socket à un ID client donné à la fois. Par exemple, supposons qu'une fabrique de connexions créé correctement une connexion socket dédiée à un ID client CLIENT01. Une deuxième fabrique de connexions essaye également de créer une connexion socket dédiée à CLIENT01. Si la connexion socket créée par la première fabrique de connexions est encore connectée à IMS Connect, la deuxième connexion recevra l'exception suivante :
javax.resource.spi.EISSystemException: ICO0001E:
com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@23766050.processOutputOTMAMsg
(byte [], InteractionSpec,Record) error. IMS Connect returned error: RETCODE=[8], 
REASONCODE=[DUPECLNT]. 
Duplicate client ID was used;  the client ID is currently in use. 

Vos commentaires