추적 출력에서 논리적 메시지 트리 보기

메시지 플로우의 임의 지점에서 논리적 메시지 트리의 구조를 보려면 Trace 노드를 포함시키고 일부 또는 모든 메시지(헤더 및 네 개의 메시지 트리 포함)를 추적 출력 목적지에 기록할 수 있습니다.

이 기능은 노드가 변경되기 전후 또는 입력 노드에서 수신할 때 메시지 컨텐츠를 점검하거나 기록하는 데 유용합니다. 예를 들면, 로컬 환경(LocalEnvironment)에 목적지 목록을 빌드하는 Compute 노드를 포함시키는 경우 감사 추적의 일부로 작성한 구조 레코드가 필요하거나 Compute 노드가 예측한 대로 작동하는지 확인하고자 할 수 있습니다.

  1. 브로커 응용프로그램 개발 perspective로 전환하십시오.
  2. 보려고 하는 메시지에 대한 메시지 플로우를 여십시오. 기존 메시지 플로우가 되거나 새 메시지 플로우를 작성할 수 있습니다.
  3. 메시지 트리 구조의 일부 또는 전체를 보려는 위치에 Trace 노드를 포함시키십시오. 포함 가능한 Trace 노드의 수에는 제한이 없지만 각 노드가 일부 오버헤드를 메시지 플로우 처리에 삽입합니다.
  4. 보려할 메시지 또는 메시지의 일부분을 추적하도록 Trace 노드 등록 정보를 설정하십시오. ESQL 필드 참조를 사용하여 메시지의 일부분을 지정할 수 있습니다. 여러 예가 아래에 포함되어 있습니다.
  5. Trace 노드를 추가하여 메시지 플로우의 특정 작동을 조사했고 관심사항을 해결했거나 메시지 플로우가 제대로 작동하는지 점검한 경우 Trace 노드 또는 노드를 제거하고 메시지 플로우를 다시 전개하십시오.

MQInput 노드에 있는 WebSphere MQ 큐의 XLM 메시지를 수신하는 메시지 플로우를 구성했다고 가정하십시오. 입력 메시지에는 MQRFH2 헤더가 포함됩니다. 메시지 컨텐츠는 아래와 같이 표시됩니다.

<Trade type='buy'
 Company='IBM'
 Price='200.20'
 Date='2000-01-01'
 Quantity='1000'/>

이 메시지에서 작성된 하나 이상의 트리(메시지 본문, 환경, 로컬 환경 및 예외 트리)를 보여주는 출력을 생성하기 위해 Trace 노드를 포함 및 구성할 수 있습니다. 메시지 본문의 컨텐츠를 기록하도록 선택한 경우 등록 정보 트리 및 모든 헤더의 컨텐츠(이 예에서는 최소한 MQMD 및 MQRFH2)가 포함됩니다. Trace 노드 등록 정보 패턴 설정 시 기록하려는 사항을 지정하십시오. 이 패턴을 정의하기 위해 대부분의 상관 이름을 사용할 수 있습니다(Compute 노드에 특정한 이름을 사용할 수 없음).

메시지 본문
Trace 노드가 등록 정보 및 모든 헤더를 포함한 메시지 본문 트리를 기록하도록 하려면 패턴$Root로 지정하십시오. 메시지 데이터 세트만 원할 경우 패턴${Body}로 설정하십시오.

패턴$Root로 설정된 상태에서 표시된 메시지의 메시지 트리에 대해 생성된 추적 출력은 다음과 같습니다.

루트
      등록 정보
         CreationTime=GMTTIMESTAMP '1999-11-24 13:10:00'          (a GMT timestamp field)
 
    ... and other fields ...
 
            MQMD
         PutDate=DATE '19991124'                                  (a date field)
 
         PutTime=GMTTIME '131000'                                 (a GMTTIME field)
 
    ... and other fields ...
 
      MQRFH
          mcd
          msd='xml'                                              (a character string field)
 
         .. and other fields ...
 
      XML
                  Trade
          type='buy'                                             (a character string field)
 
         Company='IBM'                                           (a character string field)
 
         Price='200'                                             (a character string field)
 
         Date='2000-01-01'                                       (a character string field)
 
         Quantity='1000'                                         (a character string field)
