Clausola PATH

La clausola PATH specifica un elenco di ulteriori schemi da ricercare quando si associano chiamate a funzioni e procedure alle relative implementazioni. Lo schema in cui risiede la chiamata è implicitamente incluso in PATH.

La funzione PATH viene utilizzata per risolvere i nomi di procedure e funzioni non qualificati negli strumenti in base al seguente algoritmo.

Deve esistere una singola funzione o procedura che corrisponde al nome non qualificato; in caso contrario gli strumenti riportano un errore. E' possibile correggere l'errore qualificando il nome della funzione o della procedura con uno schemaId:
  1. Viene eseguita una ricerca di una funzione o di una procedura corrispondente nel MODULE corrente (se esiste). Le procedure e le funzioni nell'ambito MODULE sono visibili solo all'interno del relativo MODULE che le contiene. Le procedure e le funzioni nell'ambito MODULE nascondono le procedure e le funzioni nell'ambito dello schema.
  2. Una procedura di funzione corrispondente viene ricercata nello <schema del nodo> (ma in nessuno dei relativi MODULE contenuti) e nello <schema SQL-broker> o negli schemi identificati dall'istruzione PATH
Nota: schemaId deve essere un nome dello schema completo.

Lo <schema del nodo> è lo schema che contiene il flusso di messaggi del nodo. Il nome di tale schema è fornito dall'ultimo segmento del nodo che elabora il messaggio uuid nel messaggio XML del broker.

Quando viene richiamata una routine, il nome utilizzato può essere qualificato dal nome dello schema. Il funzionamento dipende dai casi, come riportato di seguito:
  • Se lo schema è specificato, viene richiamata la routine dello schema identificata. Le funzioni incorporate scalari, esclusi CAST, EXTRACT ed i registri speciali, sono considerati in modo da essere definiti all'interno di uno schema dichiarato in modo implicito denominato SQL. E' possibili richiamarli, ad esempio, utilizzando SQL.SUBSTRING(... ).

    Le operazioni eseguite successivamente dipendono dal fatto che il chiamante si trovi in una routine del modulo oppure sia una routine dello schema.

    Per una routine del modulo:
    • Se lo schema non è specificato, l'istruzione chiamante è in una routine del modulo ed esiste una routine con il nome indicato nel modulo locale, viene richiamata tale routine locale.
    • Se lo schema non è specificato, l'istruzione chiamante è in una routine del modulo e non esiste una routine con il nome indicato nel modulo locale, viene ricercata una routine con lo stesso nome in tutti gli schemi contenuti nel percorso dello schema.
      Se in uno schema esiste una funzione corrispondente, viene utilizzata. Se esiste una funzione corrispondente in più di uno schema, si verifica un errore al momento della compilazione. Se non esiste alcuna funzione corrispondente, viene eseguita una ricerca nel codice SQL dello schema.
      Nota: Questa regola e la regola precedente implicano che una routine del modulo locale abbia priorità rispetto ad una routine integrata con lo stesso nome.
    Per una routine dello schema:
    • Se lo schema non è specificato, il chiamante è una routine dello schema e nello schema locale esiste una routine con il nome indicato, viene richiamata tale routine locale.
    • Se lo schema non è specificato, l'istruzione chiamante è in una routine dello schema e nello schema locale non esiste una routine con il nome indicato, viene ricercata una routine con lo stesso nome in tutti gli schemi contenuti nel percorso dello schema
      Se in uno schema esiste una funzione corrispondente, viene utilizzata. Se esiste una funzione corrispondente in più di uno schema, si verifica un errore al momento della compilazione. Se non esiste alcuna funzione corrispondente, viene eseguita una ricerca nel codice SQL dello schema.
      Nota: Questa regola e la regola precedente implicano che una routine dello schema locale abbia priorità rispetto ad una routine integrata con lo stesso nome.

Lo <schema del nodo> è definito come lo schema che contiene il flusso di messaggi del nodo. Il nome di tale schema è fornito dall'ultimo segmento del nodo che elabora il messaggio uuid nel messaggio XML del broker.

Lo <schema del nodo> viene specificato in questo modo per garantire compatibilità retroattiva con le versioni precedenti di WebSphere Message Broker

Quando lo <schema del nodo> è l'unico schema indicato, il messaggio XML del broker non include le funzioni supplementari contenute in WebSphere Message Broker V5.0.

I broker nelle versioni precedenti di WebSphere Message Broker non supportano gli schemi multipli, come, ad esempio, le librerie della routine secondaria per il riutilizzo. Per eseguire la distribuzione ad un broker in una versione precedente del prodotto, inserire tutte le routine secondarie ESQL nello stesso schema del flusso di messaggi e del nodo che le richiama.

Gli strumenti Eclipse utilizzano la sintassi ESQL WebSphere Message Broker V5.0 in Content Assist e nella convalida del codice di origine. Quando si genera il codice ESQL del broker, gli strumenti Eclipse possono generare codice V2.1 per la compatibilità con le versioni precedenti.

Lo schema broker del flusso di messaggi deve contenere, al livello dello schema, uno dei seguenti elementi nei relativi file ESQL:
  • Una funzione a livello dello schema
  • Una procedure a livello dello schema
  • Una costante a livello dello schema
  • Una costante a livello del modulo
  • Una variabile a livello del modulo

In assenza di uno degli elementi precedenti, gli strumenti Eclipse generano il codice ESQL del broker senza i wrapper Main di MODULE e FUNCTION. Questo stile è accettato dai broker V2.1 e V5.0. Tuttavia, se si utilizza un broker V2.1, non è possibile utilizzare la sintassi V5.0 nel codice, come, ad esempio, namespace

I nomi di procedure e funzioni devono essere univoci all'interno del relativo SCHEMA o MODULE.

Esempi

L'esempio riportato di seguito aggiunge un percorso ad uno schema denominato CommonUtils:
BROKER SCHEMA CommonUtils
PATH SpecialUtils;

MODULE ....
L'esempio successivo aggiunge un percorso allo schema predefinito:
PATH CommonUtils, SpecialUtils;

MODULE ....
Concetti correlati
Panoramica di ESQL
Attività correlate
Sviluppo di ESQL
Riferimenti correlati
Diagrammi di sintassi: tipi disponibili
Istruzioni ESQL
Istruzione BROKER SCHEMA
Istruzione CREATE MODULE
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ak05105_