WebSphere Message Broker, Versão 8.0.0.5 Sistemas operacionais: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte as informações sobre a versão mais recente do produto em IBM Integration Bus, Versão 9.0

DatabaseRoute

Utilize o nó DatabaseRoute para rotear mensagens utilizando informações de um banco de dados juntamente com expressões XPath.

Este tópico contém as seguintes seções:

Propósito

O nó DatabaseRoute utiliza uma coleta de valores de coluna denominados de uma linha de banco de dados selecionada e aplica de maneira síncrona uma ou mais expressões XPath a estes valores adquiridos para tomar decisões de roteamento.

Para obter informações adicionais sobre a sintaxe da consulta XPath 1.0, consulte Especificação de W3C XPath 1.0.

O nó DatabaseRoute está contido no repositório do Banco de Dados da paleta do nó do fluxo de mensagens e é representado no WebSphere® Message Broker Toolkit pelo seguinte ícone:

Ícone do nó DatabaseRoute

Utilizando Este Nó em um Fluxo de Mensagens

Examine a amostra a seguir para ver como utilizar esse nó:

Você só pode visualizar informações sobre amostras quando usa o centro de informações que está integrado ao WebSphere Message Broker Toolkit ou o centro de informações on-line. Você só poderá executar amostras quando usar o centro de informações que está integrado ao WebSphere Message Broker Toolkit.

Os valores dos parâmetros de entrada que são necessários de elementos de mensagens na mensagem de entrada são suportados para inserção nas instruções preparadas que são utilizadas por esse nó. Esses valores são adquiridos de elementos nome, valor e nome-valor na mensagem de entrada analisada que chega. Os elementos são adquiridos inicialmente no formato de um objeto com.ibm.broker.plugin.MbElement, portanto, o intervalo de tipos de objetos Java™ suportados que os valores podem assumir é gerido pela interface desse objeto. Quando os valores estão no formato de tipos ou objetos primitivos Java, eles são convertidos para seu tipo de dados JDBC equivalente, conforme mostrado na tabela a seguir.
Componente JDBC
Número Inteiro INTEGER
Longo BIGINT
Double DOUBLE
BigDecimal NUMERIC
Boolean BIT
byte[] VARBINARY ou LONGVARBINARY
BitSet VARBINARY ou LONGVARBINARY
Cadeia VARCHAR ou LONGVARCHAR
MbTime java.sql.Time
MbTimestamp java.sql.Timestamp
MbDate java.sql.Date
Os valores são utilizados de um elemento somente se o elemento for de um tipo conhecido e o estado do valor for válido, caso contrário, uma exceção é emitida. Os valores da coluna Saída que são adquiridos no conjunto de resultados de consultas SQL que são realizadas por esse nó são convertidas primeiro para tipos Java correspondentes, em seguida, em tipos de valores internos de elementos da mensagem, conforme mostrado na tabela a seguir.
JDBC Java Tipo ESQL
SMALLINT Inteiro INTEGER
INTEGER Número Inteiro INTEGER
BIGINT Longo DECIMAL
DOUBLE Dupla FLOAT
REAL Dupla FLOAT
FLOAT Double FLOAT
NUMERIC BigDecimal DECIMAL
DECIMAL BigDecimal DECIMAL
BIT Booleano BOOLEAN
BOOLEAN Boolean BOOLEAN
BINARY byte[] BLOB
VARBINARY byte[] BLOB
LONGVARBINARY byte[] BLOB
CHAR String CHARACTER
VARCHAR String CHARACTER
LONGVARCHAR Cadeia CHARACTER
TINYINT byte[1] BLOB
TIME java.util.Date TIME
TIMESTAMP java.util.Date TIMESTAMP
DATE java.util.Date DATE
É possível rotear uma mensagem para o mesmo local, se uma consulta for bem sucedida com relação ao banco de dados especificado, conectando ambos os terminais de saída que não são de falhas ao mesmo local de saída.

Se for localizado um erro na expressão XPath de um padrão, ele será relatado durante a validação no WebSphere Message Broker Toolkit. A mensagem de erro relatada pode incluir a cadeia de expressão incorreta e seu nome de terminal associado dinâmico ou estático, ou a cadeia pode ser marcada como interrompida na tabela.

O nó precisa consultar informações que são utilizadas para formar uma consulta SQL select, que pode acessar diversas tabelas de um banco de dados utilizando diversas condições de teste. Às vezes, nem todas as informações que deseja recuperar em um conjunto de resultados está em uma única tabela de banco de dados. Para obter os valores de coluna que você deseja, você pode precisar recuperá-los de duas ou mais tabelas. Esse nó suporta a utilização de instruções SELECT que facilitam a obtenção de colunas de uma ou mais tabelas em um único conjunto de resultados. A sintaxe de junção típica que é suportada também é referida como uma junção interna.