환경
환경 트리에서 데이터를 추적하려면 Pattern${Environment}로 설정하십시오. 이렇게 하면 다음과 유사한 출력이 생성됩니다.
  (0x1000000)Environment = (
            (0x1000000)Variables = (
                (0x1000000)MyVariable1 = (
                    (0x2000000) = '3'
        )
                (0x1000000)MyVariable2 = (
                    (0x2000000) = 'Hello'
        )
      )
  ) 

환경 트리의 변수 폴더에서 특정 변수를 추적하려면 특정 패턴을 추가로 사용할 수 있습니다(예: ${Environment.Variables.MyVariable1}). 이 명령문은 값만 리턴합니다. (예를 들면, 값 3만 리턴합니다.)

로컬 환경
로컬 환경 트리의 데이터를 추적하려면 패턴${LocalEnvironment}로 설정하십시오. 가져온 출력은 다음의 예와 유사하며, LocalEnvironment 트리 내에 작성된 목적지 목록을 보여줍니다.
(0x1000000)Destination        = (
        (0x1000000)MQ = (
            (0x1000000)DestinationData = (
                (0x3000000)queuename = 'MQOUT'
      )
    )
          (0x1000000)MQDestinationList = (
            (0x1000000)DestinationData = (
                (0x3000000)queuename = 'OLDMQOUT'
      )
    )
        (0x1000000)RouterList        = (
            (0x1000000)DestinationData = (
                (0x3000000)labelname = 'continue'
      )
            (0x1000000)DestinationData = (
                (0x3000000)labelname = 'custdetails'
      )
            (0x1000000)DestinationData = (
                (0x3000000)labelname = 'trade'
      )
    )
  )      

아래 표시된 또 다른 예에는 WrittenDestination 폴더가 포함되어 있습니다. 이 폴더는 MQOutput 노드 다음에 포함된 Trace 노드에서 기록한 추적을 나타내며, 여기서 MQOutput 노드의 out 터미널은 Trace 노드를 포함한 일련의 노드로 연결됩니다. Out 터미널이 연결되면 LocalEnvironment는 출력 노드가 수행한 조치에 대한 정보로 확대됩니다.

(0x1000000)Destination        = (
        (0x1000000)MQ = (
            (0x1000000)DestinationData = (
                (0x3000000)queuename = 'MQOUT'
      )
    )
    (0x1000000)WrittenDestination = (
        (0x1000000)MQ = (
            (0x1000000)DestinationData = (
                (0x3000000)queueName        = 'MQOUT'
                (0x3000000)queueManagerName = 'MQSI_SAMPLE_QM'
                (0x3000000)replyIdentfier   = X'414d51204d5153495f53414d504c455f1f442f3b12600100'
                (0x3000000)msgId            = X'414d51204d5153495f53414d504c455f1f442f3b12600100'
                (0x3000000)correlId         = X'000000000000000000000000000000000000000000000000'
      )
    )
  )
)
예외 목록
예외 목록의 데이터를 추적하려면 패턴${ExceptionList}로 설정하십시오.

플로우 디버거 사용 시 메시지 플로우 내의 메시지 구조 및 기타 정보를 볼 수도 있습니다.

관련 개념
메시지 플로우 개요
논리적 트리 구조
상관 이름
플로우 디버거
관련 태스크
메시지 플로우 설계
메시지 본문 컨텐츠 가공
메시지 트리의 다른 부분 조작
메시지 플로우 응용프로그램 테스트 및 디버깅
관련 참조
Trace 노드
예외 목록(ExceptionList) 구조
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ac16810_