MQRFH2 헤더에 액세스

MQRFH2 헤더의 필드에 액세스하려면 ESQL 명령문을 코드화하십시오.

태스크 정보

Compute 노드에서 MQRFH2 헤더를 구성할 때 두 가지 유형의 필드를 포함합니다.

  • MQRFH2 헤더 구조의 필드: 예를 들면, Format 및 NameValueCCSID.
  • MQRFH2 NameValue 버퍼의 필드: 예를 들면, mcd 및 psc.

이러한 두 개의 필드 유형을 구별하려면 MQRFH2 필드에서 참조된 필드의 앞에 해당 유형을 식별하는 값을 삽입하십시오. NameValue 버퍼의 값은 기본값이므로 필수가 아닙니다. 헤더 구조에 대해 지정해야 하는 값은 (MQRFH2.Field)입니다.

예를 들어,

  • MQRFH2 형식 필드를 작성하거나 변경하려면 다음의 ESQL을 지정하십시오.
    SET OutputRoot.MQRFH2.(MQRFH2.Field)Format = 'MQSTR   ';
  • 주제가 있는 psc 폴더를 작성하거나 변경하려면 다음의 ESQL을 지정하십시오.
    SET OutputRoot.MQRFH2.psc.Topic = 'department';
  • 구독 요청을 작성하기 위해 사용할 보내는 메시지에 MQRFH2 헤더를 추가하려면 다음의 ESQL을 지정하십시오.
    DECLARE I INTEGER 1;
    DECLARE J INTEGER CARDINALITY(InputRoot.*[]);
    
    WHILE I < J DO
     SET OutputRoot.*[I] = InputRoot.*[I];
     SET I=I+1;
    END WHILE;
    
    SET OutputRoot.MQRFH2.(MQRFH2.Field)Version = 2;
    SET OutputRoot.MQRFH2.(MQRFH2.Field)Format = 'MQSTR';
    SET OutputRoot.MQRFH2.(MQRFH2.Field)NameValueCCSID = 1208;
    SET OutputRoot.MQRFH2.psc.Topic = "InputRoot"."MRM"."topel";
    SET OutputRoot.MQRFH2.psc.QMgrName = 'DebugQM';
    SET OutputRoot.MQRFH2.psc.QName = 'PUBOUT';
    SET OutputRoot.MQRFH2.psc.RegOpt = 'PersAsPub';
    변수 J는 메시지에서 기존 헤더의 카디널리티의 값으로 초기화됩니다. 루프의 각 반복에서 카디널리티를 계산하는 것(이는 다음 WHILE 명령문을 코드화할 때 발생함) 보다 변수를 사용하는 것이 더 효율적입니다.
    WHILE I < CARDINALITY(InputRoot.*[]) DO
    

MQRFH2 구문 분석기 또는 MQRFH2C 압축 구문 분석기를 사용하여 MQRFH2 헤더를 구문 분석할 수 있습니다. 더 적은 메모리를 사용하려면 메시지 플로우의 입력 노드에서 Use MQRFH2C compact parser for MQRFH2 Header 선택란을 선택하여 MQRFH2C 압축 구문 분석기를 사용하십시오. 그러면 MQRFH2 대신에 MQRFH2C를 포함하는 경로가 결과로 나옵니다. 예를 들어, SET OutputRoot.MQRFH2C.psc.Topic = 'department';

대상 MQRFH2 필드는 헤더가 복사되고 MQRFH2C 구문 분석기 옵션이 MQInput 노드에서 선택되지 않은 경우에만 작성됩니다. 다른 모든 상황에서 MQRFH2C 필드가 출력에 작성됩니다.