As primitivas de mediação aceitam e processam mensagens para permitir que você altere seu formato, conteúdo e o fornecedor de serviço de destino. As primitivas de mediação possuem propriedades que determinam como uma mensagem será processada. Ao ligar um fluxo no editor de fluxos de mediação, você pode modificar as propriedades de nós e de primitivas de mediação.
Dica: Ligue os terminais de entrada e de saída de uma primitiva de mediação antes de configurar suas propriedades. Isto tornará seus tipos de mensagens de entrada e de saída conhecidos no editor e você economizará tempo quando configurar as propriedades.
O Nó de entrada propaga a mensagem para a primitiva ou nó ao qual está conectado. As propriedades a serem armazenadas no contexto da mensagem são especificadas na página de detalhes da visualização das propriedades do nó de entrada. Essas propriedades podem ser acessadas através de primitivas de mediação posteriores no fluxo.
Aqui está uma imagem das propriedades da página de detalhes do nó de entrada:
A primitiva de Transformação de XSL transforma mensagens de acordo com uma folha de estilo XSL que faz o mapeamento entre os tipos de mensagem de origem e de destino.
Aqui está uma imagem das propriedades da página de detalhes da primitiva Transformação de XSL.
No campo Raiz, selecione uma expressão XPath 1.0 para identificar a parte da mensagem que está disponível para a transformação.
No campo Arquivo de mapeamento:
No campo XSL Associado:
Selecione a caixa de opções Validar entrada para ativar a validação de mensagem de entrada para garantir que ela corresponda à definição de tipo no tempo de execução. Cancele essa caixa de opções para desativar a validação, se o desempenho for uma preocupação.
A primitiva Registrador de Mensagens faz o registro de uma cópia da mensagem para um banco de dados para futura recuperação ou auditoria.
Aqui está uma imagem das propriedades da página de detalhes da primitiva Registrador de Mensagens.
O Modo de transação define a transação dentro da qual as alterações do banco de dados serão confirmadas. Essa propriedade tem efeito apenas dentro de uma transação global. Por padrão, as transações dos componentes do fluxo de mediação não são globais. Para definir a transação do componente do fluxo de mediação para global, configure a propriedade do qualificador na página Implementação do componente no editor de montagem. Selecione uma das seguintes opções:
A primitiva Filtro de Mensagens compara o conteúdo da mensagem às expressões do XPath 1.0 e efetua o roteamento da mensagem para a próxima primitiva de mediação com base no resultado. É possível adicionar terminais de saída e associá-los à expressão do XPath configurada.
Terminais
Detalhes
Usaremos um exemplo para ilustrar o uso das propriedades na página de detalhes da visualização de propriedades da primitiva Filtro de Mensagens. No exemplo, se o valor do campo subscriptionLevel no corpo da mensagem for premium, a mensagem de entrada será propagada para o terminal denominado realtime. A imagem a seguir mostra as propriedades configuradas para o exemplo:
Na tabela Filtros, defina a filtragem executada pela primitiva de mediação. Cada linha na tabela representa um objeto de filtro que associa um padrão a um nome de terminal.
context/correlation/subscriptionLevel[self::node()="premium"]
Nota: A ordem dos filtros pode ser alterada usando os botões para cima e para baixo. É possível controlar o comportamento correspondente ao padrão usando a propriedade do modo de distribuição.
No campo Modo de distribuição, especifique o comportamento desejado quando mais de um padrão for avaliado como verdadeiro.
Caso nenhum terminal corresponda à mensagem, ela será propagada para o terminal padrão.
A primitiva Consulta do Banco de Dados procura por valores no banco de dados e os armazena na mensagem.
select SALARY from EMPLOYEE_TABLE where SERIAL_NUMBER = '049728'
O resultado, '50000' do tipo longo será armazenado no campo salário do corpo da mensagem.
Especifique as propriedades da primitiva na página Detalhes da visualização Propriedades.
No campo Nome da origem de dados, insira o nome JNDI da origem de dados. No exemplo, jdbc/sample/EmployeeDatabase
No campo Nome da tabela, insira o nome da tabela do banco de dados, incluindo o nome do esquema. No exemplo, myschema.EMPLOYEE_TABLE
No campo Nome da coluna-chave, insira o nome da coluna do banco de dados a ser usada na consulta. No exemplo, é SERIAL_NUMBER
No campo Caminho-chave, clique em Customizar XPath para ativar o XPath Expression Builder para construir uma expressão XPath. O valor retornado da expressão XPath é usado como chave no banco de dados. Neste caso, é o valor do serialNumber (049728) do corpo da mensagem.
Selecione a caixa de opções Validar entrada para ativar a validação de mensagem de entrada para garantir que ela corresponda à definição de tipo no tempo de execução. Cancele essa caixa de opções para desativar a validação, se o desempenho for uma preocupação.
Na tabela Elementos de dados, defina a coluna do banco de dados a partir da qual o valor será recuperado, o tipo de informação constante e o local na mensagem no qual o valor recuperado será armazenado. Cada elemento de dados possui três propriedades:
A primitiva Customizar Mediação permite implementar sua própria lógica de mediação utilizando código Java, ou chamar uma importação no mesmo módulo de mediação. .
Aqui está uma imagem das propriedades da página de detalhes da primitiva Customizar Mediação.
Clique em Definir para especificar uma interface e operação, que serão usadas para gerar uma referência de serviço para o componente que a primitiva está chamando.
O campo Referência de serviço exibe o nome da referência neste componente do fluxo de mediação que apresenta uma conexão física como o componente Java ou importação. Uma vez criada, essa referência também aparece como uma referência de destino na seção de Conexões de operação do editor.
Implementação
Especifique a implementação da primitiva na página de implementação da visualização Propriedades, conforme mostrado abaixo:
Selecione o botão de rádio Visual para implementar o código Java no editor Visual Snippet. Utilize as opções na paleta para montar expressões, links, atividades e nós de controle para criar seu snippet.
Selecione o botão de rádio Java para implementar o código Java no editor de Snippet Java. Digite o código Java na caixa de texto abaixo da assinatura do método.
Clique no botão Abrir Editor Java para iniciar o editor Java. Observe que a seleção dessa opção pode causar impacto no uso futuro do editor Java Snippet para essa mediação customizada.
Nota: use o editor de snippet visual ou Java caso seu código Java seja simples ou se você não estiver familiarizado com Java. Caso contrário, use o editor Java.