Connexions socket persistantes partageables

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.

Vos commentaires