As informação da junção interna que são coletadas para formar uma consulta incluem uma lista de valores de coluna qualificados da tabela a serem recuperados e uma lista de condições de teste, que formam a cláusula WHERE da instrução SELECT. Os valores de coluna qualificados da tabela podem formar o operando esquerdo em uma condição de teste. Escolha um operador de comparação para aplicar neste operando e, opcionalmente, especifique um operando direito para concluir a condição de teste. O operador pode ser um teste de comparação nulo, no qual nenhum operando direito é necessário. O valor do operando direito pode ser um tipo de banco de dados (tal como Integer, Boolean ou Long), outra coluna qualificada da tabela ou um valor que é adquirido de um elemento na mensagem que chega, conforme expressado através de uma expressão geral XPath 1.0.

Ao implementar um nó DatabaseRoute em um fluxo de mensagens, é possível selecionar um valor que é associado à propriedade Nome da Origem de Dados. A lista de valores contém referências para entradas existentes do provedor JDBC IBM® predefinido quando um broker é criado pela primeira vez. Estas entradas estão incompletas, portanto, é necessário modificá-las para acessar a definição de origem de dados com a qual deseja trabalhar. Se um provedor JDBC predefinido IBM padrão existente já estiver referenciado e sendo usado por outro nó de banco de dados JDBC que requeira configurações diferentes, use o WebSphere Message Broker Explorer; consulte Usando o WebSphere Message Broker Explorer para Trabalhar com Serviços Configuráveis para obter mais informações, ou o comando mqsicreateconfigurableservice para especificar uma nova entrada do provedor JDBC.

Use o WebSphere Message Broker Explorer ou o comando mqsideleteconfigurableservice para excluir quaisquer entradas do provedor JDBC indesejadas.

É possível excluir apenas serviços configuráveis com nomes customizados; não é possível excluir serviços configuráveis definidos pela IBM.

O nó DatabaseRoute tem um terminal de entrada e no mínimo quatro terminais de saída: Match, keyNotFound, Default e Failure. Os terminais de saída keyNotFound, Padrão e Falha são estáticos, portanto, eles estão sempre presentes no nó. O terminal de Correspondência dinâmico é criado automaticamente sempre que um novo nó DatabaseRoute é selecionado e utilizado no editor do Fluxo de Mensagens. Este comportamento significa que você nem sempre precisa criar este primeiro terminal de saída dinâmico do nó, que é o número mínimo de terminais necessários para este nó operar. Você pode renomear este terminal dinâmico se "Correspondência" não for um nome apropriado.

Uma mensagem será copiada para o terminal Padrão se as expressões de filtro forem true. Se ocorrer uma exceção durante a filtragem, a mensagem será propagada para o terminal de Falha. Se a consulta do banco de dados aplicada à origem de dados do nó produzir um conjunto de resultados vazio (ou seja, nenhuma linha de banco de dados é correspondida), uma mensagem é copiada para o terminal keyNotFound. O nó DatabaseRoute pode definir um ou mais terminais de saída dinâmicos. Para todos os terminais, a expressão de filtro associada é aplicada à mensagem de entrada e, se o resultado for verdadeiro, uma cópia da mensagem é roteada para o terminal específico.

Cada expressão de filtro na tabela Filtro pode ser aplicada a:
  • A Mensagem de Entrada
  • A coleta de valores de coluna denominados que são selecionados em uma linha de banco de dados correspondida
  • Os valores da mensagem de entrada e da coluna retornada
  • Nenhum dos dois
pois expressões podem ser qualquer expressão XPath 1.0 geral.

Como com o nó Route, as expressões são aplicadas na ordem que são fornecidas na tabela de filtros. Se o resultado for true, uma cópia da mensagem será roteada para seu terminal de saída dinâmico associado. Se você configurar a propriedade Modo de Distribuição para primeiro, o aplicativo de todas as expressões de filtro podem não ocorrer.

A expressão de filtro pode falhar se você comparar um valor de coluna retornado a uma cadeia literal. Como uma entrada da coluna é armazenada (por exemplo, um campo de caractere de comprimento fixo) determina o que é retornado para uma coluna específica do banco de dados. Ocorre preenchimento de espaço em branco para campos de caracteres de comprimento fixo que são recuperados a partir de um banco de dados, onde o valor que é armazenado é menor que o comprimento de armazenamento de caracteres da coluna especificado. Neste caso, o preenchimento ocorre à direita da cadeia de caracteres retornada, formando parte da cadeia. Você deve lembrar disto quando comparar um valor de coluna desse tipo com uma cadeia literal, porque uma expressão de comparação de igualdade pode falhar se o literal não contiver exatamente a mesma cadeia, incluindo os caracteres de preenchimento.

