Une connexion socket persistante partageable est une
connexion socket qui peut être partagée (réutilisée à plusieurs reprises) par
plusieurs applications exécutant des interactions en mode de validation 1 (CM1)
ou 0 (CM0).
Pour une application exécutant l'interaction en mode de validation 0 sur un socket persistant partageable,
IMS TM Resource Adapter génère
automatiquement un ID client avec le préfixe "HWS". Cet ID client représente et identifie la connexion socket et le tpipe OTMA associé.
Pour ce type de
connexion socket, seul les ID client générés par
IMS TM Resource Adapter sont
autorisés. Si vous indiquez un ID client de connexion qui n'a pas été
défini comme étant en mode CM0 sur une connexion socket persistante, une
exception est émise et renvoyée au client.
Restriction : Les programmes d'application IMS
qui intègrent les messages dans un PCB alternatif ne doivent pas utiliser les noms commençant par "HWS" pour les PCB alternatifs. L'adaptateur de ressources IMS TM ne peut pas récupérer les messages HWS.
Conseil : Les ID client sont différents des ID client alternatifs.
L'ID client alternatif est une propriété de la classe IMSInteractionSpec.
Les ID client alternatifs sont utilisés pour récupérer des messages de sortie asynchrones auprès des files d'attente OTMA (tpipes).
Mode de validation et interaction pris en charge
Un socket persistant partageable peut
être utilisé pour les applications Java™ qui exécutent des interactions de validation en mode 1 ou 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 messages de sortie ne pouvant pas être transmis à un client
Java
qui exécute une interaction en mode de validation 0 sur une connexion socket
persistante partageable peuvent être mis en file d'attente pour être récupérés
ultérieurement. La sortie secondaire est toujours traitée comme une sortie CM0 et peut être replacée en file d'attente afin d'être extraite
ultérieurement.
Imaginons la situation dans laquelle une interaction CM1 ou CM0
sur une connexion socket partageable persistante exécute un basculement de
programme à programme. Si les deux programmes renvoient une sortie, le second
message de sortie renvoyé est traité comme une sortie CM0.
Elle peut être
remise en file d'attente puis récupérée ultérieurement.
Par ailleurs, si une interaction CM1 ou CM0 sur une connexion socket persistante partageable créant un basculement de type programme à programme appelle une autre interaction CM0 entraînant un message de sortie secondaire
(qui est toujours CM0), la sortie peut à nouveau être mise en file d'attente en vue d'une récupération ultérieure.
Si des
messages de sortie non distribués qui sont mis en file d'attente dans la file
d'attente de stockage temporaire asynchrone
IMS
OTMA ou le tpipe ne sont pas récupérés par l'ID client alternatif, les
instructions d'interaction et la récupération doivent être appelées au sein de
la même application client, à l'aide de la même connexion socket. Le même ID
client généré qui identifie la connexion socket partageable et le tpipe OTMA
associé doit être utilisé à la fois pour l'interaction d'origine et pour la
récupération des sorties asynchrones de cette interaction.
Les messages de sortie non distribués peuvent être
traités d'une seule façon sur une connexion socket persistante
partageable :
- Les messages non distribuables peuvent être extraits en spécifiant, comme
valeur de propriété de l'ID client alternatif de l'objet IMSInteractionSpec, le
nom de la file de stockage temporaire OTMA dans laquelle les messages de sortie asynchrones sont mis en attente.
- Les sorties non distribuées doivent être purgées. Pour cela, vous devez définir la propriété purgeAsyncOutput d'IMSInteractionSpec à true. Cette propriété d'entrée détermine si IMS Connect purge le message de sortie non distribué du PCB d'entrée-sortie. La propriété purgeAsyncOutput est valide avec l'instruction d'interaction SYNC_SEND_RECEIVE. Si elle n'est pas définie à SYNC_SEND_RECEIVE, la valeur par défaut est true.
- Rediriger les messages vers une
autre destination. Vous pouvez les rediriger vers une autre destination en définissant la propriété reRoute
d'IMSInteractionSpec à true. Cette propriété est valide seulement pour les
instructions d'interactions SYNC_SEND_RECEIVE et SYNC_SEND. Si la propriété reRoute est définie à true, le message de sortie non distribué est mis en file d'attente vers une destination donnée qui est en général fournie par l'application client. Cette destination est définie dans la propriété
reRouteName d'IMSInteractionSpec. Si la propriété reRoute est définie à true et qu'aucune propriété reRouteName n'est fournie, la valeur de la propriété reRouteName est alors la valeur définie dans le fichier de configuration d'IMS Connect. Si aucune valeur n'est définie dans le fichier de configuration d'IMS Connect, la valeur par défaut utilisée est HWS$DEF.
Les connexions socket persistantes partageables
Les connexions socket persistantes partageables sont créées par une fabrique
de connexions
IMS
avec des valeurs requises pour les propriétés personnalisées suivantes :
- 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é : false
La valeur par défaut de la propriété
CM0Dedicated est
false, garantissant que la fabrique de connexions crée des
connexions socket persistantes partageables, sauf si la propriété CM0Dedicated
a été définie explicitement à
true.