MQ 메시지 가져오기 활동

런타임 중에 MQ 메시지 가져오기 활동은 MQ 큐에서 메시지를 검색합니다.

주: 활동을 구성하기 전에 MQ 활동의 엔드포인트를 작성해야 합니다.
구성 태스크는 다음과 같은 세 개의 섹션이 있습니다.

구성 태스크를 완료한 후, 활동의 입력 맵핑출력 맵핑을 수행합니다.

주: 최대 메시지 크기는 100MB입니다.

큐 및 메시지 세부사항

아래 표에 있는 필드의 큐 및 메시지 세부사항을 지정하십시오. 필수 필드는 별표로 표시되어 있습니다.
필드 설명
큐 이름 * 통합 어플라이언스가 메시지를 검색하는 MQ 큐의 이름을 지정합니다.
제한시간 큐에서 메시지 검색을 요청하는 MQ 메시지 가져오기 활동과 메시지가 리턴되는 데 소요되는 시간 사이에 제한시간 초과가 발생하기 이전의 시간(초)입니다. 이 제한시간이 만기되어 큐에서 메시지가 리턴되지 않는 경우, 통합 어플라이언스는 메시지를 다시 검색하기 전에 지정된 재시도 제한시간을 대기합니다. 제한시간 및 재시도 옵션에 대한 자세한 설명은 제한시간 및 재시도 옵션을 참조하십시오.

제한시간이 발생하기 전에 통합 어플라이언스가 대기하는 시간을 지정하려면, 이후 옵션을 선택하고 필드에 시간(초)을 입력하십시오. 기본적으로 수행 안함 옵션이 선택되어 있습니다. 이 옵션은 통합 어플라이언스가 큐에서 메시지를 검색하기 위해 제한시간 없이 무한정 대기하도록 지정합니다.

페이로드 데이터 유형 메시지 페이로드의 데이터 유형을 2진 또는 문자열로 지정합니다.
MQRFH2 헤더의 스키마 단편 MQRFH2 헤더가 메시지에 포함되는지 여부를 지정합니다. 메시지에 MQRFH2 헤더를 포함할 경우 이 선택란을 선택하고 [...]를 클릭하십시오. 스키마 유형 요소 찾아보기 대화 상자에서 헤더를 정의하는 XML 스키마를 찾아보려면, XML 스키마에서 NameValueData 요소를 선택하고 확인을 클릭하십시오. 스키마 단편은 NameValueData 요소 및 모든 하위 요소입니다.
주: 헤더를 정의하는 XML 스키마를 먼저 작성하고 프로젝트에 로드해야 이 스키마를 선택할 수 있습니다. 자세한 정보는 MQRFH2 헤더에 대한 XML 스키마 정의 및 로드를 참조하십시오.

전달 규칙

필드 설명
메시지 전달 여기에서 사용 가능한 옵션은 고유 ID 선택란이 선택되어 있는지 여부에 따라 다릅니다. 선택란이 선택되어 있으면 3개 옵션 모두를 사용할 수 있습니다. 선택되어 있지 않으면 한 번 이상만 표시됩니다.
  • 한 번 이상 -  메시지가 한 번 이상 전달되도록 지정합니다. 연결 또는 통합 어플라이언스에 실패하면 메시지가 검색되어 두 번 이상 처리될 수 있습니다. 이 전달 옵션은 일반적으로 검색 시스템이 중복 메시지를 발견하거나 허용하는 경우에 사용됩니다.
  • 최대 한 번 - 메시지가 한 번만 전달되거나 전달되지 않도록 지정합니다. 연결 또는 통합 어플라이언스에 실패하면 메시지가 누락될 수 있습니다. 이 전달 옵션은 일반적으로 검색 시스템이 중복 메시지를 허용하지 않지만 메시지 유실은 허용하는 경우에 사용됩니다.
  • 정확히 한 번 -  메시지가 한 번만 전달되도록 지정합니다. 연결 또는 통합 어플라이언스에 실패해도 이 옵션을 사용하는 전달 방식에는 영향을 주지 않습니다. 통합 어플라이언스가 MQ 메시지 ID를 사용하여 모든 메시지가 검색되어 정확히 한 번 처리되도록 합니다.
    주: 정확히 한 번 옵션을 선택하는 경우 지속성을 사용 가능하도록 설정해야 합니다. 자세한 정보는 지속성 사용을 참조하십시오.
