Configuration de la propriété IMSInteractionSpec

Vous devez fournir un objet IMSInteractionSpec configuré pour interagir avec IMS.

Lorsque votre application Java interagit avec IMS, elle doit fournir un objet IMSInteractionSpec configuré. Les valeurs des propriétés de l'objet IMSInteractionSpec décrivent l'interaction avec IMS. Les valeurs des propriétés de l'objet IMSInteractionSpec peuvent être fournies directement via des méthodes set par une application utilisant l'interface CCI ou bien être fournies à un assistant d'une interface IDE qui génère le code de l'application. Certaines de ces propriétés sont des propriétés d'entrée uniquement, d'autres sont des propriétés d'entrée et de sortie et d'autres encore sont des propriétés de sortie uniquement. L'application Java (également appelée composant d'application) interroge uniquement les propriétés de sortie pour déterminer des informations supplémentaires concernant l'interaction.

La liste suivante répertorie toutes les propriétés de IMSInteractionSpec :

altClientID
Propriété d'entrée uniquement. Elle sert à fournir le nom d'un autre ID client (que l'on appelle ID client alternatif). Ce nom sera utilisé comme TPIPE à partir duquel les messages de sortie asynchrones seront extraits sur une connexion socket persistante partagée.
Cette propriété est prise en charge moyennant le respect des conditions suivantes :
  • Connexion TCP/IP avec socket persistante partageable
  • Les seules instructions d'interaction acceptées pour l'extraction des messages de sortie asynchrones (demande resumeTpipe) sont les suivantes : SYNC_RECEIVE_ASYNCOUTPUT, SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT, SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT
  • Interaction avec mode de validation 0 - Non utilisable avec Local Option
  • Non utilisable avec une connexion socket dédiée
  • Le nom de redirection et l'ID client alternatif s'excluent mutuellement et ne peuvent donc pas être spécifiés en même temps
asyncOutputAvailable
Propriété de sortie uniquement. Cette propriété peut être utilisée par une application Java pour déterminer s'il existe une sortie mise en file d'attente pour le TPIPE associé à la connexion utilisée pour une interaction en mode de validation 0. Pour les connexions de sockets persistantes dédiées, le nom de TPIPE est la valeur de la propriété clientID de IMSConnectionSpec. Pour les connexions socket persistantes partageables, le nom TPIPE est généré par IMS Connector for Java. La valeur de asyncOutputAvailable est true s'il existe des messages dans la file d'attente. La propriété asyncOutputAvailable n'est pas définie sur "entrée" par les composants de l'application. Remarque : Si votre application Java utilise cette propriété, elle doit être exposée en tant que propriété de sortie de IMSInteractionSpec.
convEnded
Propriété de sortie uniquement. Cette propriété peut être utilisée par une application Java pour déterminer si une conversation est terminée (true). La propriété convEnded n'est pas définie sur "entrée" par les composants de l'application. Remarque : Si votre application Java utilise cette propriété, elle doit être exposée en tant que propriété de sortie de IMSInteractionSpec.
commitMode
Cette propriété est utilisée par l'adaptateur de ressources IMS TM pour indiquer le type de traitement de mode de validation à exécuter pour une transaction IMS. Pour plus d'informations, voir Présentation du traitement de mode de validation. La propriété commitMode peut être définie sur 0 ou 1 lorsque interactionVerb est définie sur SYNC_SEND_RECEIVE. Lorsque interactionVerb est définie sur SYNC_RECEIVE_ASYNCOUTPUT, SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT, SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT ou SYNC_SEND, IMS Connector for Java utilise la propriété commitMode 0. La propriété commitMode 1 est requise lorsque interactionVerb est définie sur SYNC_END_CONVERSATION.
Si commitMode est 0 et qu'une connexion socket persistante partageable est utilisée pour l'interaction, clientID ne doit pas être spécifié. Si commitMode 0 est spécifié pour une interaction sur une connexion socket persistante partageable, le message de sortie d'une transaction peut être purgé ou redirigé. Une sortie secondaire non distribuée par basculement de programme à programme peut également être purgée ou redirigée.
Si une connexion socket persistante dédiée est utilisée pour une interaction, commitMode doit être 0 et la propriété clientID de IMSConnectionSpec utilisée pour la connexion doit être fournie. Si une connexion socket persistante dédiée est utilisée pour une interaction commitMode 0, les messages de sortie non distribués sont toujours récupérables et ne peuvent pas être supprimés ou redirigés.
socketTimeout
Délai maximum durant lequel IMS Connector for Java attend une réponse d'IMS Connect avant de déconnecter le socket et de renvoyer une exception à l'application client. La valeur socketTimeout est exprimée en millisecondes. Pour utiliser le délai d'attente du socket, la valeur doit être supérieure à zéro. Si aucun délai d'attente de socket n'est spécifié pour une interaction ou si sa valeur est zéro millisecondes, aucun délai d'attente de socket ne sera utilisé ou l'attente sera infinie. Pour plus d'informations, voir Délai d'attente du socket et Définition des valeurs de délai d'attente du socket.
executionTimeout
Délai maximum autorisé entre l'envoi, depuis IMS Connect, d'un message à IMS et la réception d'une réponse. La valeur executionTimeout est exprimée en millisecondes et doit être un entier décimal égal à -1 ou compris entre 1 et 3 600 000, ces deux valeurs étant incluses dans la plage. La valeur executionTimeout doit donc être supérieure à zéro et inférieure ou égale à une heure. Si la valeur -1 est définie pour cette propriété, l'interaction est exécutée sans limite de temps. Pour plus d'informations, voir Délai d'attente d'exécution, Définition des valeurs de délai d'attente d'exécution et Valeurs valides de délai d'attente d'exécution.
imsRequestType
Indique le type de requête IMS et détermine comment la sortie de la requête est gérée par l'adaptateur de ressources IMS TM. Entiers :
Valeur Constante nommée dans IMSInteractionSpecProperties Description
1

IMS_REQUEST_TYPE_IMS_
TRANSACTION

La requête est une transaction IMS. La sortie de transaction normale renvoyée par IMS est utilisée pour renseigner le message de sortie de l'application. Si IMS renvoie un message "DFS", l'adaptateur de ressources IMS émet une exception IMSDFSMessageException contenant le message "DFS".

Cette valeur pour imsRequestType est utilisée pour les applications qui ne sont pas générées avec le support MFS de WebSphere Studio.

2 IMS_REQUEST_TYPE_IMS_COMMAND La requête est une commande IMS. La sortie de commande renvoyée par IMS, y compris les messages "DFS" est utilisée pour renseigner le message de sortie de l'application. L'exception IMSDFSMessageException n'est pas émise.

Cette valeur pour imsRequestType est utilisée pour les applications qui soumettent des commandes IMS.

3

IMS_REQUEST_TYPE_MFS_
TRANSACTION

Cette valeur pour imsRequestType est réservée aux applications générées avec le support MFS de WebSphere Studio.

Les sorties de transaction normales renvoyées par IMS, et les messages "DFS" sont utilisés pour renseigner le message de sortie de l'application. L'exception IMSDFSMessageException n'est pas émise.

interactionVerb
Mode d'interaction entre l'application Java et IMS. Les valeurs actuellement prises en charge par l'adaptateur de ressources IMS TM sont :
Valeur Constante nommée dans IMSInteractionSpecProperties Description
0 SYNC_SEND L'adaptateur de ressources IMS TM envoie la requête client à IMS via IMS Connect et n'attend pas de réponse d'IMS. Avec une interaction SYNC_SEND, le client n'a pas besoin de procéder à une synchronisation pour recevoir une réponse d'IMS. SYNC_SEND est pris en charge sur les connexions sockets persistantes partageables et dédiées et n'est autorisé qu'avec des interactions commitMode 0. Si interactionVerb est défini sur SYNC_SEND, le délai d'attente d'exécution et le délai d'attente du socket sont ignorés. Remarque : le type 2 de imsRequest n'est pas autorisé avec SYNC_SEND et génère une exception.
1 SYNC_SEND_RECEIVE L'exécution d'une interaction IMS envoie une requête à IMS et reçoit une réponse synchronisée. Une interaction SYNC_SEND_RECEIVE classique est l'exécution d'une transaction IMS non conversationnelle dans laquelle un enregistrement d'entrée (le message d'entrée de la transaction IMS) est envoyé à IMS et un enregistrement de sortie (le message de sortie de la transaction IMS) est renvoyé par IMS. Les interactions SYNC_SEND_RECEIVE sont également utilisées pour les itérations d'une transaction IMS conversationnelle. Une transaction conversationnelle nécessite commitMode 1. Une transaction non conversationnelle peut fonctionner avec commitMode 1 ou commitMode 0. Si commitMode 0 est utilisé sur une connexion socket persistante dédié, une valeur doit être indiquée pour la propriété clientID de IMSConnectionSpec. Si commitMode 0 est utilisé sur une connexion socket persistante partageable, vous ne devez pas indiquer de valeur pour la propriété clientID de IMSConnectionSpec.
3 SYNC_END_CONVERSATION Si l'application exécute une interaction avec interactionVerb défini sur SYNC_END_CONVERSATION, l'adaptateur de ressources IMS TM envoie un message pour forcer l'arrêt d'une transaction IMS conversationnelle.