Por exemplo, em uma tabela chamada Employee, uma coluna de banco de dados chamada LastName que é definida como char(10) com o valor 'Smith' é retornada como 'Smith ', portanto, a expressão de filtro deve ser:
$Employee_LastName = 'Smith     '
que é resolvida como true. A expressão:
$Employee_LastName = 'Smith'
é resolvida como false.
Como alternativa, a expressão XPath pode utilizar a seguinte função:
Função: string normalize-space(string?)   
A função normalize-space retorna a cadeia de argumento com espaço em branco normalizado tirando o espaço em branco inicial e final e substituindo sequências de caracteres de espaço em branco por um único espaço. Portanto, a expressão é:
normalize-space($Employee_LastName) = 'Smith'

Disponibilizando o Serviço do Provedor JDBC para o Nó DatabaseRoute

O nó DatabaseRoute constrói suas conexões JDBC utilizando detalhes da conexão que estão armazenados no registro do broker como um serviço configurável. Os serviços configuráveis do JDBCProvider são fornecidos para todos os bancos de dados suportados. Utilize o comando mqsichangeproperties para modificar as configurações do serviço fornecido para seu banco de dados escolhido ou crie um novo serviço utilizando o comando mqsicreateconfigurableservice. Consulte Configurando um Provedor JDBC para Conexões Tipo 4 para obter informações e assistência adicional sobre como trabalhar com serviços do JDBCProvider. Você deve configurar um serviço de JDBCProvider diferente para cada banco de dados ao qual você deseja se conectar.

Nota: A propriedade maxConnectionPoolSize não se aplica às conexões JDBC usadas pelos nós DatabaseRetrieve ou DatabaseRoute.

Quando tiver definido o serviço, configure a propriedade Nome da Origem de Dados desse nó para o nome do serviço do JDBCProvider; os atributos do serviço são utilizados para estabelecer conexões para o nó DatabaseRoute.

Você deve parar e reiniciar o broker para que suas alterações tenham efeito, a menos que tenha a intenção de criar um novo grupo de execução no broker para o qual implementará o fluxo de mensagens que contém esse nó.

Usando a Visualização Data Source Explorer para Consultar Origens de Dados

Use a visualização Data Source Explorer para descobrir os nomes de tabelas em um banco de dados de destino e os nomes de quaisquer colunas nessas tabelas. Você deve importar definições de banco de dados de seus bancos de dados para o WebSphere Message Broker Toolkit antes de visualizá-las na visualização Data Source Explorer.
  1. Alterne para o Perspectiva do Desenvolvimento de Aplicativos do Intermediário.
  2. Na visualização Data Source Explorer, expanda Conexões. As conexões com o banco de dados são listadas.
  3. Expanda uma conexão com o banco de dados para listar os bancos de dados, em seguida, expanda o banco de dados apropriado.
  4. Expanda Esquemas para listar os esquemas, em seguida, expanda o esquema apropriado.
  5. Expanda Tabelas para listar todas as tabelas.
  6. Clique em uma tabela para mostrar suas propriedades na visualização Propriedades.
  7. Na visualização Propriedades, clique na guia Colunas para visualizar os nomes de colunas.

Configurando o Nó DatabaseRoute

Quando tiver colocado uma instância do nó DatabaseRoute em um fluxo de mensagens, você poderá configurá-lo. Para obter informações adicionais, consulte Configurando um Nó do Fluxo de Mensagens. As propriedades do nó são exibidas na visualização Propriedades.

Todas as propriedades obrigatórias para as quais é necessário digitar um valor (aquelas que não têm um valor padrão definido) são marcadas com um asterisco.

Exemplo

