Escolha entre WS-Addressing e solicitação-resposta assíncrona de
HTTP para fazer solicitações assíncronas usando o nó SOAPAsyncRequest com
transporte de HTTP.
O nó
SOAPAsyncRequest pode usar transporte HTTP ou
JMS. Ele é vinculado como um par com um nó SOAPAsyncResponse usando um identificador exclusivo para correlacionar mensagens de resposta com a solicitação original.
O nó SOAPAsyncRequest envia um pedido
de serviço da Web, mas o nó não aguardo o recebimento de uma resposta do serviço da Web
associado. Essa funcionalidade assíncrona permite que várias solicitações de saída sejam
feitas quase em paralelo porque a solicitação de saída não é bloqueada enquanto
aguarda a resposta. A resposta do serviço da Web
é recebida pelo nó SOAPAsyncResponse,
que pode estar em um fluxo de mensagens separado.
O nó
SOAPAsyncRequest suporta dois métodos de solicitações assíncronas ao usar o transporte HTTP:
- Usando WS-Addressing para direcionar a resposta para o nó SOAPAsyncResponse com par. O nó SOAPAsyncRequest aguarda pelo
reconhecimento de HTTP 202 antes de continuar com o fluxo de mensagens e o nó
SOAPAsyncRequest será bloqueado se o
reconhecimento não for recebido. Uma nova conexão HTTP é feita pelo servidor de backend para responder ao nó SOAPAsyncResponse. Esse não é o comportamento padrão.
- Usando solicitação-resposta assíncrona de HTTP. Quando a propriedade SOAPAsyncRequest Usar Solicitação-resposta Assíncrona de HTTP for selecionada, o nó SOAPAsyncRequest passa o soquete de HTTP para o nó SOAPAsyncResponse com par para permitir que o servidor
de backend responda usando o mesmo soquete. Quando essa opção estiver
selecionada, os cabeçalhos WS-Addressing serão enviados, mas não precisarão ser entendidos pelo
servidor de backend. Os cabeçalhos WS-Addressing não são marcados como mustUnderstand e o cabeçalho replyTo é configurado como anônimo. O nó usa portanto manipulação de soquete de HTTP assíncrono em vez de
WS-Addressing para fazer solicitações de HTTP e receber uma resposta assíncrona.
Geralmente você deve escolher o método de solicitação-resposta assíncrona de HTTP para fazer solicitações assíncronas usando o nó SOAPAsyncRequest com transporte HTTP. Para usar esse comportamento, assegure-se de que a propriedade do nó SOAPAsyncRequest Usar
Solicitação-resposta Assíncrona de HTTP esteja selecionada.
Entretanto,
talvez você queira usar WS-Addressing para fazer solicitações assíncronas usando o nó
SOAPAsyncRequest nos seguintes casos:
- Se desejar usar WS-Addressing para configurar explicitamente o cabeçalho replyTo
para a mensagem de resposta
- Se o servidor de backend tiver uma latência alta, talvez você queira usar
WS-Addressing em vez de solicitação-resposta assíncrona de HTTP para que o soquete
HTTP não seja mantido aberto por um longo período.
Para usar WS-Addressing em vez do comportamento de solicitação-resposta assíncrona de HTTP quando você estiver usando transporte de HTTP, assegure-se de que a propriedade do nó
SOAPAsyncRequest Usar Solicitação-resposta Assíncrona de HTTP esteja desmarcada. Esse é o comportamento padrão do nó
SOAPAsyncRequest.