요청-응답 플로우에서 MQGet 노드 사용

위의 내용을 얻기 위해 MQGet 노드에서 수행되는 처리에 대한 세부사항은 MQGet 노드 메시지 처리를 참조하십시오. 이 유형의 플로우 구성에 대한 자세한 내용은 Coordinated Request Reply 샘플을 참조하십시오.

소개

이 페이지는 요청-응답 플로우에서 MQGet 노드를 사용하는 방법을 소개하는 페이지로, 노드가 입력 메시지를 처리하여(설정한 입력 매개변수와 로컬 환경에 따라) 출력 메시지를 구성하는 방법을 설명합니다.

두 응용프로그램 간 요청-응답 플로우를 사용하여 한 응용프로그램이 다른 응용프로그램에서 메시지를 요청할 수 있습니다. 이 유형의 플로우가 다음 다이어그램에 설명되어 있습니다.

이미지는 아래의 텍스트에
설명되어 있습니다.

다이어그램에서 요청 응용프로그램이 메시지를 응답 응용프로그램의 "요청" 입력 큐에 둡니다. 그런 다음, 응답 응용프로그램이 메시지를 처리하여 요청 응용프로그램의 원래 메시지에 지정된 "리플라이" 큐에 응답을 송신합니다.

다른 응용프로그램을 변경하지 않고 이러한 응용프로그램 중 하나를 바꾸거나 향상시키는 경우 두 응용프로그램 간에 메시지를 변환해야 합니다. 메시지 변환을 수행하도록 다음 다이어그램에 표시된 대로 브로커를 두 응용프로그램 사이에 삽입할 수 있습니다.

이미지는 아래의 텍스트에 설명되어 있습니다.

이제 요청 응용프로그램이 요청 메시지를 "Coordinated Request Reply" 브로커 메시지 플로우의 입력 큐에 두도록 큐 별명 또는 유사한 디바이스가 구성됩니다. 이 메시지의 이전 예는 응답 응용프로그램의 입력 큐에 직접 놓입니다. "Coordinated Request Reply" 플로우가 응답 응용프로그램에 적당한 형식으로 메시지를 변환하여 입력 큐에 전달합니다. 또한, 원래 요청 응용프로그램의 리플라이-투 큐 세부사항을 저장한 다음 요청 응용프로그램에 올바르게 다시 게시될 수 있도록 응답 응용프로그램에서 수신한 응답 메시지에 복원합니다.

MQGet 노드는 플로우의 임의의 위치에 있을 수 있으며 선행 노드에서 전달된 입력 트리를 입력 터미널에서 수신합니다. 그런 다음, 구성된 WebSphere MQ 큐에서 수신한 메시지를 사용하여 결과 트리를 빌드합니다. 마지막으로, 입력 트리와 결과 트리를 사용하여 노드 구성 및 가져오기(Get) 조작 결과에 따라 failure 터미널, 경고 또는 출력에 전달된 출력 트리를 빌드합니다.

플로우 구성에 대한 자세한 정보는 Coordinated Request Reply 샘플을 참조하십시오.

LocalEnvironment 사용 방법

선행 노드로부터 전달된 LocalEnvironment는 MQGet 노드에서 읽고 갱신합니다.

  • MQGMO 구조는 ${inputMQParmsLocation}.MQGMO.*에서 읽혀집니다.
  • MQ 완료 및 이유 코드는 ${outputMQParmsLocation}.CC 및 .RC에 놓입니다.
  • MQGMO 트리가 로컬 환경에 존재할 경우, 노드 및 전달된 다운스트림에 사용되는 값으로 갱신됩니다.
  • ${inputMQParmsLocation}.MQMD가 존재하면, MQGET 호출 자체(입력 메시지에 지정하거나 노드에서 생성된 값을 포함하는)에 전달되는 MQMD가 이 위치에 놓이고 기존에 있었던 것은 삭제됩니다.

${inputMQParmsLocation}은 요청 등록 정보 탭의 MQGet 노드 등록 정보 입력 MQ 매개변수 위치에 설정된 값입니다.

${outputMQParmsLocation}은 결과 등록 정보의 MQGet 노드 등록 정보 출력 MQ 매개변수 위치에 설정된 값입니다.

이 등록 정보에 대한 자세한 내용은 MQGet 노드를 참조하십시오.

요약하면 다음과 같습니다.
${inputMQParmsLocation}
  • QueueName: MQGet 노드 등록 정보 큐 이름의 선택적 대체.
  • InitialBufferSize: MQGet 노드 등록 정보 초기 버퍼 크기의 선택적 대체.
  • MQGMO.*: MQGet 노드가 사용할 선택적 MQ Get 메시지 옵션.
${outputMQParmsLocation}
  • CC: MQ Get 호출 완료 코드.
  • RC: MQ Get 호출 결과 코드.
  • MQGMO.*: MQ Get 메시지 옵션 사용(${inputMQParmsLocation}에 있는 경우).
  • MQMD: 수신한 메시지의 MQ 메시지 설명자.

MQGET 호출에 대한 MQMD를 구성하는 방법

  • 입력 MQMD를 제공하지 않을 경우, WebSphere MQ Application Programming Reference에 설명된 대로 디폴트 MQMD가 사용됩니다.
  • 입력 MQMD를 제공할 경우 다음 두 방법 중 하나가 사용됩니다.
    • 속성 전체 입력 MQMD 사용을 설정하면 입력 MQMD가 전체적으로 사용됩니다.
    • 속성 전체 입력 MQMD 사용을 설정하지 않으면 디폴트 MQMD가 준비되며, 그 후 입력 MQMD로부터 messageID 또는 correlID 선택란이 설정되어 있으면 각각의 ID가 해당 MQMD로 복사됩니다.

