PATH절

PATH 절은 해당 구현에 함수 및 프로시저 호출을 일치시킬 때 검색할 추가 스키마 목록을 지정합니다. 호출이 있는 스키마는 내재적으로 PATH에 포함됩니다.

PATH 기능은 다음의 알고리즘에 따라 도구에서 규정되지 않은 함수 및 프로시저 이름을 해석하는 데 사용됩니다.

규정되지 않은 이름과 일치하는 단일 함수 또는 프로시저가 있어야 하며 그렇지 않으면 도구가 오류를 보고한다는 점을 참고하십시오. schemaId를 사용하여 함수 또는 프로시저 이름을 규정하여 오류를 수정할 수 있습니다.
  1. 현재 MODULE(있을 경우)에서 일치하는 함수 또는 프로시저를 검색합니다. MODULE 범위 함수 및 프로시저는 포함된 MODULE 내에서만 볼 수 있습니다. MODULE 범위 함수 및 프로시저는 스키마 범위 함수 및 프로시저를 숨깁니다.
  2. <node schema> (그러나 포함된 MODULE이 아님)와 <SQL-broker schema> 또는 PATH문에 의해 식별된 스키마에서 일치하는 함수와 프로시저를 검색합니다.
주: schemaId는 완전한 스키마 이름이어야 합니다.

<node schema>는 노드의 메시지 플로우를 포함하는 스키마입니다. 이 스키마의 이름은 브로커 XML 메시지에 있는 메시지 처리 노드 uuid의 마지막 세그먼트에 의해 제공됩니다.

루틴이 호출될 때 사용되는 이름을 스키마 이름으로 규정할 수 있습니다. 작동은 다음과 같이 상황에 따라 달라집니다.
  • 스키마를 지정하면, 이름 지정된 스키마 루틴이 호출됩니다. CAST, EXTRACT 및 특수 레지스터를 제외한 스칼라 내장 함수는 내재적으로 선언된 SQL 스키마 내에 정의되는 것으로 간주됩니다. 이러한 함수는 SQL.SUBSTRING(... )과 같은 방법으로 호출할 수 있습니다.

    다음에 발생하는 상황은 호출자가 모듈 루틴에 있는지 또는 스키마 루틴인지 여부에 따라 달라집니다.

    모듈 루틴의 경우:
    • 스키마가 지정되지 않고 호출 명령문이 모듈 루틴에 있으며 주어진 이름의 루틴이 로컬 모듈에 있으면, 해당 로컬 루틴이 호출됩니다.
    • 스키마가 지정되지 않고 호출 명령문이 모듈 루틴에 있으며 주어진 이름의 루틴이 로컬 모듈에 없으면, 스키마 경로의 모든 스키마에서 같은 이름의 루틴을 검색합니다.
      일치 함수가 하나의 스키마에 있으면 이 함수가 사용됩니다. 일치 함수가 둘 이상의 스키마에 있으면 컴파일 오류가 발생합니다. 일치 함수가 없으면 SQL 스키마가 검색됩니다.
      주: 이 규칙 및 선행 규칙은 로컬 모듈 루틴이 같은 이름의 내장 루틴보다 우선함을 의미합니다.
    스키마 루틴의 경우:
    • 스키마가 지정되지 않고 호출 명령문이 스키마 루틴이며 주어진 이름의 루틴이 로컬 스키마에 있으면, 로컬 루틴이 호출됩니다.
    • 스키마가 지정되지 않고 호출 명령문이 스키마 루틴에 있으며 주어진 이름의 루틴이 로컬 스키마에 없으면, 스키마 경로의 모든 스키마에서 같은 이름의 루틴을 검색합니다.
      일치 함수가 하나의 스키마에 있으면 이 함수가 사용됩니다. 일치 함수가 둘 이상의 스키마에 있으면 컴파일 오류가 발생합니다. 일치 함수가 없으면 SQL 스키마가 검색됩니다.
      주: 이 규칙 및 선행 규칙은 로컬 스키마 루틴이 같은 이름의 내장 루틴보다 우선함을 의미합니다.

<node schema>는 노드의 메시지 플로우를 포함하는 스키마로 정의됩니다. 이 스키마의 이름은 브로커 XML 메시지에 있는 메시지 처리 노드 uuid의 마지막 세그먼트에 의해 제공됩니다.

<node schema>는 WebSphere Message Broker의 이전 버전과의 역호환성을 제공하기 위해 이러한 방식으로 지정됩니다.

<node schema>가 유일하게 참조된 스키마인 경우 브로커 XML 메시지는 WebSphere Message Broker V5.0에 포함된 추가 기능을 포함하지 않습니다.

이전 버전의 WebSphere Message Broker에서는 브로커가 재사용을 위한 서브루틴 라이브러리와 같은 다중 스키마를 지원하지 않습니다. 이전 버전 제품의 브로커로 전개하려면 모든 ESQL 서브루틴은 이를 호출하는 메시지 플로우 및 노드와 같은 스키마에 있어야 합니다.

Eclipse 도구는 컨텐츠 보조 및 소스 코드 유효성 검증에서 WebSphere Message Broker V5.0 ESQL 구문을 사용합니다. Eclipse 도구는 브로커 ESQL 코드를 생성할 때 이전 버전과의 호환성을 위해 V2.1 양식 코드를 생성할 수 있습니다.

스키마 레벨에서, 메시지 플로우의 브로커 스키마는 다음 중 하나를 ESQL 파일에 포함해야 합니다.
  • 스키마 레벨 함수
  • 스키마 레벨 프로시저
  • 스키마 레벨 상수
  • 모듈 레벨 상수
  • 모듈 레벨 변수

선행 항목 중 아무것도 존재하지 않으면, Eclipse 도구가 MODULE 및 FUNCTION Main 랩퍼 없이 브로커 ESQL을 생성합니다. 이 양식은 V2.1 및 V5.0 브로커에서 허용됩니다. 그러나, V2.1 브로커를 사용하는 경우에는 코드에서 네임스페이스와 같은 V5.0 구문을 사용할 수 없습니다.

함수 및 프로시저 이름은 해당 SCHEMA 또는 MODULE 내에서 고유해야 합니다.

다음 예에서는 CommonUtils라고 하는 스키마에 경로를 추가합니다.
BROKER SCHEMA CommonUtils
PATH SpecialUtils;

MODULE ....
다음 예는 디폴트 스키마에 경로를 추가합니다.
PATH CommonUtils, SpecialUtils;

MODULE ....
관련 개념
ESQL 개요
관련 태스크
ESQL 개발
관련 참조
구문 다이어그램: 사용 가능한 유형
ESQL문
BROKER SCHEMA문
CREATE MODULE문
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ak05105_