La propriété IMSInteractionSpec, commitMode, et la propriété IMSConnectionSpec, clientID, ne s'appliquent pas lorsque SYNC_END_CONVERSATION est fourni pour interactionVerb.

4 SYNC_RECEIVE_ASYNCOUTPUT L'instruction d'interaction (interactionVerb) SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT est valide à la fois sur les connexions socket persistantes partageables et dédiées. SYNC_RECEIVE_ASYNCOUTPUT permet d'extraire des sorties asynchrones qui n'ont pas été distribuées. Lorsque SYNC_RECEIVE_ASYNCOUTPUT est utilisé sur une connexion socket persistante dédiée, vous devez fournir une valeur pour la propriété clientID de IMSConnectionSpec.

Une interaction SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT sur une connexion socket persistante partageable doit se trouver dans la même application que l'interaction SYNC_SEND or SYNC_SEND_RECEIVE d'origine et doit utiliser la même connexion socket persistante partageable. Cette situation se produit généralement après un délai d'attente d'exécution.

Avec ce type d'interaction, le client Java ne peut recevoir qu'un seul message. S'il n'y a aucun message dans la file d'attente asynchrone IMS OTMA pour le clientID lorsque la requête est effectuée, aucune tentative supplémentaire d'extraction du message n'est effectuée. Aucun message n'est renvoyé et un dépassement du délai d'attente se produit après le délai spécifié dans la propriété executionTimeout de l'interaction SYNC_RECEIVE_ASYNCOUTPUT.

