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 :
- Reprise de la validation en deux phases
- Transactions conversationnelles
IMS
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.