fan-in 플로우에서 스레드 기아 현상 방지

이 주제는 사용자의 fan-out 플로우에서 Aggregate Contol 노드의 Control 터미널이 큐로 제어 메시지를 출력하기 위해 연결된 경우에만 적용됩니다. Control 터미널을 연결하지 않으면 이 절에 언급된 문제점을 극복할 수 있습니다. AggregateControl의 Control 터미널 연결에 대한 추가 정보는 집계 플로우에서 제어 메시지 사용을 참조하십시오.

Aggregate Reply 노드에는 두 개의 입력 터미널인 In 및 Control이 있습니다. 이들 터미널을 모두 사용할 경우, Control 터미널을 사용하는 것이 선택사항인 것을 기억할 때 Aggregate Reply 노드로 데이터를 제공하는 가장 효율적인 방법은 fan-in 플로우에 대한 단일 MQInput 노드 다음에 Filter 노드를 오게 하는 것입니다. Filter 노드는 Aggregate Reply 노드의 In 또는 Control 터미널로 들어오는 메시지를 적절히 라우트하는 데 사용됩니다.

메시지 플로우에 두 개의 MQInput 노드(In 터미널에 하나, Control 터미널에 하나)를 사용하는 대신 뒤에 Filter 노드가 있는 단일 MQInput을 사용하십시오. 두 개의 MQInput 노드 사이에 추가 스레드(추가 인스턴스를 사용하여 사용 가능해짐)를 분배하는 방법을 지정할 방법이 없으므로 단일 MQInput 노드를 사용해야 합니다. AggregateReply 노드의 In 터미널에서 트래픽이 높을 수 있으므로 해당 입력 노드에서 더 많은 스레드를 실행하게 하는 것이 가장 유용하겠지만 두 개의 MQInput 노드 사용으로 이를 구성할 수가 없습니다. 따라서 노드에 스레드 기아 현상이 나타나고 응답 메시지를 백업하며 집계 메커니즘을 지연시킬 수 있습니다.

메시지가 AggregateReply 노드의 적절한 터미널로 라우트되는지 확인하려면 Filter 노드에 아래와 유사한 ESQL 모듈을 사용하십시오.
CREATE FILTER MODULE FanIn_Filter
           CREATE FUNCTION Main() RETURNS BOOLEAN
    BEGIN
        IF Root.XML.ComIbmAggregateControlNode IS NULL THEN
            RETURN TRUE;  -- wired to In
        ELSE
            RETURN FALSE; -- wired to Control
        END  IF;
     END;
  END MODULE;
주: 위에 설명된 대로 fan-in을 구성할 수 없으면, 제어 메시지를 읽고 있는 MQInput 노드를 강제로 단일 스레드로 실행되도록 할 수 있습니다. MQInput 노드를 구성하여 이를 수행하십시오. 고급 등록 정보 패널에서 순서 모드 등록 정보를 큐 순서별로 설정하고 논리 순서를 선택하여 이를 수행할 수 있습니다. 이 방법은 구성된 추가 인스턴스를 모두 사용 가능하게 하여 다른 MQInput 노드에서 사용되게 합니다. 첫 번째 MQInput 노드의 성능이 상당히 제한되므로 대체 방법이 없을 경우에만 수행해야 합니다.
관련 개념
메시지 플로우 개요
메시지 플로우 집계
관련 태스크
집계 fan-in 플로우 작성
집계 fan-out 플로우 작성
fan-out 및 fan-in 집계 플로우 연관
집계에 대한 시간 종료 설정
다중 AggregateControl 노드 사용
집계 플로우의 예외 핸들링
집계 플로우 구성
관련 참조
AggregateControl 노드
AggregateReply 노드
AggregateRequest 노드
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ac12313_