집계 팬-인 플로우 작성

집계 팬 -인 플로우는 팬-아웃 플로우가 전송하는 요청 메시지에 대한 응답을 수신하고 수신된 모든 응답을 포함하는 결합된 응답 메시지를 구성합니다.

시작하기 전에

태스크 정보

동일한 메시지 플로우에 팬-아웃과 팬-인 플로우를 포함할 수 있습니다. 그러나 두 개의 별도의 플로우를 작성하는 것을 선호할 수도 있습니다. 개별 메시지 플로우 구성의 이점에 대한 자세한 정보는 fan-out및 fan-in 집계 플로우 연관을 참조하십시오. 동일한 팬-인 플로우의 여러 사본을 동일 또는 다른 통합 서버에 배치하지 마십시오.

팬-아웃 플로우를 트랜잭션으로 구성하지 않는 경우 지정한 제한시간 값은 팬-인 플로우가 모든 응답을 받기 전에 결합된 응답 메시지가 생성되게 할 수도 있습니다. 자세한 정보는 집계 fan-out 플로우 작성을 참조하십시오.

팬-인 플로우를 작성하려면 다음을 수행하십시오.

프로시저

  1. 팬-인 처리를 제공하기 위해 메시지 플로우를 작성하십시오.
  2. 편집기 보기에 다음 노드를 추가한 후 설명된 대로 노드를 구성하고 연결하십시오.
    Input 노드
    입력 노드는 팬-아웃 플로우에서 생성된 여러 요청 메시지에 대한 응답을 수신합니다.

    이 노드는 요청/응답 모델을 지원하는 입력 노드 (예: MQInput 노드) 또는 이러한 노드의 혼합 (이러한 응답을 송신하는 애플리케이션의 요구사항에 따라) 이어야 합니다. 각 입력 노드가 수신한 응답은 해당하는 요청과 동일한 프로토콜을 통해 전송되어야 합니다. 예를 들어, fan-out 플로우에 MQOutput 노드를 포함시키는 경우 해당 요청에 대한 응답을 이 fan-in 플로우의 MQInput 노드에서 수신해야 합니다.

    1. 특성 보기를 열려면 입력 노드를 선택하십시오. 노드 특성이 표시됩니다.
    2. 이 노드의 입력 메시지 소스를 지정합니다. 예를 들어, MQInput 노드가 메시지를 가져오는 ‘ IBM® MQ ’ 큐의 이름을 ‘Queue name’ 기본 속성에 지정합니다.
    3. 선택사항: 이 노드에 대해 구성할 기타 특성의 값을 지정하십시오.
    4. 입력 노드의 Out 터미널을 AggregateReply 노드의 In 터미널에 연결하십시오.

      이 방법으로 터미널을 연결하여 가장 단순한 구성을 작성하십시오. 해당되는 경우 입력 노드와 AggregateReply 노드 사이에 다른 노드를 포함시킬 수 있습니다. 예를 들어, 감사 목적으로 ( Database 노드에) 응답을 저장할 수 있습니다.

    이전에 설명된 대로 팬-인 플로우의 시작부에 모든 집계 응답 메시지를 수신하는 단 하나의 입력 노드를 포함하십시오. 다중 입력 노드를 포함하는 경우, 특정 응답 입력 노드에 의해 시작되는 스레드는 다른 스레드가 응답 메시지를 AggregateReply 노드로 송신하고 제한시간 초과에 적합하게 되는 동안 메시지 플로우의 집계 및 실행을 완료할 수 있습니다. 각 집계의 응답의 순차 처리를 사용 가능으로 설정하기 위해 단일 입력 노드를 사용하십시오. 이 단일 노드에서 더 많은 처리 처리량을 제공하기 위해 추가 인스턴스를 지정하십시오. BAR 파일에서 구성 가능한 특성을 참조하십시오.

    AggregateReply 노드
    AggregateReply 노드는 In 터미널을 통해 입력 노드로부터 인바운드 응답을 수신합니다. AggregateReply 노드는 후속 처리를 위해 각 응답 메시지를 저장합니다.

    집계 요청의 특정 그룹에 대한 모든 응답이 수집되면 AggregateReply 노드는 집계된 응답 메시지를 작성하고 Out 터미널을 통해 전파합니다.

    1. AggregateReply 노드를 선택하여 등록 정보 보기를 여십시오. 노드 특성이 표시됩니다.
    2. AggregateReply 노드의 집계 이름 등록 정보를 설정하여 이 집계를 식별하십시오. 이 값을 fan-out 플로우의 해당 AggregateControl 노드에 있는 집계 이름 등록 정보에 설정한 값과 동일하게 설정하십시오.
    3. 선택사항: 인식되지 않은 메시지를 알 수 없음 터미널로 전파하기 전에 보유하려면 알 수 없는 메시지 제한시간 특성에 값을 설정하십시오. 별도의 팬-아웃 및 팬-인 플로우를 사용 중인 경우에는 제어 메시지가 지연될 수도 있는 경우 이 값을 0이 아닌 숫자로 설정하십시오.
    4. 선택사항: 인식되지 않은 메시지를 명시적으로 처리하려면 알 수 없음 터미널을 또 다른 노드 또는 노드의 시퀀스에 연결하십시오. 이 터미널을 메시지 플로우의 다른 노드에 연결하지 않을 경우, 이 터미널을 통해 전달된 메시지는 제거됩니다.
    5. 선택사항: AggregateControl 노드에서 이 집계에 대한 제한시간 값을 지정하고 모든 응답이 수신되기 전에 만기되는 제한시간을 명시적으로 처리하려는 경우, Timeout 터미널을 다른 노드 또는 노드 순서에 연결하십시오. 부분적으로 완전한 집계된 응답이 타이머가 만료되면 제한시간 터미널에 전송됩니다. 이 터미널을 메시지 플로우의 다른 노드에 연결하지 않을 경우, 이 터미널을 통해 전달된 메시지는 제거됩니다.
    6. 선택사항: 이 노드에 대해 구성할 기타 특성의 값을 지정하십시오.
    7. AggregateReply 노드의 Out 터미널을 Compute 노드의 In 터미널에 연결하십시오.
    주의: AggregateReply 노드의 Control 터미널은 버전 6.0에서 사용되지 않으며, 기본적으로 이 터미널에 대한 모든 연결 (직접 또는 간접) 은 무시됩니다. 이 변경사항은 집계 플로우의 효율성을 최대화하고 집계의 안정성을 손상시키지 않습니다. 이 구성은 최적의 컨텐츠를 제공합니다.

    그러나 AggregateReply 노드가 해당 Control 터미널에서 fan-out 플로우의 해당 AggregateControl 노드가 송신한 제어 메시지를 수신하도록 하려면 집계 fan-out 플로우 작성에 설명된 대로 필요한 연결을 작성해야 합니다. AggregateReply 노드에서 출력 노드로의 경로를 가능한 한 직접 유지하여 집계 성능을 최대화하십시오. 이 제어 메시지의 컨텐츠를 수정하지 마십시오.

    또한 제어 터미널과 이 터미널이 인식할 연결을 위해 환경 변수 MQSI_AGGR_COMPAT_MODE를 사용 가능하도록 설정해야 합니다. 이 옵션을 선택하면 메시지 집계의 성능 및 작동에 영향을 줄 수 있습니다. 이러한 의미 및 환경 변수에 대한 전체 설명은 집계 플로우에서 제어 메시지 사용을 참조하십시오.

    AggregateReply 노드 출력 터미널 (Out및 Timeout) 에서 송신된 집계 메시지는 유효성이 확인되지 않습니다. 데이터의 유효성 검증은 메시지가 AggregateReply 노드로 송신되기 전에 수행되어야 합니다. 저장된 메시지를 재구성할 때 유효성 검증 옵션을 무시하기 때문입니다.

    Compute 노드
    Compute 노드는 결합된 응답을 포함하는 메시지를 수신합니다. 일반적으로 집계된 응답 메시지의 구조가 비정상적이어서 일부 노드 (예: MQOutput 노드) 에 필요한 비트스트림으로 구문 분석할 수 없기 때문에 이 결합된 메시지의 형식은 출력에 대해 올바르지 않습니다. Out및 Timeout 터미널은 항상 집계된 응답 메시지를 전파합니다. 이 메시지는 MQOutput 노드로 전파되기 전에 항상 추가 처리가 필요합니다. 따라서 Compute 노드를 포함하고 올바른 출력 메시지를 작성하도록 이 노드를 구성해야 합니다.
    1. 계산 노드를 선택하여 특성 보기를 여십시오. 노드 특성이 표시됩니다.
    2. 이 노드의 기능을 사용자 정의하는 ESQL 모듈의 이름을 기본 특성 ESQL 모듈에 지정하십시오.
    3. 노드를 마우스 오른쪽 단추로 클릭한 후 ESQL 열기를 클릭하여 이 노드에 대한 모듈을 포함하는 ESQL 파일을 여십시오. ESQL 편집기 보기에서 파일이 강조표시됩니다.
    4. 입력 메시지의 집계 응답으로부터 단일 출력 메시지를 작성하도록 ESQL을 코딩하십시오.

      집계된 응답 메시지는 Out 터미널을 통해 전파됩니다. 해당 컨텐츠에 액세스할 수 있는 방법에 대한 정보는 결합된 메시지 컨텐츠에 액세스에서 제공됩니다.

    5. 선택사항: 이 노드에 대해 구성할 기타 특성의 값을 지정하십시오.
    6. Compute 노드의 Out 터미널을 단일 응답 메시지의 목적지를 나타내는 출력 노드의 In 터미널에 연결하십시오.
    Output 노드
    팬-인 플로우의 출력 노드를 포함시키십시오. 이 노드는 내장 노드 또는 사용자 정의 출력 노드일 수 있습니다.
    1. 특성 보기를 열려면 출력 노드를 선택하십시오. 노드 특성이 표시됩니다.
    2. 이 노드의 출력 메시지 전송 대상을 지정합니다. 예를 들어, ‘기본’ 속성의 ‘큐 이름’ 필드에 MQOutput 노드가 메시지를 전송할 IBM MQ 큐의 이름을 지정합니다.
    3. 선택사항: 이 노드에 대해 구성할 기타 특성의 값을 지정하십시오.
  3. 메시지 플로우를 저장하고 해당 구성의 유효성을 검증하려면 Ctrl-S를 누르거나 파일 > 저장을 누르십시오.