5

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_NOWAIT

interactionVerb

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_NOWAIT

est valide sur les connexions sockets persistantes partageables et dédiées. Permet d'extraire des sorties asynchrones.
Une interaction

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_NOWAIT

sur une connexion socket persistante partageable doit se trouver dans la même application que l'interaction SYNC_SEND or SYNC_SEND_RECEIVE d'origine et doit utiliser la même connexion socket persistante partageable. Cette situation se produit généralement après un délai d'attente d'exécution.
Avec ce type d'interaction, le client Java ne peut recevoir qu'un seul message. S'il n'y a aucun message dans la file d'attente asynchrone IMS OTMA pour le clientID lorsque la requête est effectuée, aucune tentative supplémentaire d'extraction du message n'est effectuée. Aucun message n'est renvoyé et un dépassement du délai d'attente se produit après l'expiration du délai spécifié dans la propriété executionTimeout de l'interaction

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_NOWAIT

.
Remarque : les propriétés interactionVerb, SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT et

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_NOWAIT

, exécutent la même fonction. Il est cependant recommandé d'utiliser

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_NOWAIT

6

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_WAIT

interactionVerb

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_WAIT

permet d'extraire des sorties asynchrones et est valide sur les connexions sockets persistantes partageables et dédiées.
Une interaction

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_WAIT

