메시지 유효성 검증

시작하기 전에

메시지 플로우 노드MRM 구문 분석기 및 도메인에 대한 개념 주제를 읽으십시오.

브로커는 사전정의된 메시지에 대한 메시지 사전을 기본으로 유효성 검증을 제공합니다. 따라서 유효성 검증은 MRM 도메인에 모델화 및 정의된 메시지에만 적용됩니다.

브로커는 자체 정의 메시지에 대한 유효성 검증은 제공하지 않습니다. XML DTD 또는 XML 스키마에 대해 직접적으로 메시지의 유효성을 검증할 수 없습니다. 대신 Message Brokers Toolkit을 사용하여 XML DTD 또는 XML 스키마를 들여와서 MRM 도메인에 해당되는 모델을 작성해야 합니다.

메시지 플로우는 특정 규칙을 따르는 메시지를 변환하고 라우트하도록 설계되었습니다. 기본적으로, MRM 구문 분석기가 메시지에 대해 일부 유효성 검증을 수행하지만 구문 분석 조작의 무결성만을 확인합니다. 그러나 메시지 플로우의 특정 노드에 유효성 검증 옵션을 지정하여 메시지 사전에 포함되어 있는 메시지 모델에 대해 보다 엄격한 메시지 유효성 검증을 수행할 수 있습니다.

유효성 검증 옵션을 사용하여 다음 메시지의 유효성을 검증할 수 있습니다.

이러한 유효성 검증 옵션은 메시지 플로우로 들어오고 나가는 데이터의 유효성 검증을 보장합니다. 옵션은 사용자에게 다음을 위해 수행되는 유효성 검증에 대해 약간의 제어권을 제공합니다.

유효성 검증에 실패한 경우 취할 조치도 지정할 수 있습니다.

메시지 유효성 검증에는 메시지 트리 탐색과 유효성 점검이 포함됩니다. 메시지 유효성 검증은 메시지를 구문 분석할 경우에는 트리를 작성하는 작업의 확장이며 출력 메시지를 작성할 경우에는 비트스트림을 작성하는 작업의 확장입니다.

유효성 검증 옵션은 다음 노드에서 사용 가능합니다.

노드 유형 유효성 검증 옵션이 있는 노드
입력 노드 MQInput, SCADAInput, HTTPInput, JMSInput, TimeoutNotification
출력 노드 MQOutput, MQReply, SCADAOutput, HTTPReply, JMSOutput
기타 노드 Compute, Mapping, JavaCompute, Validate, ResetContentDescriptor, MQGet, HTTPRequest,

ESQL CREATE문과 ASBITSTREAM 함수에서도 유효성 검증 옵션을 지정할 수 있습니다.

입력 노드에 수신되는 입력 메시지의 유효성을 검증하려면 입력 노드에서 유효성 검증 등록 정보를 지정하면 됩니다. 그러면 메시지 비트스트림이 구문 분석되어 메시지 트리를 형성하는 대로 입력 메시지의 유효성이 검증됩니다.

또한 입력 노드의 구문 분석 타이밍 등록 정보를 사용하여 전체 메시지를 구문 분석하여 유효성을 검증할 것인지 또는 참조한 경우에만 메시지의 개별 필드를 구문 분석하여 유효성을 검증할 것인지 제어할 수 있습니다.

Compute 노드, Mapping 노드 또는 JavaCompute 노드에서 작성된 출력 메시지의 유효성을 검증하려면 노드 자체에서 유효성 검증 등록 정보를 지정하거나 메시지를 송신하는 출력 노드에서 유효성 검증 등록 정보를 지정합니다. 유효성 검증은 출력 노드에서 메시지 트리로부터 메시지 비트스트림이 작성될 때 수행됩니다.

또는 Validate 노드를 사용하여 메시지 플로우의 특정 위치에서 메시지 트리의 유효성을 검증하거나 Compute, Filter 또는 Database 노드에서 ESQL ASBITSTREAM 함수를 사용할 수도 있습니다.