Considere o seguinte exemplo, que utiliza uma tabela de banco de dados chamada Employee.
EmployeeNumber FamilyName FirstName Salary
00001 Smith John 20000
00002 Jones Harry 26000
00003 Doe Jane 31000
As seguintes propriedades do nó DatabaseRoute estão configuradas conforme especificado:
Nome da Tabela Nome da Coluna Operador Tipo do Valor Valor
Employee FamilyName ASC Nenhuma Nenhuma
Employee Salary ASC Nenhuma Nenhum(a)
Employee EmployeeNumber = Elemento $Body/EmployeeRecord/EmployeeNumber
O nó DatabaseRoute conecta a tabela de banco de dados Employee e extrai o valor a ser comparado de cada mensagem que chega. A expressão XPath utilizada para navegar para o corpo da mensagem é $Body/EmployeeRecord/EmployeeNumber. A consulta SQL é:
SELECT Employee.FamilyName, Employee.Salary
FROM Employee
WHERE EmployeeNumber=?
ORDER BY Employee.FamilyName ASC, Employee.Salary ASC
em que ? é o valor que é recuperado da mensagem que chega. Esse valor é localizado através da propriedade Valor na terceira linha da tabela de elementos de consulta, que tem um tipo de valor igual a Elemento.
  • Se o valor neste local for 00001, as informações para John Smith serão recuperadas. A primeira expressão XPath, que é associada ao terminal dinâmico out_expr1, não é atendida, portanto, não atende sua condição e nenhuma mensagem será propagada ao terminal de Saída. A segunda expressão XPath é atendida, para que uma cópia da mensagem de entrada seja roteada para o terminal dinâmico out_expr2.
  • Se o valor neste local for 00002, as informações para Harry Jones serão recuperadas. A primeira expressão XPath, que é associada ao terminal dinâmico out_expr1, é atendida, de forma que uma cópia da mensagem de entrada é roteada para o terminal out_expr1. A segunda expressão XPath não foi processada porque a propriedade Modo de Distribuição está configurada como First.

Terminais

Os terminais do nó DatabaseRoute são descritos na tabela a seguir.

Terminal Descrição
Entrada O terminal de entrada estático que aceita uma mensagem para processamento pelo nó.
Correspondência Um terminal de saída dinâmico ao qual a mensagem original pode ser roteada quando o processamento for concluído com êxito. É possível criar terminais dinâmicos adicionais; consulte Terminais Dinâmicos.
Default O terminal de saída estático para o qual a mensagem será roteada se nenhuma expressão de filtro for resolvida como true.
keyNotFound O terminal de saída estático para o qual a mensagem é copiada se nenhuma linha do banco de dados corresponder.
Falha O terminal de saída a para o qual a mensagem será roteada se for detectada uma falha durante o processamento.

Terminais Dinâmicos

O nó DatabaseRoute pode ter terminais de saída dinâmicos adicionais. Nem todos os terminais de saída dinâmicos criados em um nó DatabaseRoute precisam ser mapeados para uma expressão na tabela de filtros. Para terminais de saída dinâmicos não mapeados, as mensagens nunca são propagadas para eles. Várias expressões podem ser mapeadas para o mesmo terminal de saída dinâmico único. Para obter informações adicionais utilizando os terminais dinâmicos, consulte Utilizando Terminais Dinâmicos.

Properties

As tabelas a seguir descrevem as propriedades do nó. A coluna com cabeçalho M indica se a propriedade é obrigatória (marcada com um asterisco caso seja necessário digitar um valor quando nenhum padrão for definido); a coluna com cabeçalho C indica se a propriedade é configurável (você poderá alterar o valor quando incluir o fluxo de mensagens ao arquivo BAR para implementá-lo).

As propriedades Descrição do nó DatabaseRoute são descritas na tabela a seguir.
Propriedade M P Default Descrição
Nome do Nó Não Não O tipo de nó, DatabaseRoute O nome do nó.
Descrição Breve Não Não   Uma breve descrição do nó.
Descrição Longa Não Não   Texto que descreve a finalidade do nó no fluxo de mensagens.
As propriedades Básicas do nó DatabaseRoute são descritas na tabela a seguir.
Propriedade M P Default Descrição Propriedade do Comando mqsiapplybaroverride
Nome da Origem de Dados Sim Sim DB2 O alias que é utilizado para localizar a definição do serviço de JDBCProvider que está armazenado no registro do broker. O alias é utilizado para localizar e construir a URL da conexão JDBC para conexão com um DBMS. A URL de conexão é específica do driver, mas inclui o nome do banco de dados ao qual se conectar.

Se a conexão com o banco de dados for feita por uma conta e senha de login, o nó também utilizará esta propriedade como uma chave de consulta, por meio da qual estes valores podem ser adquiridos de uma entrada DNS do registro do broker correspondente esperada.

Se o DBMS for protegido por senha, defina o parâmetro -n no comando mqsisetdbparms para a chave de segurança JDBC antes de implementar o fluxo de mensagens que contém este nó DatabaseRoute.

