O WebSphere Commerce pode interagir com outros sistemas por meio dos serviços de mensagens de saída SendReceiveImmediate (formalmente Enviar/Receber). Isso permite que o WebSphere Commerce envie uma mensagem para outro sistema e aguarde uma resposta. O comportamento de SendMsgCmd.sendReceiveImmediate() é semelhante ao do método SendMsgCmd.sendImmediate(), exceto que ele aguarda uma resposta de retorno do sistema que está recebendo seu pedido de mensagem.
Nota: O 'modo' definido sob o Administration Console deve ser definido como 1.
Depois de enviar a mensagem de pedido, o WebSphere Commerce escuta a fila de entrada (por padrão, JMSInboundQueue) e aguarda até que a mensagem de resposta seja colocada na fila com um ID de correlação igual ao ID de mensagem da mensagem de pedido.
Você deve utilizar filas separadas para o SendReceiveImmediate das filas utilizadas para o WebSphere MQ Listener.
Para permitir que o WebSphere Commerce utilize o serviço de mensagem SendReceiveImmediate, faça o seguinte:
- Crie um tipo de mensagem na tabela MSGTYPES para a nova mensagem utilizada para o envio/recepção.
- Para gerar a mensagem de transmissão, crie uma entrada na tabela VIEWREG para associar o
VIEWNAME criado na etapa 1 a um arquivo JSP. A entrada deve utilizar os seguintes valores:
- INTERFACENAME
- com.ibm.commerce.messaging.viewcommands.MessagingViewCommand
- CLASSNAME
- com.ibm.commerce.messaging.viewcommands.MessagingViewCommandImpl
- PROPERTIES
- docname=nome do arquivo JSP
O valor na coluna VIEWNAME é o VIEWNAME utilizado para gerar a mensagem a enviar.
- Crie um arquivo JSP para gerar a mensagem a ser enviada para a fila de transmissão. Este nome de arquivo JSP deve ter sido especificado quando uma linha foi adicionada à tabela VEWREG.
- Crie ou personalize um comando (apenas comando de tarefa, se estiver trabalhando com personalização) que utilize o modo SendMsgCmd.sendReceiveImmediate() e o ID de tipo de mensagem criado na etapa 1. Isso é utilizado para chamar a interface SendMsgCmd.
- Utilize o Administration Console para assegurar que o transporte atribuído ao serviço SendReceiveImmediate esteja ativo, como o WebSphere MQ Adapter.
- Utilize o Administration Console para definir cada tipo de mensagem que você criou na etapa 1. No campo Modo, especifique 1. Isso indica um modo SendReceiveImmediate de comunicação.