interactionSpec.setAltClientID(calloutQueueName);
interactionSpec.setInteractionVerb(com.ibm.connector2.ims.ico.
IMSInteractionSpec.SYNC_RECEIVE_CALLOUT);
interactionSpec.setExecutionTimeout(3600000);
Spécifiez une valeur de délai d'expiration pour un message de demande d'appel dans la file d'attente de stockage temporaire. Dans cet exemple, une valeur de délai d'attente très grande est spécifiée.
Une valeur de délai d'attente élevée permet de réduire la boucle requise dans un composant d'appel EJB
en cas de longues périodes sans demandes d'appel. La durée du délai d'attente
dépend de la durée maximum devant s'écouler entre vos demandes d'appel et la
réaction souhaitée pour le composant EJB en cas de dépassement de cette durée. Le code exemple suivant montre un exemple d'application Java configurée pour recevoir les demandes d'appel.
// la recherche JNDI renvoie connFactory
InitialContext initCntx = new InitialContext();
ConnectionFactory connFactory =
(ConnectionFactory) initCntx.lookup("java:comp/env/ibm/ims/IMSTarget");
IMSConnectionSpec connSpec = new IMSConnectionSpec();
Connection connection = connFactory.getConnection(connSpec);
Interaction interaction = connection.createInteraction();
IMSInteractionSpec interactionSpec = new IMSInteractionSpec();
//définir le mode de validation et le niveau de synchronisation
interactionSpec.setCommitMode(0);
interactionSpec.setSyncLevel(1);
// Un nom de file d'attente à 8 caractères à partir duquel sont récupérés les messages asynchrones
String calloutQueueName = new String ("CALLOUTQ");
// Définir le nom de file d'attente asynchrone du message d'appel
interactionSpec.setAltClientID(calloutQueueName);
// Définir interactionVerb pour extraire la sortie asynchrone avec un délai d'attente
interactionSpec.setInteractionVerb(com.ibm.connector2.ims.ico.
IMSInteractionSpec.SYNC_RECEIVE_CALLOUT);
interactionSpec.setExecutionTimeout(3600000);
for (;;) {
try {
// Exécuter l'interaction
interaction.execute(interactionSpec, null, calloutMsg);
// Continuer le traitement de calloutMsg
:
} catch (Exception e) {
// si l'exception est une erreur de délai d'attente d'exécution,
// vous pouvez ne pas intervenir et continuer la boucle
// ou traiter l'erreur et interrompre la boucle
break;
}
}
interaction.close();
connection.close();