Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
Tutorial WebSphere Message Broker Com DB2
Alexandre J. B. e C. Carvalho Criado em: 11/03/08
Página
1
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
Índice 1.
OBJETIVOS DO DOCUMENTO ............................................................................................................... 4
2.
INTRODUÇÃO............................................................................................................................................. 4
3.
PASSO A PASSO .......................................................................................................................................... 4 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10
CRIAÇÃO DA TABELA “CADASTRO” ..................................................................................................... 4 CRIAÇÃO DO ODBC PARA A TABELA “CADASTRO” ............................................................................. 6 CRIAÇÃO DA WORKSPACE ........................................................................................................................ 7 CRIAÇÃO DO MESSAGE SET PROJECT E MESSAGE SET............................................................................. 8 CRIAÇÃO DO MESSAGE DEFINITION FILE E MENSAGENS .......................................................................... 9 CRIAÇÃO DO MESSAGE FLOW PROJECT E MESSAGE FLOW .....................................................................13 CRIAÇÃO DA REFERÊNCIA À TABELA.......................................................................................................14 CRIAÇÃO DO FLUXO ................................................................................................................................17 DEPLOY ..................................................................................................................................................23 TESTE......................................................................................................................................................31
4. REFERÊNCIAS ...............................................................................................................................................33
Criado em: 11/03/08
Página
2
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
Índice de figura Figura 1 - Criação do banco de dados “PORTAL”. ................................................................................. 5 Figura 2 - Criação da tabela “CADASTRO” no banco de dados “PORTAL”........................................... 5 Figura 3 - Campos da tabela "CADASTRO". .......................................................................................... 6 Figura 4 - Criação da conexão ODBC..................................................................................................... 6 Figura 6 - Teste da conexão ODBC. ....................................................................................................... 7 Figura 7 - Prompt de seleção da workspace........................................................................................... 7 Figura 8 - Criando um novo Message Set Project. ................................................................................. 8 Figura 9 - Nomeando um novo Message Set Project. ............................................................................ 8 Figura 10 - Criando um novo Message Set............................................................................................. 9 Figura 11 - Definindo o novo Message Set como XML........................................................................... 9 Figura 12 - Criando um novo arquivo de definição de mensagem. ...................................................... 10 Figura 13 - Criando um novo arquivo de definição de mensagem. ...................................................... 10 Figura 14 - Selecionando um Message Set onde criar o arquivo de definição de mensagem............. 11 Figura 15 - Criando elementos para a mensagem................................................................................ 11 Figura 16 - Elementos a serem criados. ............................................................................................... 12 Figura 17 - Criando uma mensagem..................................................................................................... 12 Figura 18 - Adicionando elementos a uma mensagem......................................................................... 12 Figura 19 - Mensagens de entrada e saída completas......................................................................... 13 Figura 20 - Alterando o label do título. .................................................................................................. 13 Figura 21 - Criando um novo Message Flow. ....................................................................................... 14 Figura 22 - Criando o arquivo de definição das tabelas do banco........................................................ 14 Figura 23 - Criando a conexão com o banco. ....................................................................................... 15 Figura 24 - Especificando parâmetros de conexão ao banco............................................................... 15 Figura 25 – Janela para adição de filtros. ............................................................................................. 16 Figura 26 - Definição de filtro para o retorno da tabela "CADASTRO". ................................................ 16 Figura 27 - Arquivos referentes à esttrutura da tabela e do banco....................................................... 17 Figura 28 - Nodes a serem utilizados neste fluxo. ................................................................................ 17 Figura 29 - Criando um novo Mapping. ................................................................................................. 18 Figura 30 - Configurando o novo Mapping............................................................................................ 18 Figura 31 - Definindo as mensagens de entrada e saída. .................................................................... 19 Figura 32 - Criando a cláusula SELECT. .............................................................................................. 19 Figura 33 - Cláusula SELECT completa no editor de expressões........................................................ 20 Figura 34 - Linha a ser apagada. .......................................................................................................... 20 Figura 35 - Campos correspondentes no mapeamento........................................................................ 21 Figura 36 - Mensagem de saída como "interna" ao SELECT do banco. .............................................. 22 Figura 37 - Configuração das propriedades do Trace Node................................................................. 22 Figura 38 - Nodes conectados. ............................................................................................................. 23 Figura 39 - Mudando de perspectiva..................................................................................................... 24 Figura 40 - Configurando a conexão do Domain. ................................................................................. 25 Figura 41 - Nomeando a conexão......................................................................................................... 26 Figura 42 - Pou-up para solicitação de confirmação............................................................................. 26 Figura 43 - Adicionando um Broker ao Domain. ................................................................................... 26 Figura 44 - Adicionando um Broker ao Domain. ................................................................................... 27 Figura 45 - Criando um Broker Archive File. ......................................................................................... 27 Figura 46 - Nomeando um Broker Archieve File. .................................................................................. 28 Figura 47 - Adicionando Message Set e Message Flow Projects ao BAR. .......................................... 29 Figura 48 - Projetos compilados no arquivo BAR. ................................................................................ 29 Figura 49 - "Drag and Drop" para facilitar o deploy............................................................................... 30 Figura 50 - Resposta do Configuration Manager. ................................................................................. 30 Figura 51 - Event Log. ........................................................................................................................... 31 Figura 52 - Mensagem de saída. .......................................................................................................... 32
Criado em: 11/03/08
Página
3
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
1. OBJETIVOS DO DOCUMENTO Esse documento tem como objetivo ajudar no manuseio da ferramenta IBM WebSphere Message Broker e fazer com que os integrantes da equipe de integração tenham uma noção sobre os recursos do software e como ele interage com outros aplicativos, no caso o DB2.
2. INTRODUÇÃO Este passo-a-passo descreve um fluxo que tem um XML contendo um único campo (ID) como entrada em uma fila MQ; este dado é utilizado para a realização de um “SELECT” na tabela “CADASTRO” do banco “PORTAL”. Os dados retornados deste “SELECT” são mapeados para um outro XML, que é colocado em outra fila MQ.
3. PASSO A PASSO 3.1 Criação da tabela “CADASTRO” 1) Entre no Centro de Controle do IBM DB2: Iniciar > Programas > IBM DB2 > Ferramentas Gerais de Administração > Centro de Controle 2) No poup-up “Visualização Centro de Controle”, clique OK; 3) Expanda o item “Todos os Sistemas” até chegar em “Bancos de Dados”; Clique com o botão direito em “Bancos de Dados” > “Criar banco de dados” > “Padrão”. Preencha como segue e clique em “Concluir:
Criado em: 11/03/08
Página
4
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
Figura 1 - Criação do banco de dados “PORTAL”.
4) Após criado, o banco “PORTAL” aparecerá em baixo de “Todos os bancos de dados”. Expanda e clique com o botão direito em “Tabelas” > Criar. Preencha como na figura e clique em “Avançar”:
Figura 2 - Criação da tabela “CADASTRO” no banco de dados “PORTAL”.
5) Em “Colunas”, preencha para que a tabela fique como na figura:
Criado em: 11/03/08
Página
5
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
Figura 3 - Campos da tabela "CADASTRO".
3.2 Criação do ODBC para a tabela “CADASTRO” 1) Iniciar > Configurações > Painel de Controle > Ferramentas Administrativas > Fontes de Dados (ODBC); 2) Na guia “Fontes de Dados do Sistema”, clique no botão “Adicionar”; 3) Escolha o driver “IBM DB2 ODBC driver” e clique em “Concluir”; 4) Prencha como na figura e clique em OK.
Figura 4 - Criação da conexão ODBC.
5) Para testar esta conexão, selecione PORTAL e clique em “Configurar”. Na nova janela, clique em “Conectar”. A mensagem “Conexão testada com sucesso” deve aparecer.
Criado em: 11/03/08
Página
6
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
Figura 5 - Teste da conexão ODBC.
3.3 Criação da workspace 1) Iniciar > Programas > IBM WebSphere Message Brokers 6.0 > WebSphere Message Brokers Toolkit 2) Selecione a workspace clicando em “Browse”. Aqui pode –se também criar uma nova pasta para ser a workspace clicando no botão “Criar nova pasta”.
Figura 6 - Prompt de seleção da workspace.
3) Feche a guia “Welcome”; Criado em: 11/03/08
Página
7
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
3.4 Criação do Message Set Project e Message Set 1) Clique com o botão direito na guia “Resource Navigator” e preencha conforme as figuras:
Figura 7 - Criando um novo Message Set Project.
Figura 8 - Nomeando um novo Message Set Project.
2) Clique em “Next”;
Criado em: 11/03/08
Página
8
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
Figura 9 - Criando um novo Message Set
3) Clique em “Next”;
Figura 10 - Definindo o novo Message Set como XML.
4) Clique em “Finish”;
3.5 Criação do Message Definition File e mensagens Criado em: 11/03/08
Página
9
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
1) Clique com o botão direito em “messageSet.mset” e siga as figuras :
Figura 11 - Criando um novo arquivo de definição de mensagem.
Figura 12 - Criando um novo arquivo de definição de mensagem.
2) Clique em “Next”;
Criado em: 11/03/08
Página
10
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
Figura 13 - Selecionando um Message Set onde criar o arquivo de definição de mensagem.
2) Clique em “Finish”; 3) Dê dois cliques em “bkr_db_bkr.mxsd”; 4) Clique com o botão direito em “Elements and Attrbutes”. Siga a figura.
Figura 14 - Criando elementos para a mensagem.
5) Renomeie o “Global Element 1” por “id” e mude o tipo para “int”. Criado em: 11/03/08
Página
11
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
6) Repita os passos de 4 e 5 para os seguintes atributos :
Figura 15 - Elementos a serem criados.
7) Clique com o botão direito em “Messages” e siga a figura:
Figura 16 - Criando uma mensagem.
8) Renomeie “message1” para “entrada”; 9) Clique com o botão direito na mensagem “entrada” > “Add Element Reference”; 10) Selecione o elemento “id”.
Figura 17 - Adicionando elementos a uma mensagem.
11) 12) 13) 14)
Clique novamente com o botão direito em “Messages” > “Add Message”. Renomeie “message1” para “saida”; Clique com o botão direito na mensagem “saida” > “Add Element Reference”; Selecione os elementos na seguinte ordem: Criado em: 11/03/08 Página 12
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
Figura 18 - Mensagens de entrada e saída completas.
15) Altere o nome dos tipos “complexType1” e “complexType2” para “entrada” e “saida”, respectivamente.
Figura 19 - Alterando o label do título.
16) Salve e feche todas as guias abertas.
3.6 Criação do Message Flow Project e Message Flow 1) Clique com o botão direito na guia “Resource Navigator” > “New” > “Message Flow Project”. Nomeie- o como “testeBanco”; 2) Clique em “Finish”; Criado em: 11/03/08
Página
13
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
3) Clique com o botão direito em “testeBanco” e siga a figura:
Figura 20 - Criando um novo Message Flow.
4) Nomeie o Message Flow como “bkr_db_bkr” e clique em “Finish”;
3.7 Criação da referência à tabela 1) Clique novamente com o botão direito em “testeBanco” e siga as figuras:
Figura 21 - Criando o arquivo de definição das tabelas do banco.
Criado em: 11/03/08
Página
14
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
Figura 22 - Criando a conexão com o banco.
2) Clique em “Next”; 3) Em “Alias”, preencha “PORTAL”;
Figura 23 - Especificando parâmetros de conexão ao banco.
Criado em: 11/03/08
Página
15
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
4) Clique em “Test Connection”. Se todos os passos foram realizados corretamente, a mensagem “Connection to PORTAL is successful” deve aparecer. Clique em “Next”. 5) Na parte inferior, selecione “Meet all conditions” e “Add”;
Figura 24 – Janela para adição de filtros.
10) Inclua o seguinte filtro:
Figura 25 - Definição de filtro para o retorno da tabela "CADASTRO".
11) Clique em “Finish”; 12) Em “Project”, coloque “testeBanco” e clique em “Finish”. Os objetos aparecerão no “Resource Navigator”:
Criado em: 11/03/08
Página
16
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
Figura 26 - Arquivos referentes à esttrutura da tabela e do banco.
3.8 Criação do fluxo 1) Expanda o projeto “testeBanco” e clique duas vezes em “bkr_db_bkr.msgflow”. 2) Expanda a Palette para vizualizar os nodes; 3) Clique no node desejado e o arraste até a área à direita. Os nodes a serem adicionados são os seguintes : - 1 MQInput - 1 MQOutput - 1 Mapping - 3 Trace Coloque- os na ordem que segue :
Figura 27 - Nodes a serem utilizados neste fluxo.
4) Clique com o botão dreito no node “MQInput” > Properties > Basic > Queue Name e preencha TESTEBANCO.IN. 5) Clique com o botão dreito no node “MQOutput” > Properties > Basic > Queue Name e preencha TESTEBANCO.OUT. Criado em: 11/03/08
Página
17
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
OBS: Essas duas filas que estamos configurando aqui são pré- requisitos e devem estar criadas no WebSphere MQ. 6) Clique com o botão direito no node “Mapping” > Open Map;
Figura 28 - Criando um novo Mapping.
7) Clique em “Next”;
Figura 29 - Configurando o novo Mapping.
8) Clique em “Next” nas duas telas; 9) Selecione os recursos de entrada e saída como na figura a seguir:
Criado em: 11/03/08
Página
18
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
Figura 30 - Definindo as mensagens de entrada e saída.
10) Clique em “Finish”. 11) Expanda o conteúdo do que está em “Source”. 12) Em “Map Script”, clique em “$db:select”.
Figura 31 - Criando a cláusula SELECT.
13) Apague o “fn:true()” e arraste o campo “ID” do banco “PORTAL” para o editor de expressões. Coloque o sinal de “=” e, em seguida, araste o campo “id” da mensagem “entrada”.
Criado em: 11/03/08
Página
19
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
Figura 32 - Cláusula SELECT completa no editor de expressões.
14) Expanda o “$db:select” e apague a linha que contém um “for”. Ao apagar, selecione “yes” na pergunta que aparecer.
Figura 33 - Linha a ser apagada.
14) Expanda a mensagem “saida” na área “target”. Aqui, vamos realizar o mapeamento em si, ou seja, arrastar quais dados vindos do banco serão colocados em qual tag do XML. Clique no Criado em: 11/03/08
Página
20
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
campo do banco, segure, arraste e solte em cima do correspondente no XML (target), como é mostrado na figura :
Figura 34 - Campos correspondentes no mapeamento.
15) No “Map Script”, clique, segure e arraste a linha “$target” para cima da linha “$db:select”. O “$target” agora está dentro do “$db:select”, como segue na figura. Salve e note que o warning que tínhamos no projeto desapareceu.
Criado em: 11/03/08
Página
21
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
Figura 35 - Mensagem de saída como "interna" ao SELECT do banco.
17) Feche esta guia (bkr_db_bkr_Mapping.msgmap). Voltaremos à guia “bkr_db_bkr.msgflow” para finalizarmos o fluxo. 18) Clique com o botão direito no node “Trace” > Properties, complete os campos conforme a figura e clique em “OK” :
Figura 36 - Configuração das propriedades do Trace Node.
OBSERVAÇÕES: - O diretório colocado em “File Path” deve existir. Criado em: 11/03/08
Página
22
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
- Copie o conteúdo do campo “Pattern”:
--------------- Body ------------------${Body} --------------- End Body ---------------------------- Env --------------------${Environment} --------------- End Env ------------------------------ Exception -------------${ExceptionList} --------------- End Exc ----------------
19) Repita o passo 18 para os nodes “Trace1” e “Trace2”, mudando o conteúdo do campo “File Path” para “C:\Trace\AfterMapping.txt” e “C:\Trace\AfterOutput.txt”, respectivamente. 20) Na “Pallete”, clique em Connection; Para fazer as conexões entre os nodes, basta clicar na saída desejada, segurar e arrastar ao destino. Faça as conexões de acordo com a seguinte figura:
Figura 37 - Nodes conectados.
21) Salve e feche todas as guias abertas. O fluxo está pronto !!
3.9 Deploy
Criado em: 11/03/08
Página
23
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
1) Mude para a perspectiva de administração : Clique no ícone “Open a perspective”destacado na figura > Other. Selecione “Broker Administration” e clique em “OK”.
Figura 38 - Mudando de perspectiva.
2) No canto inferior esquerdo, na guia “Domains”, clique com o botão direito > New > Domain. Nos três primeiros campos, deve haver respectivamente o nome da Queue Manager do Configuration Manager, o host da Queue Manager do Configuration Manager e a porta da Queue Manager do Configuration Manager, como segue:
Criado em: 11/03/08
Página
24
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
Figura 39 - Configurando a conexão do Domain.
3) Clique em Next. Lembre –se que neste momento, para que a conexão seja realizada com sucesso, os serviços realacionados ao Broker e ao Configuration Manager dever estar ativos, assim como os canais entre as Queue Managers do Broker e do Configuration Manager (caso se aplique). 4) Em “Connection Name”, coloque o nome da Queue Manager do Configuration Manager e clique em “Finish”.
Criado em: 11/03/08
Página
25
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista Figura 40 - Nomeando a conexão.
Figura 41 - Pou-up para solicitação de confirmação.
5) Clique com o botão direito em “Broker Topology” e siga as imagens:
Figura 42 - Adicionando um Broker ao Domain.
Criado em: 11/03/08
Página
26
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
Figura 43 - Adicionando um Broker ao Domain.
6) Clique em “Finish”. OBS: Warnings são normais neste ponto porque não há nenhum dado ainda no Broker. 7) Na guia “Broker Administration Navigator”, clique com o botão direito em “Broker Archives” e siga as imagens :
Figura 44 - Criando um Broker Archive File.
Criado em: 11/03/08
Página
27
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
Figura 45 - Nomeando um Broker Archieve File.
8) Na guia “testeBanco.bar”, clique em “Adicionar”. Marque os checkbox conforme a figura e clique em “OK”:
Criado em: 11/03/08
Página
28
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
Figura 46 - Adicionando Message Set e Message Flow Projects ao BAR.
9) Tenha certeza que nenhum erro ocorreu na adição. O arquivo “.bar” deve ficar como segue:
Figura 47 - Projetos compilados no arquivo BAR.
10) Clique em “testeBanco.bar”, segure e arraste para o execution group “default” Criado em: 11/03/08
Página
29
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
Figura 48 - "Drag and Drop" para facilitar o deploy.
10) Uma janela como a que segue deve aparecer em alguns instantes:
Figura 49 - Resposta do Configuration Manager.
11) Clique duas vezes em “Event Log” e observe as novas entradas. Se todos os passos foram seguidos corretamente, dois novos eventos serão lançados como “information” descrevendo que o deploy foi realizado com sucesso.
Criado em: 11/03/08
Página
30
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
Figura 50 - Event Log.
3.10 Teste 1) Popule a tabela “CADASTRO” com dados. Segue um exemplo: INSERT INTO db2admin.CADASTRO(NOME 'Xavier Curado', '9118'); INSERT INTO db2admin.CADASTRO(NOME 'Xavier Curado', '9118'); INSERT INTO db2admin.CADASTRO(NOME 'Xavier Curado', '9118'); INSERT INTO db2admin.CADASTRO(NOME 'Xavier Curado', '9118');
, ENDERECO, TELEFONE) VALUES ('Carina', , ENDERECO, TELEFONE) VALUES ('Alexandre', , ENDERECO, TELEFONE) VALUES ('Samuel', , ENDERECO, TELEFONE) VALUES ('Eduardo',
2) Coloque o seguinte XML na fila TESTEBANCO.IN (através do RFHUtil, por exemplo): <entrada> 0
3) Em instantes, esta mensagem deve estar na fila TESTEBANCO.OUT. Se todos os passos foram completados com scesso, a saída deve ser como esta:
Criado em: 11/03/08
Página
31
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
Figura 51 - Mensagem de saída.
Criado em: 11/03/08
Página
32
de
33
Tutorial Broker DB2 – C Carvalho e Alexandre J. Batista
4. REFERÊNCIAS [IBM 08] http://www.ibm.com/software/integration/wbimessagebroker/ [IBM2 08] http://www.redbooks.ibm.com/abstracts/sg247137.html
Criado em: 11/03/08
Página
33
de
33