Vous devez modifier l'application Java™ afin de récupérer les demandes
d'appel dans la file de stockage temporaire et de prendre en charge la corrélation entre réponse et demande appropriée.
Avant de commencer
Prérequis : Votre administrateur
WebSphere Application Server
doit configurer une fabrique de connexions partageable, à utiliser
par l'application Java pour extraire les demandes d'appel.
Pourquoi et quand exécuter cette tâche
Voici les étapes clés à mettre en place dans une application Java pour
récupérer une demande d'appel synchrone d'IMS et y répondre.
Procédure
- Pour récupérer la demande d'appel synchrone :
- Mettez le mode de validation de l'interaction à 0 (COMMIT_THEN_SEND).
interactionSpec.setCommitMode(IMSInteractionSpec.COMMIT_THEN_SEND);
- Définissez le niveau de synchronisation de l'interaction sur CONFIRM.
interactionSpec.setSyncLevel(IMSInteractionSpec.SYNC_LEVEL_CONFIRM);
- Pour le nom de la file d'attente d'appel,
spécifiez le nom du tpipe (file de stockage temporaire) OTMA.
// Nom de 8 caractères de la file de stockage temporaire asynchrone OTMA
// dans laquelle les messages doivent être récupérés
String calloutQueueName = new String (“CALLOUTQ”);
// Définir le nom de file d'attente pour les messages d'appel
interactionSpec.setAltClientID(calloutQueueName);
- Définissez l'instruction d'interaction
sur SYNC_RECEIVE_CALLOUT.
interactionSpec.setInteractionVerb(IMSInteractionSpec.SYNC_RECEIVE_CALLOUT);
- Spécifiez le type de demande d'appel à récupérer :
synchrone uniquement
(CALLOUT_REQUEST_SYNC), asynchrone uniquement (CALLOUT_REQUEST_ASYNC)
ou les deux (CALLOUT_REQUEST_BOTH). Dans l'exemple suivant, on récupère uniquement les
messages de demande d'appel synchrones.
// Demander à extraire seulement les messages de demande d'appel synchrones
interactionSpec.setCalloutRequestType(IMSInteractionSpec.CALLOUT_REQUEST_SYNC);
- Spécifiez la
valeur du délai d'attente
d'exécution. Dans l'exemple suivant, on fixe la valeur du délai à 5 secondes.
interactionSpec.setExecutionTimeout(5000);
- Exécutez l'interaction. Dans l'exemple suivant, l'interaction est
exécutée et la demande est retournée en tant qu'objet calloutRequestMsg.
interaction.execute(interactionSpec, null, calloutRequestMsg);
- Obtenez le jeton de corrélation auprès de l'instance d'IMSInteractionSpec. Dans l'exemple suivant, on fixe la valeur du délai à 5 secondes.
byte[] corrToken = interactionSpec.getSyncCalloutCorrelationToken();
- Traitez la demande. Dans l'exemple précédent, la demande est retournée en tant qu'objet calloutRequestMsg.
- Envoyez la réponse.
- Définissez l'instruction d'interaction
sur SYNC_SEND.
interactionSpec.setInteractionVerb(IMSInteractionSpec.SYNC_SEND);
- Définissez le jeton de corrélation à renvoyer avec la demande.
interactionSpec.setSyncCalloutCorrelationToken(corrToken);
- Exécutez l'interaction. Dans l'exemple suivant, l'interaction est
exécutée et le message de réponse (calloutRespondMsg) est envoyé.
interaction.execute(interactionSpec, calloutRespondMsg, null);