메시지에 고유 ID가 있는 위치 큐의 메시지에 고유 ID 사용 여부를 지정합니다.

재시도 옵션

다음 표에 설명된 대로 MQ에서 메시지를 가져오기 위한 재시도 옵션을 구성하십시오.

재시도 옵션 설명
1) 각 재시도 사이에 __초 동안 대기합니다. 통합 어플라이언스가 큐에서 메시지를 다시 검색하기 전에 대기하는 시간(초)입니다. 이 옵션과 구성 분할창의 제한시간 필드 또는 timeout 입력 매개변수와의 관계에 대해서는 제한시간 및 재시도 옵션을 참조하십시오.
2) 실패 전에 ___번 연결을 시도합니다. 오류가 발생하여 현재 오케스트레이션 작업 처리가 중지되기 전에 통합 어플라이언스가 큐에서 메시지를 검색하려고 시도하는 최대 횟수를 지정합니다.

MQ 메시지 가져오기 활동이 포함된 오케스트레이션을 배치한 상태에서 통합 어플라이언스가 지정된 MQ 서버에 연결할 수 없거나 큐에서 메시지를 가져올 수 없는 경우, 통합 어플라이언스는 재시도 횟수 값에 도달할 때까지 시스템 및 오케스트레이션 로그에 오류를 경고로 로그합니다. 재시도 횟수에 도달하면 통합 어플라이언스가 시스템 및 오케스트레이션 로그에 오류를 로그하고 현재 오케스트레이션 작업 처리를 중지합니다.

예를 들어 재시도 횟수를 3으로 설정한 경우 첫 번째, 두 번째 및 세 번째 오류가 시스템 로그에 경고로 나타납니다. 통합 어플라이언스가 네 번째 오류를 오류로 로그하고 현재 오케스트레이션 작업 처리를 중지합니다.

이 옵션과 구성 분할창의 제한시간 필드 또는 timeout 입력 매개변수와의 관계에 대해서는 제한시간 및 재시도 옵션을 참조하십시오.

