Cláusula PATH

La cláusula PATH especifica una lista de esquemas adicionales en los que buscar al relacionar las llamadas de función y procedimiento con sus implementaciones. El esquema en el que se encuentra la llamada se incluye implícitamente en PATH.

La característica PATH se utiliza para resolver los nombres de procedimiento y función no calificados en las herramientas según el algoritmo siguiente.

Debe haber una sola función o procedimiento que coincida con el nombre no calificado o las herramientas generarán un error. Puede corregir el error calificando el nombre de función o procedimiento con un schemaId:
  1. Se busca en el MODULE actual (si lo hay) una función o procedimiento que coincida. Las funciones o procedimientos de ámbito de MODULE sólo pueden verse en el MODULE que las contiene. Las funciones y procedimientos de ámbito de MODULE ocultan funciones y procedimientos de ámbito de esquema.
  2. Se buscan <node schema> (pero ninguno de los MODULE que contienen) <SQL-broker schema> o los esquemas identificados mediante la sentencia PATH por si hay una función o procedimiento que coincida.
Nota: schemaId debe ser un nombre de esquema totalmente limitado.

<node schema> es el esquema que contiene el flujo de mensajes del nodo. El nombre de este esquema lo proporciona el último segmento del mensaje del nodo de proceso de mensajes uuid del mensaje XML del intermediario.

Cuando se invoca una rutina, el nombre utilizado se puede limitar con el nombre de esquema. El comportamiento depende de las circunstancias como se indica a continuación:
  • Si se especifica el esquema, se invoca la rutina de esquema nombrada. Se considera que las funciones escalares incorporadas, excluidas CAST, EXTRACT y los registros especiales, están definidas en un esquema declarado implícitamente denominado SQL. Se pueden invocar, por ejemplo, de este modo: SQL.SUBSTRING(... ).

    Lo que sucede a continuación depende de si el canal de llamada está en una rutina de módulo o es una rutina de esquema.

    Para una rutina de módulo:
    • Si no se especifica el esquema, la sentencia de llamada está en una rutina de módulo y existe una rutina con el nombre proporcionado en el módulo local, se invoca dicha rutina local.
    • Si no se especifica el esquema, la sentencia de llamada está en una rutina de módulo y no existe una rutina con el nombre proporcionado en el módulo local, se busca una rutina con el mismo nombre en todos los esquemas de la vía de acceso de esquema.
      Si existe una función coincidente en un esquema, se utiliza. Si existe una función coincidente en más de un esquema se produce un error de tiempo de compilación. Si no hay una función coincidente, se busca el SQL del esquema.
      Nota: Esta norma y la norma anterior implican que una rutina de módulo local tiene prioridad sobre una rutina incorporada con el mismo nombre.
    Para una rutina de esquema:
    • Si no se especifica el esquema, la sentencia de llamada está en una rutina de esquema y existe una rutina con el nombre proporcionado en el esquema local, se invoca dicha rutina local.
    • Si no se especifica el esquema, la sentencia de llamada está en una rutina de esquema y no existe una rutina con el nombre proporcionado en el esquema local, se busca una rutina con el mismo nombre en todos los esquemas de la vía de acceso de esquema.
      Si existe una función coincidente en un esquema, se utiliza. Si existe una función coincidente en más de un esquema se produce un error de tiempo de compilación. Si no hay una función coincidente, se busca el SQL del esquema.
      Nota: Esta norma y la norma anterior implican que una rutina de esquema local tiene prioridad sobre una rutina incorporada con el mismo nombre.

<node schema> se define como el esquema que contiene el flujo de mensajes del nodo. El nombre de este esquema lo proporciona el último segmento del mensaje del nodo de proceso de mensajes uuid del mensaje XML del intermediario.

Se especifica <node schema> de este modo por motivos de compatibilidad con versiones anteriores de WebSphere Message Broker

Cuando <node schema> es el único esquema al que se hace referencia, el mensaje XML del intermediario no incluye las características adicionales contenidas en WebSphere Message Broker V5.0.

Los intermediarios de las versiones anteriores de WebSphere Message Broker no permiten reutilizar múltiples esquemas, por ejemplo, las bibliotecas de subrutina. Para desplegar un intermediario en una versión anterior del producto, coloque todas las subrutinas ESQL del mismo esquema como el flujo de mensajes y el nodo que las invoca.

Las herramientas Eclipse utilizan la sintaxis ESQL de WebSphere Message Broker V5.0 para ayuda de contenido y validación de código fuente. Cuando se genera código ESQL de intermediario, las herramientas Eclipse pueden generar código de tipo V2.1 por motivos de compatibilidad con versiones anteriores.

El esquema de intermediario del flujo de mensajes debe contener, a nivel de esquema, cualquiera de los siguientes archivos ESQL:
  • Una función a nivel de esquema
  • Un procedimiento a nivel de esquema
  • Una constante a nivel de esquema
  • Una constante a nivel de módulo
  • Una variable a nivel de módulo

Sin la presencia de ninguno de los elementos anteriores, las herramientas Eclipse generan ESQL de intermediario sin los reiniciadores principales MODULE y FUNCTION. Este estilo lo aceptan los intermediarios V2.1 y V5.0. No obstante, si utiliza un intermediario V2.1, no puede utilizar ninguna sintaxis V5.0 en el código, por ejemplo, namespace.

Los nombres de funciones y procedimientos deben ser exclusivos en su SCHEMA o MODULE.

Ejemplos

El siguiente ejemplo añade una vía de acceso a un esquema denominado CommonUtils:
BROKER SCHEMA CommonUtils
PATH SpecialUtils;

MODULE ....
El siguiente ejemplo añade una vía de acceso al esquema por omisión:
PATH CommonUtils, SpecialUtils;

MODULE ....
Conceptos relacionados
Visión general de ESQL
Tareas relacionadas
Desarrollo de ESQL
Referencia relacionada
Diagramas de sintaxis: tipos disponibles
Sentencias ESQL
Sentencia BROKER SCHEMA
Sentencia CREATE MODULE
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
ak05105_