A cláusula PATH especifica uma lista de esquemas adicionais a serem
procurados ao corresponder chamadas de funções e de procedimentos para suas implementações. O esquema no qual a chamada se encaixa é incluído implicitamente na cláusula PATH.
A cláusula PATH é utilizada para resolver função não qualificada e
nomes de procedimentos nas ferramentas de acordo com o seguinte algoritmo.
Uma única função ou procedimento deve corresponder ao nome não qualificado
ou as ferramentas relatarão um erro. Você pode
corrigir o erro qualificando o nome da função ou procedimento com um
schemaId:
- No módulo atual (se houver algum) é feita uma procura por uma função ou procedimento correspondente. As
funções ou procedimentos no escopo do módulo são visíveis apenas no módulo que as contém. Se funções ou
procedimentos com o mesmo nome forem localizados no módulo e esquema atuais, as funções ou procedimentos no
escopo do módulo terão precedência sobre funções ou procedimentos com escopo definido pelo esquema.
- O <node schema> (mas nenhum de seus modules contidos) e o
<SQL-broker schema> ou os esquemas identificados pela cláusula PATH
são pesquisados quanto à função ou procedimento correspondente.
Nota: O schemaId deve ser um nome completo de esquema.
Ao iniciar uma função ou procedimento, o nome que você utiliza deve ser
qualificado pelo nome do esquema. O comportamento depende das circunstâncias:
No caso de uma rotina de módulo:
- Se o esquema for especificado, a rotina de esquema nomeada será iniciada.
As funções integradas escalares, excluindo CAST, EXTRACT e registros especiais, são
consideradas como definidas dentro de um esquema implicitamente declarado denominado
SQL.
- Se o esquema não for especificado e a instrução de chamada estiver em uma rotina
de módulo e a rotina do nome fornecido existir no módulo local, essa rotina local
será iniciada.
- Se o esquema não for especificado, e a instrução de chamada estiver em uma rotina do módulo, e não
existir uma rotina com o nome especificado no módulo local, em todos os esquemas no caminho de esquema será
feita uma procura por uma rotina com o mesmo nome.
Se existir uma função correspondente em um esquema, ela será
utilizada. Se existir uma função de correspondência em mais de um esquema, ocorrerá um erro de tempo de compilação. Se não houver função correspondente, o SQL do esquema será pesquisado.
Esta regra e a regra precedente implicam que uma rotina de módulo local tem prioridade
sobre uma rotina interna com o mesmo nome.
No caso de uma rotina de esquema:
- Se o esquema for especificado, a rotina de esquema nomeada será iniciada.
As funções integradas escalares, excluindo CAST, EXTRACT e registros especiais, são
consideradas como definidas dentro de um esquema implicitamente declarado denominado
SQL.
- Se o esquema não for especificado e o responsável pela chamada for uma rotina
de esquema e existir uma rotina do nome fornecido no esquema local, essa rotina
local será iniciada.
- Se o esquema não for especificado e a instrução de chamada estiver em uma rotina
de esquema e a rotina do nome fornecido não existir no esquema local,
será pesquisada uma rotina com o mesmo nome em todos os esquemas no caminho do esquema.
Se existir uma função correspondente em um esquema, ela será
utilizada. Se existir uma função de correspondência em mais de um esquema, ocorrerá um erro de tempo de compilação. Se não houver função correspondente, o SQL do esquema será pesquisado.
Esta regra e a regra precedente implicam que uma rotina de esquema local tem prioridade
sobre uma rotina interna com o mesmo nome.
O <esquema do nó> é definido como o esquema que contém
o fluxo de mensagens do nó.
O <node schema> é especificado desta
maneira para fornecer compatibilidade com versões anteriores do WebSphere Message Broker.
Quando o <esquema do nó> for o único esquema referenciado, a mensagem XML do broker não incluirá os recursos extras contidos no WebSphere Message Broker Versão 6.1.
Os
brokers de versões anteriores do
WebSphere Message Broker não suportam vários
esquemas, por exemplo, bibliotecas de sub-rotinas para reutilização. Para
implementar um broker em uma versão anterior do produto, coloque todas as
sub-rotinas ESQL no mesmo esquema do fluxo de mensagens e o nó que inicia as sub-rotinas
ESQL.
O conjunto de ferramentas do Eclipse usa a sintaxe ESQL do WebSphere Message Broker Versão 6.1 no assistente de conteúdo e na validação do código-fonte.
O esquema do broker do fluxo de mensagens deve conter, no nível do
esquema, qualquer um dos seguintes itens em seus arquivos ESQL:
- Uma função de nível de esquema
- Um procedimento de nível de esquema
- Uma constante de nível de esquema
- Uma constante de nível do módulo
- Uma variável de nível do módulo
Sem a presença de qualquer um dos itens precedentes, as
ferramentas Eclipse gerarão a ESQL do broker sem os wrappers Principais de módulo e função.
Os nomes de funções e procedimentos devem ser exclusivos em seu esquema ou módulo.
Exemplos
O exemplo a seguir
inclui um caminho em um esquema chamado CommonUtils:
BROKER SCHEMA CommonUtils
PATH SpecialUtils;
MODULE ....
O próximo exemplo inclui um caminho no esquema padrão:
PATH CommonUtils, SpecialUtils;
MODULE ....