유효성 검증 설정을 변경하지 않고 그대로 두면 디폴트로 제한된 양의 유효성 검증이 이루어집니다. 이러한 디폴트 레벨에서는 다음과 같은 경우에 예외가 전달됩니다.
  • 데이터 불일치가 발생한 경우. 예를 들면, 구문 분석기가 지정된 필드 유형에 제공된 데이터를 해석할 수 없는 경우
  • 출력 메시지에 있는 요소의 순서가 논리적 메시지 트리(CWF 및 TDS 고정 길이 모델 전용)의 순서와 일치하지 않을 경우.
또한 MRM 구문 분석기는 디폴트로 다음 상황에서 제한된 개선 조치를 수행합니다.
  1. 불필요한 필드는 고정 형식(CWF 및 TDS 고정 길이 모델 전용)의 경우 출력에서 제거됩니다.
  2. 필수 컨텐츠가 누락된 경우, 고정 형식(CWF 및 TDS 고정 길이 모델 전용)의 출력에 대해 디폴트(사용 가능할 경우)가 제공됩니다.
  3. 트리 내 요소의 데이터 유형이 사전에 지정된 유형과 일치하지 않으면, 가능한 경우 모든 형식에 대해 사전 정의와 일치하도록 출력에서 데이터 유형이 변환됩니다.

그러나 유효성 검증 옵션을 사용하여 추가 메시지 유효성 검증을 요청할 수 있습니다. 예를 들면, 다음 조건의 유효성을 검증하고 예외를 전달하며 오류를 로그 기록하고자 할 수 있습니다.

샘플에 유효성 검증 옵션 일부가 설명되어 았습니다.

유효성 검증 옵션을 사용할 때 다음 작동을 이해하는 것이 중요합니다.
  • '요청시' 구문 분석(간혹 부분 구문 분석이라고도 함) 발생 여부를 제어하는 구문 분석 타이밍 등록 정보는 메시지 헤더를 포함하여 입력 메시지의 유효성 검증 타이밍에 영향을 줍니다.

    구문 분석 타이밍에 대한 자세한 정보는 MRM 도메인에서 메시지의 유효성 검증 등록 정보를 참조하십시오.

  • 메시지 트리가 출력 노드로 전달될 경우, 디폴트로 출력 노드가 메시지 트리에 적용되는 유효성 검증 옵션을 상속합니다. 출력 노드에서 새 유효성 검증 옵션 세트를 지정하여 이 옵션들을 대체할 수 있습니다.
  • 메시지 트리가 Compute, Mapping 또는 JavaCompute 노드에 입력으로 전달될 경우, Compute, Mapping 또는 JavaCompute 노드에서 작성된 새 출력 메시지 트리는 노드 자체에 지정된 유효성 검증 옵션을 갖습니다(전체 메시지를 복사할 경우에도). 이 작동을 대체하고 노드에서 작성된 메시지가 입력 메시지 트리의 유효성 검증 옵션을 상속하도록 지정할 수 있습니다.
  • 비트스트림을 기록할 때 유효성 검증 옵션이 적용되면, 전체 메시지의 유효성이 검증됩니다. 메시지 트리는 분석되지 않은 유형을 포함할 수 있습니다(예를 들면, Compute 노드가 입력 메시지에서 유형을 해석하지 않고 해석하지 않은 유형을 그대로 출력 메시지로 복사한 경우). 이러한 유형을 발견할 경우, 유형의 유효성을 검증할 수 없기 때문에 유효성 검증 오류가 발생합니다. 이런 오류를 방지하려면, 출력으로 유형을 복사하기 전에 해석되지 않은 모든 유형을 해석했는지 확인하십시오.

다른 등록 정보를 사용하여 유효성 검증을 제어할 수 있는 방법에 대한 정보는 MRM 도메인에서 메시지의 유효성 검증 등록 정보를 참조하십시오.

관련 개념
사전정의 및 자체정의 메시지
메시지 플로우 개요
관련 태스크
메시지 플로우 설계
메시지 플로우 작성
메시지 플로우 컨텐츠 정의
관련 참조
내장 노드
MRM 도메인에서 메시지의 유효성 검증 등록 정보
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ac00400_