입력 맵핑

  1. 점검 목록에서 출력 맵핑 태스크를 선택하십시오. 재시도 패널이 열립니다.

    활동의 입력 매개변수가 활동으로 패널에 표시됩니다.

  2. MQ 메시지 가져오기 활동의 모든 입력 매개변수는 선택사항입니다. 다음 표에 나열된 입력 매개변수가 입력 맵핑 패널의 활동으로 분할창에 표시되어 있지 않으면, 도구 모음 메뉴에서 맵 > 선택적 매개변수 표시를 선택하거나 활동으로 패널을 마우스 오른쪽 단추로 클릭하고 선택적 매개변수 표시 옵션을 선택하십시오. 도구 모음 메뉴에서 맵 > 선택적 매개변수 표시 옵션을 선택할 수 없는 경우 입력 맵핑 패널에서 노드를 클릭하여 이 옵션을 활성화하십시오.
    다음과 같은 선택적 입력 매개변수 mqmdheader의 노드 조합을 맵핑하여 MQ 메시지 가져오기 활동에서 리턴되는 메시지의 유형을 제한할 수 있습니다.
    • mqmdheader/MsgId
    • mqmdheader/CorreId
    • mqmdheader/GroupId
    • mqmdheader/MsgSeqNumber

    런타임 중에, 큐의 메시지를 통해 활동이 순차적으로 반복됩니다. 이러한 노드에 맵핑되는 입력이 없으면, 제한되는 유형이 없으므로 큐의 첫 번째 메시지가 MQ 메시지 가져오기 활동에서 리턴되고 오케스트레이션에서 다음 활동이 처리됩니다.

    이러한 노드 중 하나가 맵핑되면, 맵핑된 모든 노드의 런타임 값과 일치하는 첫 번째 메시지가 발견될 때까지 런타임 중에 큐의 각 메시지를 통해 MQ 메시지 가져오기 활동이 반복됩니다. MQ 메시지 가져오기 활동에서 첫 번째 일치하는 메시지가 리턴되고 오케스트레이션에서 다음 활동이 처리됩니다.

    예를 들어, 입력 맵핑 태스크에서, mqmdheader/MsgIdmsgId 문자열에 맵핑되고 largeOrders 기본값이 mqmdheader/GroupId에 지정됩니다(다음 그림 참조).
    런타임 중에 MQ 메시지 가져오기 활동은 다음 두 조건을 충족하는 큐의 첫 번째 메시지를 리턴합니다.
    • 문자열 변수 msgId의 지정된 런타임 값은 큐에 있는 메시지의 메시지 ID입니다.
    • 메시지의 그룹 ID는 largeOrders입니다.

    다음 표에 정의된 입력 매개변수를 사용하여 런타임 중에 점검 목록구성 태스크에서 큐 이름제한 시간에 지정한 설정을 동적으로 대체할 수 있습니다(선택사항).

    예를 들어, 구성 태스크에서 MQ 큐 이름을 poqueue로 설정할 수 있습니다. 런타임 중에 queuename 입력 매개변수를 사용하여 MQ 큐 이름인 newqueue를 활동에 전달할 수 있습니다. 런타임 중에 동적으로 지정한 큐 이름은 구성 패널에 지정된 원래 설정을 대체합니다. 이 예제에서는 통합 어플라이언스가 메시지에 사용되는 이름이 newqueue인 MQ 큐를 검색합니다.

    구성 태스크의 설정을 대체하는 선택적 입력 매개변수
    입력 매개변수 이름/노드 설명 대체되는 구성 태스크의 설정
    timeout 큐에서 메시지를 요청한 후 통합 어플라이언스가 재시도하기 전에 대기하는 시간을 지정합니다.

    제한시간이 없도록 하려면 음수를 지정하십시오. 이렇게 하면 통합 어플라이언스가 큐에서 메시지를 검색하기 위해 무한정 대기합니다. 구성 태스크에서 수행 안함 옵션을 지정할 수도 있습니다.

    timeout 입력 매개변수가 구성 태스크의 제한시간 필드를 대체합니다.
    queuename 통합 어플라이언스가 메시지를 검색하는 MQ 큐의 이름을 지정합니다. queuename 입력 매개변수가 구성 태스크의 큐 이름 필드에 지정된 인코딩을 대체합니다.

    맵핑에 대한 일반적인 지시사항을 보려면 맵 작성을 참조하십시오.

출력 맵핑

이 활동의 출력 매개변수를 맵핑할 필요가 없습니다. 맵핑에 대한 일반적인 지시사항을 보려면 맵 작성을 참조하십시오.

제한시간 및 재시도 옵션

구성 태스크의 제한시간 필드에 지정된 제한시간 또는 timeout 입력 매개변수는 큐에서 메시지 검색을 요청하는 MQ 메시지 가져오기 활동과 메시지가 리턴되는 데 소요되는 시간 사이에 제한시간 초과가 발생하기 이전의 시간(초)을 지정합니다. 이 제한시간이 만기되어 큐에서 메시지가 리턴되지 않는 경우, 통합 어플라이언스는 메시지를 다시 검색하기 전에 1) 각 재시도 사이에 __초 동안 대기합니다. 옵션에 지정된 시간을 대기합니다. 지정된 재시도 횟수까지 통합 어플라이언스가 메시지 가져오기를 계속 시도합니다. 재시도 횟수는 2) 실패 전에 __번 연결을 시도합니다. 옵션에 지정됩니다. 1) 각 재시도 사이에 __초 동안 대기합니다.2) 실패 전에 __번 연결을 시도합니다. 옵션은 재시도 옵션 태스크에서 지정합니다.

예를 들어, 다음과 같은 옵션으로 MQ 메시지 가져오기 활동이 구성됩니다.
  • 구성 태스크의 제한시간 필드가 10초로 구성되고 선택적 timeout 입력 매개변수가 맵핑되지 않으며 기본값이 정의되지 않습니다.
  • 1) 각 재시도 사이에 __초 동안 대기합니다. 옵션이 15초로 설정됩니다.
  • 2) 실패 전에 __번 연결을 시도합니다. 옵션이 2로 설정됩니다.
런타임 중에 MQ 메시지 가져오기 활동이 지속적으로 큐에서 메시지를 검색할 수 없는 경우(다음 그림 참조):