sur une connexion socket persistante partageable doit se trouver dans la même application que l'interaction SYNC_SEND or SYNC_SEND_RECEIVE d'origine et doit utiliser la même connexion socket persistante partageable. Cette situation se produit généralement après un délai d'attente d'exécution.
Avec ce type d'interaction, le client Java ne peut recevoir qu'un seul message. S'il n'y a aucun message dans la file d'attente asynchrone IMS OTMA pour le clientID lorsque la requête est effectuée, IMS Connect attend qu'OTMA renvoie un message. IMS Connect attend la durée définie dans la propriété executionTimeout de l'interaction

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_WAIT

avant de renvoyer une exception.

La valeur SYNC_RECEIVE (2) de l'architecture JCA (J2EE Connection Architecture) n'est actuellement pas prise en charge.

ltermName
Nom LTERM utilisé pour remplacer la valeur de la zone LTERM du bloc de communication d'entrée-sortie du programme d'application IMS. Pour une description de l'utilisation du remplacement de LTERM, reportez-vous au Guide d'utilisation et de référence d'IMS Connect (SC27-0946-23).

La valeur de cette propriété peut être définie si l'application client veut indiquer un nom LTERM de remplacement. Ce nom sera celui indiqué dans le bloc de communication d'entrée-sortie du programme d'application IMS, afin que l'application IMS prenne des décisions logiques en fonction de la valeur de remplacement.

La valeur de cette propriété peut être définie si l'application client veut indiquer un nom LTERM de remplacement. Ce nom sera celui indiqué dans le bloc de communication d'entrée-sortie du programme d'application IMS, afin que l'application IMS prenne des décisions logiques en fonction de la valeur de remplacement.

mapName
La zone mapName contient généralement le nom d'un bloc de contrôle MFS (Message Format Service). MFS est le composant d'IMS qui exécute le formatage en ligne des messages d'entrée et de sortie de la transaction. Dans la mesure où IMS Connect utilise IMS OTMA pour accéder à IMS, le formatage MFS en ligne est ignoré. Cependant, la zone mapName peut tout de même être utilisée par une application Java pour fournir une entrée de nom d'un bloc de contrôle MFS à un programme d'application IMS ou pour extraire le nom d'un bloc de contrôle MFS fourni par un programme d'application IMS.

En entrée, la valeur de la propriété mapName est généralement le nom d'un descripteur MOD (Message Output Descriptor) MFS. Le nom MOD sera fourni au programme d'application IMS dans le bloc de communication d'entrée-sortie.

En sortie, la valeur de la propriété mapName est le nom d'un descripteur MOD (Message Output Descriptor) MFS. Il s'agit du nom MOD que le programme d'application IMS a spécifié lors de l'insertion du message de sortie de la transaction dans le bloc de communication.

Remarque : La zone mapName ne doit pas être utilisée par des applications Java qui utilisent un service d'entreprise dont les messages d'entrée et de sortie sont générés par le support MFS WebSphere Studio.

En entrée, la valeur de la propriété mapName est généralement le nom d'un descripteur MOD (Message Output Descriptor) MFS. Le nom MOD sera fourni au programme d'application IMS dans le bloc de communication d'entrée-sortie.

En sortie, la valeur de la propriété mapName est le nom d'un descripteur MOD (Message Output Descriptor) MFS. Il s'agit du nom MOD que le programme d'application IMS a spécifié lors de l'insertion du message de sortie de la transaction dans le bloc de communication.

La zone mapName ne doit pas être utilisée par des applications Java qui utilisent un service d'entreprise dont les messages d'entrée et de sortie sont générés par la prise en charge MFS de WebSphere Studio.

purgeAsyncOutput
Propriété d'entrée. Cette propriété détermine si IMS Connect purge les sorties non distribuées ou pas.

Cette propriété n'est valide que pour les interactions sur des connexions socket persistantes partageables utilisant la commande d'interaction IMS SYNC_SEND_RECEIVE. Elle n'est pas valide pour des connexions sockets persistantes dédiées. Elle s'applique aux interactions en mode de validation 0 mais pas aux interactions en mode de validation 1. Cependant, si une interaction en mode de validation 1 exécute un basculement programme à programme, le programme généré exécutera le mode de validation 0 et la propriété pourra donc s'appliquer.

