Extraction de messages de demande d'appel synchrones à partir d'applications non-MDB

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

  1. Pour récupérer la demande d'appel synchrone :
    1. Mettez le mode de validation de l'interaction à 0 (COMMIT_THEN_SEND).
      interactionSpec.setCommitMode(IMSInteractionSpec.COMMIT_THEN_SEND); 
    2. Définissez le niveau de synchronisation de l'interaction sur CONFIRM.
      interactionSpec.setSyncLevel(IMSInteractionSpec.SYNC_LEVEL_CONFIRM); 
    3. 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);
    4. Définissez l'instruction d'interaction sur SYNC_RECEIVE_CALLOUT.
      interactionSpec.setInteractionVerb(IMSInteractionSpec.SYNC_RECEIVE_CALLOUT);
    5. 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); 
    6. 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);
    7. 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); 
  2. 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();
  3. Traitez la demande. Dans l'exemple précédent, la demande est retournée en tant qu'objet calloutRequestMsg.
  4. Envoyez la réponse.
    1. Définissez l'instruction d'interaction sur SYNC_SEND.
      interactionSpec.setInteractionVerb(IMSInteractionSpec.SYNC_SEND); 
    2. Définissez le jeton de corrélation à renvoyer avec la demande.
      interactionSpec.setSyncCalloutCorrelationToken(corrToken); 
    3. 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); 

Vos commentaires