메시지 플로우 노드는 메시지 플로우 내에서의 처리 단계입니다.
이는 메시지를 수신하고 메시지에 대해 세트의 조치를 수행하며 메시지 플로우의 다음 노드로 메시지를 전달합니다. 메시지 플로우 노드는 내장 노드, 사용자 정의 노드 또는 서브플로우 노드일 수 있습니다.
메시지 플로우 노드에는 터미널이라는 고정된 수의 입력 및 출력 지점이 있습니다. 터미널 간의 연결을 작성하여 메시지 플로우를 통해 메시지를 가져올 수 있는 라우트를 정의할 수 있습니다.
WebSphere Message Broker에서 제공되는 모든 내장 노드에 대한 정보는 내장 노드를 참조하십시오.
메시지는 입력 노드에서 수신되어 서브플로우 정의에 따라 처리됩니다. 여기에는 Warehouse 노드를 통해 저장되거나 MQOutput 노드를 통해 또다른 메시지 대상으로 전달되는 것이 포함될 수 있습니다. 필요에 따라 메시지는 추가적인 처리를 위해 Output 노드를 통해 기본 플로우로 다시 전달될 수 있습니다.
기본 플로우에 임베드된 서브플로우는 고유한 아이콘의 서브플로우 노드로 표시됩니다. 아이콘은 서브플로우 정의에 포함된 Input 및 Output 노드를 표시하기 위해 올바른 터미널 번호로 표시됩니다.
서브플로우의 가장 일반적인 사용은 메시지 플로우 내에서 다수의 장소에 필요한 처리를 제공하거나 여러 메시지 플로우 사이에서 공유되는 것입니다. 예를 들면, 서브플로우에서 일부 오류 처리를 코드화하거나 서브플로우를 작성하여 감사 추적(전체 메시지 저장 및 추적 항목 쓰기)을 제공할 수도 있습니다.
서브플로우의 사용법은 Error Handler 샘플 및 Coordinated Request Reply 샘플에 설명되어 있습니다. Error Handler 샘플은 서브플로우를 사용하여 오류에 대한 정보를 트랩하고 데이터베이스에 해당 정보를 저장합니다. Coordinated Request Reply 샘플은 서브플로우를 사용하여 WebSphere MQ 메시지의 ReplyToQ 및 ReplyToQMgr 값의 저장영역을 캡슐화하므로 처리 논리가 기타 메시지 플로우에서 다시 사용될 수 있으며 대체 구현으로 바꿀 수 있습니다.
노도가 모든 출력 터미널에 대해 출력 메시지를 항상 작성하는 것은 아닙니다. 수신한 메시지 또는 노드의 작동 결과에 따라 단일 터미널에 하나의 출력을 생성하는 경우가 종종 있습니다. 예를 들면, Filter 노드는 일반적으로 참 터미널 또는 거짓 터미널로 메시지를 송신하며 두 터미널에 모두 메시지를 송신하지는 않습니다.
둘 이상의 터미널이 연결된 경우, 노드는 각 터미널에 출력 메시지를 송신하지만 현재 터미널에 대한 처리가 완료된 경우에만 다음 터미널로 메시지를 송신합니다. 메시지에 대한 갱신은 이전에 실행된 노드로는 전달되지 않으며 갱신이 이루어진 노드 다음의 노드에만 전달됩니다. 다른 출력 터미널로 메시지가 전달되는 순서는 브로커에 의해 결정되며 이 순서를 변경할 수 없습니다. 이 규칙의 유일한 예외는 FlowOrder 노드이며 이 노드에서 터미널은 메시지가 각각의 터미널로 전달되는 순서를 표시합니다.
메시지 플로우는 메시지 플로우를 통한 모든 경로(즉, 모든 출력 터미널에서 연결된 모든 노드)가 완료된 경우에만 새 메시지를 처리하도록 승인할 수 있습니다.
Airline Reservations 샘플은 XML_Reservation 샘플의 환경 변수를 사용하여 데이터베이스 테이블에서 가져온 정보를 저장하고 해당 정보를 메시지 플로우의 노드 다운스트림에 전달합니다.