Si la propriété purgeAsyncOutput n'est pas spécifiée sur une interaction SYNC_SEND_RECEIVE sur une connexion socket persistante partageable, la valeur par défaut est TRUE et les messages de sortie suivants sont purgés :
  • Message de sortie non livré inséré dans le bloc de communication d'entrée-sortie par le programme d'application IMS principal.
  • Messages de sortie insérés dans le bloc de communication d'entrée-sortie par les programmes d'application IMS secondaires appelés par le basculement d'un programme sur un autre programme.
reRoute
Propriété d'entrée.

Cette propriété n'est valide que pour les interactions sur des connexions socket persistantes partageables utilisant la commande d'interaction IMS SYNC_SEND_RECEIVE. Elle n'est pas valide pour des connexions sockets persistantes dédiées. Elle s'applique aux interactions en mode de validation 0 mais pas aux interactions en mode de validation 1. Cependant, si une interaction en mode de validation 1 exécute un basculement programme à programme, le programme généré exécutera le mode de validation 0 et la propriété pourra donc s'appliquer. Cette propriété détermine si les sorties non distribuées sont redirigées vers une destination nommée spécifiée dans la zone reRouteName. Si reRoute est TRUE, la sortie asynchrone n'est pas mise en file d'attente dans le TPIPE du clientID généré mais mise en file d'attente à l'emplacement spécifié dans la zone reRouteName. La valeur par défaut de reRoute est FALSE.

Si les propriétés reRoute et purgeAsyncOutput sont toutes les deux définies sur TRUE, une exception est émise.

reRouteName
Cette propriété fournit le nom de mise en file d'attente de la sortie asynchrone. Si reRoute est TRUE, cette propriété indique l'emplacement nommé. Si reRoute est FALSE, la propriété reRouteName est ignorée.
Si la propriété reRoute est définie sur TRUE et qu'aucune valeur n'est fournie pour reRouteName, la valeur de la propriété reRouteName est :
  1. La valeur spécifiée dans le fichier de configuration d'IMS Connect.
  2. Si aucune valeur n'est spécifiée dans le fichier de configuration d'IMS Connect la valeur "HWS$DEF" est utilisée.
Valeurs valides pour la propriété reRouteName :
  • Une chaîne de 1 à 8 caractères alphanumériques (A-Z, 0-9) ou spéciaux (@,#,$).
  • Ne commence pas par la chaîne de caractères "HWS".
  • Ne peux pas être un numéro de port d'IMS Connect.
  • Si des lettres en minuscules sont fournies, elles seront changées en majuscules.

La propriété, reRouteName, n'est valide que pour les interactions sur des connexions sockets persistantes partageables. Elle n'est pas valide pour des connexions sockets persistantes dédiées.

syncLevel
Propriété d'entrée. syncLevel est le niveau de synchronisation de l'interaction entre IMS Connector for Java et IMS OTMA. Les niveaux de synchronisation valides sont 0 (AUCUNE) et 1 (CONFIRMATION). La propriété syncLevel ne s'applique que pour les valeurs SYNC_SEND_RECEIVE et SYNC_SEND de la propriété interactionVerb et est utilisée en combinaison avec la propriété commitMode. Elle s'applique aux applications conversationnelles et non conversationnelles.
Mode de validation 1
Les niveaux de synchronisation 0 et 1 sont valides. 0 est la valeur par défaut. Par exemple, si la propriété interactionVerb est définie sur SYNC_SEND_RECEIVE et que la propriété commitMode est définie sur 1, il n'est pas nécessaire de définir la propriété syncLevel. Si une valeur autre que 0 ou 1 est transmise à la méthode setSyncLevel(int), une exception est émise.  
Mode de validation 0
Le niveau de validation 1 est la seule valeur valide. Il n'est pas nécessaire de définir le niveau de validation avec ce mode de validation. Si une valeur autre que 1 est transmise à la méthode setSyncLevel(int), une exception est émise.
Les programmes déclenchés par un basculement de programme à programme sont toujours traités en mode de validation 1, quel que soit le niveau de synchronisation du programme d'origine. De ce fait, les sorties secondaires de ces programmes peuvent être mises en file d'attente de redirection ou purgés, selon les paramètres des propriétés reRoute et purgeNotDeliverable de l'interaction d'origine.

Vos commentaires