dataSource
Elementos de Consulta Sim Não   Uma tabela de elementos de consulta que são utilizados para compor uma única instrução SQL select. A tabela consiste em cinco colunas e uma ou mais linhas. As colunas são Nome da Tabela, Nome da Coluna, Operador, Tipo de Valor e Valor. Essas cinco propriedades descrevem um elemento de consulta, indicando um valor de coluna qualificado da tabela a ser recuperado de um banco de dados. Nesse caso, o elemento forma parte das cláusulas SELECT e ORDER BY na consulta gerada. Caso contrário, o elemento de consulta age como uma condição de teste que forma um predicado na cláusula WHERE na consulta gerada.  
Nome da Tabela Sim Não   O nome de uma tabela de banco de dados que forma parte da instrução SQL select, incluindo o nome do esquema; por exemplo, myschema.mytable.  
Nome da Coluna Sim Não   O nome da coluna na tabela de banco de dados a ser recuperada no conjunto de resultados, conforme qualificado pelo valor da propriedade Nome da Tabela. Esta cláusula SELECT pode referir-se a este nome como um valor de coluna para retornar de uma consulta ou para ser referenciado em uma condição de teste na cláusula WHERE.  
Operador Sim Não   Um operador de comparação para aplicar em um operando esquerdo (a coluna da tabela que é especificada nas primeiras duas colunas da linha) e, opcionalmente, um valor de operando direito. Se você especificar um valor de operador Crescente 'ASC' ou Decrescente 'DESC' para esta propriedade, esta linha significa a declaração de uma coluna qualificada da tabela que forma parte das cláusulas SELECT e ORDER BY na consulta gerada e, opcionalmente, pode ser referenciada em linhas futuras como um valor de operando direito.  
Tipo do Valor Sim Não   Um valor configurado para Nenhum ou que indique o tipo de valor que é expressado na última coluna dessa linha. Se essa propriedade não estiver configurada para Nenhum, ela refere-se a uma linha que descreve uma condição de teste na cláusula WHERE da instrução SQL select.  
Valor Sim Não   Um valor que é configurado como Nenhum ou que especifica um de um conjunto especificado de tipos de propriedades conforme expresso pela propriedade Tipo de Valor. Por exemplo, se a propriedade Tipo de Valor estiver definida como Elemento, a propriedade Valor coleta uma expressão XPath 1.0 geral. O valor que é retornado da expressão quando ela é aplicada na mensagem que chega do nó é utilizado como o valor do operando direito a ser comparado através deste predicado. O valor comparado do operando direito deve corresponder ao tipo que é recuperado para a coluna da tabela que é comparada em relação ao operando esquerdo. Expressões complexas são possíveis, onde zero ou mais valores podem ser adquiridos da mensagem que chega e manipulados para formar um único valor para comparação. Por exemplo, a soma de diversos valores de campos na mensagem de entrada pode ser calculada por uma expressão geral apresentada para um tipo de valor Elemento.  
Modo de distribuição Não Sim Todos Esta propriedade especifica o comportamento do roteamento deste nó quando uma mensagem de entrada corresponde a várias expressões. Se a propriedade Modo de Distribuição estiver configurada como First, a mensagem será propagada para o primeiro terminal de saída correspondente. Se a propriedade Modo de Distribuição estiver configurada como All, a mensagem será propagada para todos os terminais de saída correspondentes. Se não houver nenhum terminal de saída correspondente, a mensagem será propagada para o terminal Padrão.  
As propriedade Tabela de Expressões de Filtro do nó DatabaseRoute são descritas na tabela a seguir.
Propriedade M P Default Descrição
Tabela de filtros Sim Não   Uma tabela filtros (expressões de gerais XPath 1.0) e nomes de terminais associados que definem qualquer filtragem extra executada por esse nó. A tabela consiste em duas colunas e uma ou mais linhas. Você deve especificar pelo menos uma linha dessa tabela para que o nó possa executar a lógica de roteamento. Como com o nó do Route, as expressões são avaliadas na ordem em que são exibidas na tabela. Para aprimorar o desempenho, coloque as expressões XPath que são atendidas com mais freqüência na parte superior da tabela de filtro.
As propriedades Monitoramento do nó são descritas na tabela a seguir.
Propriedade M P Default Descrição
Eventos Não Não Nenhum Eventos definidos para o nó são exibidos nesta guia. Por padrão, nenhum evento de monitoramento é definido em um nó do fluxo de mensagens. Utilize Incluir, Editar, e Excluir para criar, alterar ou excluir eventos de monitoração no nó; consulte Configurando fontes de eventos de monitoramento utilizando propriedades de monitoramento para detalhes.

É possível ativar e desativar eventos mostrados aqui selecionando ou desmarcando a caixa de opções Ativado.

Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última atualização:
        
        Última atualização: 2015-02-28 18:28:39


Tópico de ReferênciaTópico de Referência | Versão 8.0.0.5 | ac37380_