HTTP 비동기 요청-응답 사용

HTTP 를 요청하고 비동기적으로 응답을 받을 수 있습니다 HTTPAsyncRequest 그리고 HTTPAsyncResponse 노드, 또는 SOAPAsyncRequest 그리고 SOAPAsyncResponse 메시지 흐름에 노드를 추가하세요.

SOAPAsyncRequest 노드는 비동기 요청을 위한 두 가지 방법을 지원합니다. HTTP 전송:
  1. WS-Addressing을 사용하여 쌍을 이루는 SOAPAsyncResponse 노드로 응답을 지정합니다. 그 SOAPAsyncRequest 노드는 메시지 흐름을 계속하기 전에 HTTP 202의 확인을 기다립니다. 그리고 SOAPAsyncRequest 확인 응답을 받지 못하면 노드 블록을 생성합니다. 백엔드 서버가 새로운 HTTP 연결을 만들어 SOAPAsyncResponse 노드. 이는 기본 작동입니다.
  2. HTTP 비동기 요청-응답 사용. 언제 SOAPAsyncRequestUse HTTP asynchronous request-response 가 선택된 경우, SOAPAsyncRequestHTTP 노드는 페어링된 SOAPAsyncResponse 노드를 설정하여 백엔드 서버가 동일한 소켓을 사용하여 응답할 수 있도록 합니다. 이 옵션을 선택하면 WS-Addressing 헤더가 송신되지만 백엔드 서버가 이를 이해할 필요는 없습니다. WS-Addressing 헤더는 mustUnderstand로 표시되지 않으며 replyTo 헤더는 익명으로 설정됩니다. 따라서 이 노드는 WS-Addressing 대신 비동기 HTTP 소켓 핸들링을 사용하여 HTTP 요청을 작성하고 비동기 응답을 수신합니다.
HTTPAsyncRequest 노드는 항상 비동기식 HTTP 소켓 처리를 사용하여 비동기식 요청과 응답을 만듭니다.

비동기 요청 노드는 응답을 대기하지 않고 플로우로 제어를 리턴합니다. 이 조치가 추가 요청을 핸들링하기 위한 요청 스레드를 해제하는 반면에, 응답은 다른 스레드의 쌍을 이룬 응답 노드에서, 새 트랜잭션으로 핸들링됩니다. 응답 노드는 별도의 메시지 플로우에 있을 수 있지만 쌍을 이룬 요청 노드와 동일한 통합 서버에 있어야 합니다.

HTTP 의 비동기 요청-응답 동작이 비동기적인 이유는, IBM® App Connect Enterprise 가 요청과 응답을 비동기적으로 처리하기 때문이며, 이를 통해 메시지 흐름이 비동기 요청에 대한 응답을 기다리지 않고 다음 메시지를 가져올 수 있게 됩니다. 백엔드 서버는 요청-응답을 일반 동기 HTTP 요청으로 봅니다.

시나리오

다음의 경우 HTTP 비동기 요청-응답을 사용할 수 있습니다.
  • 대기 시간이 긴 백엔드 서버와 상호작용할 때 동기 HTTP 요청을 사용하면 백엔드 서버에 동시 연결하기 위해 많은 수의 스레드를 필요로 하는 많은 미해결 요청이 초래될 수 있습니다. 대신에 비동기 HTTP 소켓 핸들링을 사용하면 응답을 요청에서 분리할 수 있습니다.
  • HTTP 를 사용하여 비동기 요청-응답을 SOAPAsyncRequestreplyTo 헤더를 익명화하지 않고 WS-Addressing을 사용하는 대신 사용할 수 있습니다.
HTTP 를 비동기 요청-응답으로 사용하는 방법에 대한 정보는 SOAPAsyncRequest 노드에 대해서는, 비동기 동작 선택하기( SOAPAsyncRequest ) 노드를 참조하십시오.

제한사항

언어를 사용할 때 HTTPAsyncRequest 노드, 또는 SOAPAsyncRequestHTTP 비동기 요청-응답 노드에는 다음과 같은 제한 사항이 적용됩니다
  • 경로 재지정이 지원되지 않습니다. 경로 재지정 상태 코드 (3xx)의 메시지는 오류로 처리되고, 오류 탭에 지정된 특성을 따르면서 응답 노드의 오류 터미널로 응답이 라우팅됩니다.
  • WS-RM은 HTTP 비동기 요청-응답 사용에 호환되지 않습니다.