결합된 메시지 컨텐츠 액세스

태스크 정보

그만큼 AggregateReply 노드는 루트 아래 결합된 메시지 트리에 폴더를 생성합니다. ComIbmAggregateReplyBody. 이 폴더 아래에 노드는 사용자가 설정한 이름을 사용하여 여러 하위 폴더를 생성합니다. AggregateRequest 노드. 이러한 서브폴더는 연관된 응답 메시지로 채워집니다.

예를 들어, 요청 메시지의 폴더 이름이 다음과 같을 수도 있습니다.

  • TAXI
  • HOTEL

AggregateReply 노드에서 작성된 결과 집계 응답 메시지는 다음 예와 같은 구조를 가질 수 있습니다.

다이어그램은 요소 아래에 생성된 집계된 메시지 콘텐츠의 트리를 보여줍니다. ComIbmAggregateReplyBody 루트 아래. 해당 컨텐츠는 주변 텍스트에 설명되어 있습니다.

Compute 노드 내에서 ESQL을 사용하여 다음 상관 이름을 사용하는 택시 회사의 응답에 액세스하십시오.

InputRoot.ComIbmAggregateReplyBody.TAXI.xyz

폴더 이름은 고유하지 않아도 됩니다. 폴더 이름이 TAXI인 여러 요청이 있으면, 다음과 같이 배열 서브스크립트 표기법을 사용하여 개별 응답에 액세스할 수 있습니다.

InputRoot.ComIbmAggregateReplyBody.TAXI[1].xyz
InputRoot.ComIbmAggregateReplyBody.TAXI[2].xyz