메시지 플로우의 임의 지점에서 논리적 메시지 트리의 구조를 보려면 Trace 노드를 포함시키고 일부 또는 모든 메시지(헤더 및 네 개의 메시지 트리 포함)를 추적 출력 목적지에 기록할 수 있습니다.
이 기능은 노드가 변경되기 전후 또는 입력 노드에서 수신할 때 메시지 컨텐츠를 점검하거나 기록하는 데 유용합니다. 예를 들면, 로컬 환경(LocalEnvironment)에 목적지 목록을 빌드하는 Compute 노드를 포함시키는 경우 감사 추적의 일부로 작성한 구조 레코드가 필요하거나 Compute 노드가 예측한 대로 작동하는지 확인하고자 할 수 있습니다.
MQInput 노드에 있는 WebSphere MQ 큐의 XLM 메시지를 수신하는 메시지 플로우를 구성했다고 가정하십시오. 입력 메시지에는 MQRFH2 헤더가 포함됩니다. 메시지 컨텐츠는 아래와 같이 표시됩니다.
<Trade type='buy' Company='IBM' Price='200.20' Date='2000-01-01' Quantity='1000'/>
이 메시지에서 작성된 하나 이상의 트리(메시지 본문, 환경, 로컬 환경 및 예외 트리)를 보여주는 출력을 생성하기 위해 Trace 노드를 포함 및 구성할 수 있습니다. 메시지 본문의 컨텐츠를 기록하도록 선택한 경우 등록 정보 트리 및 모든 헤더의 컨텐츠(이 예에서는 최소한 MQMD 및 MQRFH2)가 포함됩니다. Trace 노드 등록 정보 패턴 설정 시 기록하려는 사항을 지정하십시오. 이 패턴을 정의하기 위해 대부분의 상관 이름을 사용할 수 있습니다(Compute 노드에 특정한 이름을 사용할 수 없음).
패턴이 $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)
(0x1000000)Environment = ( (0x1000000)Variables = ( (0x1000000)MyVariable1 = ( (0x2000000) = '3' ) (0x1000000)MyVariable2 = ( (0x2000000) = 'Hello' ) ) )
환경 트리의 변수 폴더에서 특정 변수를 추적하려면 특정 패턴을 추가로 사용할 수 있습니다(예: ${Environment.Variables.MyVariable1}). 이 명령문은 값만 리턴합니다. (예를 들면, 값 3만 리턴합니다.)
(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' ) ) ) )
플로우 디버거 사용 시 메시지 플로우 내의 메시지 구조 및 기타 정보를 볼 수도 있습니다.