다음 다이어그램은 MQGet 노드가 WebSphere MQ에 대한 호출에 사용할 MQMD를 구성하는 방법을 자세히 보여줍니다.

다이어그램은 위의 텍스트에 설명되어 있습니다.

출력 메시지 트리 구성 방법

다음 다이어그램은 이전 노드의 입력 트리를 MQGet 호출의 결과 트리와 결합하여 출력 메시지 트리가 구성되는 방법을 보여줍니다.

다이어그램은 위의 텍스트에 설명되어 있습니다.

다음과 같은 예가 있습니다. 여기서, MQGet 노드 등록 정보는 다음과 같이 나열된 대로 구성됩니다.:
copyMessage
copyEntireMessage
generateMode
message
outputDataLocation
OutputRoot.XML.A
resultDataLocation
ResultRoot.XML.C
이 예에서 출력 트리는 다음 순서에 따라 구성됩니다.
  1. 하위 A와 A의 하위 B를 가지고 있는 XML 분기를 포함하여 전체 입력 트리가 출력 트리에 복사됩니다.
  2. 결과 트리에서, XML 분기의 하위 C 및 C의 하위 D는 출력 트리에서 OutputRoot.XML.A 위치에 넣어집니다. A의 이전 컨텐츠(값 및 하위 요소)는 손실되고 가지고 있는 모든 값 및 하위 요소(이 경우 하위 D)를 포함하여 C의 컨텐츠로 바뀝니다.
  3. 출력 트리에서의 위치는 이름 A로 남습니다.
다음 다이어그램은 이를 시각적으로 설명합니다.

다이어그램은 위의 텍스트에 설명되어 있습니다.

메시지 트리 예

다음은 위에서 파악된 규칙에 따라 메시지 트리를 구성하는 방법의 예입니다.

표 1. 입력 LocalEnvironment 및 MQGet 예제
이와 유사한 메시지 어셈블리를 사용할 경우: MQGet이 리턴하는 메시지
InputRoot
MQMD
{input message mqmd}
MQRFH2
{input message mqrfh2}
XMLNS
{input message body}
InputLocalEnvironment
MQ
GET
MQGMO
MatchOptions = MQMO_MATCH_CORREL_ID
MQMD(하위 요소 없음)
MyData
MQMD
{input mqmd} (with CorrelID = {correct Correlation ID as binary})
변경 시작
ResultRoot
MQMD
{result message mqmd}
MQRFH2
{result message mqrfh2}
XML
{result message body}
변경 끝
표 2. MQGet 노드 등록 정보 설정값 세부사항에 따른 결과 출력 메시지 트리 예제
다음 설정을 사용할 경우: 결과로 생성되는 출력 메시지 어셈블리
inputMQMDLocation
InputLocalEnvironment.MyData.MQMD
copyMessage
copyEntireMessage
copyLocalEnv
copyEntireLocalEnvironment
generateMode
messageAndLocalEnvironment
outputDataLocation
InputLocalEnvironment.MyData.ReturnedMessage
OutputRoot
MQMD
{input message mqmd}
MQRFH2
{input message mqrfh2}
XMLNS
{input message body}
OutputLocalEnvironment
MQ
GET
MQGMO
{mqgmo used for get}
MQMD
{mqmd used for get}
CC = 0
RC = 0
MyData
MQMD
{input mqmd} (with CorrelID = {correct Correlation ID as binary})
ReturnedMessage
MQMD
{result message mqmd}
MQRFH2
{result message mqrfh2}
XML
{result message body}
resultDataLocation
ResultRoot.XML
OutputRoot
MQMD
{input message mqmd}
MQRFH2
{input message mqrfh2}
XMLNS
{input message body}
OutputLocalEnvironment
MQ
GET
MQGMO
{mqgmo used for get}
MQMD
{mqmd used for get}
CC = 0
RC = 0
MyData
MQMD
{input mqmd} (with CorrelID = {correct Correlation ID as binary})
ReturnedMessage(ResultRoot.XML의 속성 및 값 사용)
{result message body}

이 트리는 ${resultDataLocation}에서 ${outputDataLocation}으로의 지정을 효과적으로 수행한 결과입니다. 소스 요소의 값이 복사됩니다. 모두 속성을 포함하는 하위 요소이기 때문입니다.

copyLocalEnv
none
OutputRoot
MQMD
{input message mqmd}
MQRFH2
{input message mqrfh2}
XMLNS
{input message body}
OutputLocalEnvironment
MQ
GET
MQGMO
{mqgmo used for get}
MQMD
{mqmd used for get}
CC = 0
RC = 0
MyData
ReturnedMessage(ResultRoot.XML의 속성 및 값 사용)
{result message body}

이 트리에는 OutputLocalEnvironment의 get에 사용되는 MQMD가 있습니다. 입력 MQ 매개변수 위치 아래에 MQMD 요소가 있기 때문입니다. 입력 트리를 복사하지 않아도 MQMD 요소가 있으면 get에 사용되는 MQMD가 출력 트리에 놓입니다.

outputDataLocation
<blank>
copyLocalEnv
copyEntireLocalEnvironment
OutputRoot
MQMD
{result message mqmd}
MQRFH2
{result message mqrfh2}
XMLNS
{result message body}
OutputLocalEnvironment
MQ
GET
MQGMO
{mqgmo used for get}
MQMD
{mqmd used for get}
CC = 0
RC = 0
MyData
MQMD
{input mqmd} (with CorrelID = {correct Correlation ID as binary})

이 경우의 copyMessage 설정은 결과로 생성되는 출력 트리와 차이가 없습니다.

주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ac34680_