Você deve modificar o aplicativo Java™ para
recuperar as solicitações de callout na fila de suspensão e manipular a
correlação da resposta para a solicitação apropriada.
Antes de Iniciar
Pré-requisito: O administrador do WebSphere Application Server deve configurar um connection factory compartilhável que será usado pelo aplicativo Java para recuperar os pedidos de callout.
Sobre Esta Tarefa
As etapas a seguir são chaves em um aplicativo Java para recuperar e responder a uma solicitação de callout síncrono do IMS.
Procedimento
- Para recuperar o pedido de callout síncrono:
- Configure o modo de confirmação de interação como 0 (COMMIT_THEN_SEND).
interactionSpec.setCommitMode(IMSInteractionSpec.COMMIT_THEN_SEND);
- Configure o nível de sincronização de interação como CONFIRM.
interactionSpec.setSyncLevel(IMSInteractionSpec.SYNC_LEVEL_CONFIRM);
- Especifique o nome da fila de callout para o nome tpipe (fila de suspensão) do OTMA.
// Um nome com 8 caracteres da fila de suspensão assíncrona do OTMA na qual as
// mensagens deverão ser recuperadas a partir da
cadeia calloutQueueName = new String (“CALLOUTQ”);
// Configure o nome da fila para as mensagens de callout
interactionSpec.setAltClientID(calloutQueueName);
- Configure o verbo de interação como SYNC_RECEIVE_CALLOUT.
interactionSpec.setInteractionVerb(IMSInteractionSpec.SYNC_RECEIVE_CALLOUT);
- Especifique o tipo de pedido de callout que será recuperado: apenas síncrono (CALLOUT_REQUEST_SYNC), apenas assíncrono (CALLOUT_REQUEST_ASYNC) ou ambos (CALLOUT_REQUEST_BOTH). O seguinte exemplo recupera apenas mensagens de pedidos de callout síncronos.
// Especificar para recuperar apenas mensagens de pedidos de callout síncronos
interactionSpec.setCalloutRequestType(IMSInteractionSpec.CALLOUT_REQUEST_SYNC);
- Especifique o valor de tempo limite de execução. O seguinte exemplo configura o valor de tempo limite como 5 segundos.
interactionSpec.setExecutionTimeout(5000);
- Execute a interação. O seguinte exemplo executa a interação e o pedido é retornado como calloutRequestMsg.
iteraction.execute(interactionSpec, null, calloutRequestMsg);
- Obtenha o token de correlação a partir da instância IMSInteractionSpec. O seguinte exemplo configura o valor de tempo limite como 5 segundos.
byte[] corrToken = interactionSpec.getSyncCalloutCorrelationToken();
- Processe o pedido. No exemplo anterior, o pedido foi retornado como calloutRequestMsg.
- Envie a resposta.
- Configure o verbo de interação como SYNC_SEND.
interactionSpec.setInteractionVerb(IMSInteractionSpec.SYNC_SEND);
- Configure o token de correlação que será enviado de volta com o pedido.
interactionSpec.setSyncCalloutCorrelationToken(corrToken);
- Execute a interação. O seguinte exemplo executa a interação e envia a mensagem de resposta de callout (calloutRespondMsg).
iteraction.execute(interactionSpec, calloutRespondMsg, null);