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 la cláusula PATH.

Se ha utilizado la cláusula PATH para resolver nombres de función o procedimiento no calificados en las herramientas de acuerdo con el siguiente algoritmo.

Una función o un procedimiento individual debe coincidir con el nombre no calificado o las herramientas informan de un error. Puede corregir el error calificando el nombre de función o procedimiento con un schemaId:
  1. Se busca en el módulo actual (si lo hay) una función o procedimiento que coincida. Las funciones o los procedimientos de ámbito de módulo sólo están visibles en el módulo que los contiene. Si se encuentran funciones o procedimientos con el mismo nombre en el módulo y el esquema actuales, las funciones o los procedimientos de ámbito de módulo tienen prioridad sobre las funciones o los procedimientos de ámbito de esquema.
  2. En el <esquema de nodo> (pero ninguno de los módulos contenidos) y el <esquema de intermediario SQL> o esquemas identificados por la cláusula PATH se busca una función o un procedimiento coincidente.
Nota: IdEsquema debe ser un nombre de esquema totalmente limitado.

Cuando se inicia una función o un procedimiento, el nombre que se utiliza se debe calificar con el nombre de esquema. El comportamiento depende de las circunstancias:

Para una rutina de módulo:
  • Si se especifica el esquema, se inicia la rutina de esquema mencionada. Las funciones incorporadas escalares, excluidas CAST, EXTRACT y los registros especiales, se consideran definidas en un esquema declarada implícitamente denominado SQL.
  • Si no se especifica el esquema y la sentencia de llamada está en una rutina de módulo y en el módulo local existe una rutina del nombre proporcionado, se inicia dicha rutina local.
  • Si no se especifica el esquema y la sentencia de llamada está en una rutina de módulo y no existe una rutina del nombre proporcionado en el módulo local, se busca una rutina del 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 ninguna función coincidente, se busca en el SQL de esquema.

    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 se especifica el esquema, se inicia la rutina de esquema mencionada. Las funciones incorporadas escalares, excluidas CAST, EXTRACT y los registros especiales, se consideran definidas en un esquema declarada implícitamente denominado SQL.
  • Si no se especifica el esquema y el llamante es una rutina de esquema y existe una rutina del nombre proporcionado en el esquema local, se inicia dicha rutina local.
  • Si no se especifica el esquema y la sentencia de llamada está en una rutina de esquema y no existe una rutina del nombre proporcionado en el esquema local, se busca una rutina del 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.

    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.

Se especifica <node schema> de esta manera para proporcionar compatibilidad con versiones anteriores de WebSphere Message Broker.

Cuando <node schema> es el único esquema al que se hace referencia, el mensaje XML de intermediario no incluye las características adicionales contenidas en WebSphere Message Broker V6.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 en un intermediario de una versión anterior del producto, ponga todas las subrutinas ESQL en el mismo esquema que el flujo de mensajes y el nodo que inician las subrutinas ESQL.

Las herramientas Eclipse utilizan la sintaxis ESQL de WebSphere Message Broker V6.0 en la ayuda de contenido y la validación de código fuente. Al generar código ESQL de intermediario, las herramientas Eclipse pueden generar código de estilo V2.1 por 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 de módulo y función. Este estilo lo aceptan los intermediarios V2.1 y V5.0. Sin embargo, si utiliza un intermediario de la V2.1, no puede utilizar cualquier sintaxis de la V5.0 o V6.0 en código, por ejemplo namespace.

Los nombres de función y procedimiento deben ser exclusivos en su esquema o módulo.

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 predeterminado:
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, 2009Copyright IBM Corporation 1999, 2009.
Última actualización : 2009-02-16 13:55:30

ak05105_