Avançar para a área de conteúdo

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Todas as informações enviadas são seguras.

  • Fechar [x]

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Todas as informações enviadas são seguras.

  • Fechar [x]

Acessando o DB2 do WebSphere Message Broker usando procedimentos armazenados

Kavitha Suresh Kumar, Senior Staff Software Engineer, IBM
Photo of Kavitha Suresh Kumar
Kavitha Suresh Kumar é Senior Staff Software Engineer e Development Lead da equipe de desenvolvimento Service Integration Bus no IBM Software Lab em Bangalore, na Índia. Ela está na IBM há 10 anos e trabalhou nas equipes de WebSphere MQ, WebSphere Message Broker e Service Integration Bus. Além desses produtos, também possui conhecimentos relacionados à melhoria da qualidade de produtos usando melhores práticas da engenharia de software. Ela é bacharel em ciência da computação pela Universidade Bharathiar e possui MBA em gerenciamento de operações pela Indira Gandhi National Open University (IGNOU). É possível entrar em contato com Kavitha através do e-mail kavisuresh@in.ibm.com.

Resumo:  Procedimentos armazenados em bancos de dados podem ser acessados pelo WebSphere Message Broker usando ESQL, nós de bancos de dados e nós de mapeamento. Este artigo mostra como chamar procedimentos armazenados a partir de ESQL e como mapear procedimentos armazenados usando o nó de mapeamento.

Data:  16/Ago/2011
Nível:  Intermediário Também disponível em :   Inglês
Atividade:  921 visualizações
Comentários:  


Introdução

IBM® WebSphere® Message Broker (anteriormente chamado de Message Broker) interage com vários bancos de dados usando ESQL, programação Java, nós de bancos de dados e nós de mapeamento. Os procedimentos armazenados em bancos de dados podem ser acessados pelo Message Broker usando ESQL, nós de bancos de dados e nós de mapeamento. Este artigo usa dois cenários para mostrar como acessar procedimentos armazenados no DB2 a partir do Message Broker. O cenário Crédito e Débito mostra como acessar procedimentos armazenados no DB2 a partir do Message Broker usando ESQL. O cenário Recuperação de Informações de Funcionário mostra como acessar procedimentos armazenados no DB2 a partir do Message Broker usando o nó de mapeamento.

Pré-requisitos

Para beneficiar-se deste artigo, você deve ter alguma experiência com Message Broker, WebSphere MQ e DB2. Para usar os cenários deste artigo, faça download de developer_artifacts.zip na parte inferior do artigo. Você deve ter os seguintes produtos instalados:

  • WebSphere Message Broker Runtime V7
  • WebSphere Message Broker Toolkit V7
  • WebSphere MQ V7
  • DB2 V9.7

Acessando procedimentos armazenados no DB2 a partir do WebSphere Message Broker usando ESQL: cenário de Débito e Crédito

Configurando o DB2

  1. No DB2, selecione Open all programs => IBM DB2 => DB2COPY1 => Command Line Tools => Command Line Processor.
  2. Crie o banco de dados SAVG_ACC: db2 create database SAVG_ACC.
  3. Crie a tabela e o procedimento no banco de dados SAVG_ACC: Usando setupSavingsAccount.sql do arquivo transferido por download, execute o comando db2 -vf setupSavingsAccount.sql:

Listagem 1. Conteúdo do arquivo setupSavingsAccount.sql
                     
connect to SAVG_ACC
drop table "DB2SCHEMA".SAVINGS_ACCOUNT
create table "DB2SCHEMA".SAVINGS_ACCOUNT("ACCOUNT_NO" BIGINT NOT NULL, 
"ACCOUNT_NAME" VARCHAR(50) , "BALANCE" DOUBLE, PRIMARY KEY(ACCOUNT_NO))
INSERT into "DB2SCHEMA".SAVINGS_ACCOUNT VALUES(100003,'JOHN',25990.00)
INSERT into "DB2SCHEMA".SAVINGS_ACCOUNT VALUES(100004,'PETER',75125.00)
INSERT into "DB2SCHEMA".SAVINGS_ACCOUNT VALUES(100005,'ANDREW',72500.00)
INSERT into "DB2SCHEMA".SAVINGS_ACCOUNT VALUES(100006,'MARY',55000.00)
INSERT into "DB2SCHEMA".SAVINGS_ACCOUNT VALUES(100007,'DAVID',69800.00)
drop table "DB2SCHEMA".SAVINGS_ACCOUNT_TRANSACTION
create table "DB2SCHEMA".SAVINGS_ACCOUNT_TRANSACTION("ACCOUNT_NO" BIGINT NOT NULL, 
"ACCOUNT_NAME" VARCHAR(50) , "BALANCE" DOUBLE,"TRANSACTION_AMOUNT" DOUBLE, 
"TRANSACTION_STATUS" VARCHAR(50))
drop procedure "DB2SCHEMA".update_savings_account
CREATE PROCEDURE "DB2SCHEMA".update_savings_account(IN saccount_no INT,IN 
saccount_name CHAR(50), IN amount FLOAT,IN tran CHAR(10), OUT balance FLOAT,
OUT status CHAR(10)) LANGUAGE SQL   BEGIN  DECLARE SQLSTATE CHAR(5); 
DECLARE acc_no INT; DECLARE acc_name CHAR(50); DECLARE bal FLOAT; DECLARE stat CHAR(10);
DECLARE not_found CONDITION FOR SQLSTATE '02000'; DECLARE c1 CURSOR FOR SELECT 
ACCOUNT_NO, ACCOUNT_NAME , BALANCE FROM "DB2SCHEMA".SAVINGS_ACCOUNT WHERE 
ACCOUNT_NO = saccount_no AND ACCOUNT_NAME = saccount_name; DECLARE EXIT HANDLER FOR 
not_found  SET stat = 'NOT FOUND'; Open c1; Fetch c1 into acc_no,acc_name,bal; 
if (tran = 'DEBIT') then if ( amount < bal) then  SET bal = bal - amount ;  
UPDATE "DB2SCHEMA".SAVINGS_ACCOUNT SET BALANCE = bal WHERE ACCOUNT_NO = saccount_no 
AND ACCOUNT_NAME = saccount_name; SET stat = 'SUCCESS' ;INSERT into "DB2SCHEMA".
SAVINGS_ACCOUNT_TRANSACTION values (acc_no,acc_name,bal,amount,
'TRANSACTION COMPLETED SUCCESSFULLY');else SET stat = 'FAILURE' ;INSERT into 
"DB2SCHEMA".SAVINGS_ACCOUNT_TRANSACTION values (acc_no,acc_name,bal,amount,
'TRANSACTION FAILED - INSUFFICIENT FUNDS'); end if; elseif (tran = 'CREDIT') 
then SET bal = bal + amount ;  UPDATE "DB2SCHEMA".SAVINGS_ACCOUNT SET BALANCE = bal 
WHERE ACCOUNT_NO = saccount_no AND ACCOUNT_NAME = saccount_name; SET stat = 'SUCCESS';
INSERT into "DB2SCHEMA".SAVINGS_ACCOUNT_TRANSACTION values (acc_no,acc_name,
bal,amount,'TRANSACTION COMPLETED SUCCESSFULLY'); end if; SET balance = bal; 
SET status = stat;END Disconnect SAVG_ACC   

  1. Crie o banco de dados LOAN_ACC: db2 create database LOAN_ACC.
  2. Crie a tabela e o procedimento no banco de dados LOAN_AC: usando setupLoanAccount.sql do arquivo transferido por download, execute o comando: db2 -vf setupLoanAccount.sql:

Listagem 2. Conteúdo do arquivo setupLoanAccount.sql
                     
connect to LOAN_ACC
drop table "DB2SCHEMA".LOAN_ACCOUNT
create table "DB2SCHEMA".LOAN_ACCOUNT("ACCOUNT_NO" BIGINT NOT NULL, 
"ACCOUNT_NAME" VARCHAR(50) , "BALANCE" DOUBLE, PRIMARY KEY(ACCOUNT_NO))
INSERT into "DB2SCHEMA".LOAN_ACCOUNT VALUES(50005,'JOHN',2525000.00)
INSERT into "DB2SCHEMA".LOAN_ACCOUNT VALUES(50006,'PETER',1375000.00)
INSERT into "DB2SCHEMA".LOAN_ACCOUNT VALUES(50007,'ANDREW',237000.00)
INSERT into "DB2SCHEMA".LOAN_ACCOUNT VALUES(50008,'MARY',755000.00)
INSERT into "DB2SCHEMA".LOAN_ACCOUNT VALUES(50009,'DAVID',345000.00)
drop table "DB2SCHEMA".LOAN_ACCOUNT_TRANSACTION
create table "DB2SCHEMA".LOAN_ACCOUNT_TRANSACTION("ACCOUNT_NO" BIGINT NOT NULL, 
"ACCOUNT_NAME" VARCHAR(50) , "BALANCE" DOUBLE,"TRANSACTION_AMOUNT" DOUBLE, 
"TRANSACTION_STATUS" VARCHAR(50))
drop procedure db2schema.update_loan_account
CREATE PROCEDURE db2schema.update_loan_account(IN laccount_no INT,IN laccount_name 
CHAR(50), IN amount FLOAT, OUT balance FLOAT , OUT status CHAR(10)) LANGUAGE SQL
BEGIN  DECLARE SQLSTATE CHAR(5); DECLARE acc_no INT; DECLARE acc_name CHAR(50); DECLARE
bal FLOAT; DECLARE stat CHAR(10);DECLARE not_found CONDITION FOR SQLSTATE '02000';
DECLARE c1 CURSOR FOR SELECT ACCOUNT_NO, ACCOUNT_NAME , BALANCE FROM "DB2SCHEMA".
LOAN_ACCOUNT  WHERE ACCOUNT_NO = laccount_no AND ACCOUNT_NAME = laccount_name; 
DECLARE EXIT HANDLER FOR not_found SET stat = 'NOT FOUND'; Open c1; 
Fetch c1 into acc_no,acc_name,bal; if ( amount < bal) then SET bal = bal - amount ;  
UPDATE "DB2SCHEMA".LOAN_ACCOUNT SET BALANCE = bal WHERE ACCOUNT_NO = laccount_no; 
SET stat = 'SUCCESS' ; INSERT into "DB2SCHEMA".LOAN_ACCOUNT_TRANSACTION values 
(laccount_no,laccount_name,bal,amount,'TRANSACTION COMPLETED SUCCESSFULLY'); 
else SET stat = 'FAILURE'; end if; SET balance = bal; SET status = stat;
END Disconnect LOAN_ACC

Configurando o WebSphere MQ

  1. Crie um Gerenciador de Filas QM usando o comando: crtmqm QM.
  2. Inicie o Gerenciador de Filas QM: strmqm QM.
  3. Crie filas no Gerenciador de Filas QM: usando queues.def do arquivo transferido por download, execute o comando: runmqsc QM < queues.defs:

    Listagem 3. Conteúdo do arquivo queues.defs
                                   
    delete qlocal(SAVINGS_TO_LOAN_IN)          
    define qlocal(SAVINGS_TO_LOAN_IN)
    delete qlocal(SAVINGS_TO_LOAN_OUT)           
    define qlocal(SAVINGS_TO_LOAN_OUT)
    delete qlocal(SAVINGS_TO_LOAN_FAILURE)           
    define qlocal(SAVINGS_TO_LOAN_FAILURE)
        

Configurando o WebSphere Message Broker

  1. No WebSphere Message Broker, selecione Open All Programs => IBM WebSphere Message Broker => Command Console.
  2. Crie um Broker BROKER usando o comando: mqsicreatebroker BROKER -i <userid> -a <password> -q QM.
  3. Inicie o broker BROKER: mqsistart BROKER.
  4. Selecione Open All Programs => IBM WebSphere Message Broker Toolkit => IBM WebSphere Message Broker Toolkit 7.0 => WebSphere Message Broker Toolkit 7.0.
  5. Obtenha o arquivo de troca de projetos DebitCredit.zip do arquivo transferido por download na parte inferior do artigo, e importe-o para o kit de Ferramentas: selecione File => Import => Other => Project Interchange:

    Figura 1. DebitCreditFlow.msgflow


  1. O nó SAVINGS_TO_LOAN_IN MQInput recebe a mensagem da fila SAVINGS_TO_LOAN_IN MQ
  2. O nó de cálculo TransferLoanAmountFromSavings transfere a quantia da poupança para a conta de empréstimo se o número da conta estiver correto, se nome da conta for fornecido e se a conta poupança tiver saldo suficiente.
  3. Se a transação for bem-sucedida, a mensagem de sucesso é propagada para o nó SAVINGS_TO_LOAN_OUT MQOutput, que coloca a mensagem na fila SAVINGS_TO_LOAN_OUT MQ.
  4. Se a transação falhar, a mensagem de falha será propagada para o nó SAVINGS_TO_LOAN_FAILURE MQOutput, que colocará a mensagem da fila SAVINGS_TO_LOAN_FAILURE MQ.

Listagem 4. Chamada para procedimento armazenado e definição de procedimento no arquivo DebitCreditFlow.esql
                     
CALL update_savings_account( savings_acc_no, acc_name , amount ,transaction, 
    balance, stat) IN Database.SAVG_ACC.DB2SCHEMA;
CALL update_loan_account( loan_acc_no, acc_name , amount , 
    balance,stat) IN Database.LOAN_ACC.DB2SCHEMA;

CREATE PROCEDURE update_savings_account(IN account_no INT, IN account_name CHAR, 
    IN amount FLOAT, IN transaction CHAR, OUT balance FLOAT, OUT status CHAR) 
LANGUAGE DATABASE EXTERNAL NAME "update_savings_account";    

CREATE PROCEDURE update_loan_account(IN account_no INT, IN account_name CHAR, 
    IN amount FLOAT, OUT balance FLOAT, OUT status CHAR) LANGUAGE DATABASE 
EXTERNAL NAME "update_loan_account";

Testando o cenário de Débito e Crédito

  1. Na Application Development Perspective do Message Broker, abra a visualização Brokers.
  2. Clique com o botão direito do mouse em BROKER, selecione New execution group e insira DebitCredit.
  3. Abra DebitCreditFlow_deploy.mbtest.
  4. Clique em Send message.
  5. Selecione o grupo de execução DebitCredit e clique em Finish.

A mensagem de entrada é processada pelo fluxo, e a mensagem de saída é exibida:

  • No banco de dados SAVG_ACC, o procedimento armazenado update_savings_account atualizou a conta db2schema.savings_account e as tabelas de transação db2schema.savings_account_transaction.
  • No banco de dados LOAN_ACC, o procedimento armazenado update_loan_account atualizou as tabelas db2schema.loan_account e db2schema.loan_account_transaction.

Algumas mensagens de amostra para testar cenários de sucesso e de fracasso são fornecidas no arquivo de teste DebitCreditFlow_test.mbtest.

  1. Abra DebitCreditFlow_test.mbtest.
  2. Selecione Enqueue e, a seguir, clique em Send message.
  3. Selecione Dequeue e, a seguir, clique em Get message.

Artefatos fornecidos

  • Para configurar o banco de dados SAVG_ACC: setupSavingsAccount.sql
  • Para configurar o banco de dados LOAN_ACC: setupLoanAccount.sql
  • Para criar filas no WebSphere MQ: queues.defs
  • Projeto de fluxo de mensagens: DebitCredit.zip

Acessando procedimentos armazenados no DB2 a partir do WebSphere Message Broker usando o nó de mapeamento: cenário de Recuperação de Informações de Funcionários

Configurando o DB2

  1. Selecione Open All Programs => IBM DB2 => DB2COPY1 => Command Line Tools => Command Line Processor.
  2. Crie o banco de dados EMPLOYEE: db2 create database EMPLOYEE
  3. Crie a tabela e o procedimento no banco de dados EMPLOYEE: usando setupEmployee.sql do arquivo transferido por download, execute o comando: db2 -vf setupEmployee.sql:

Listagem 5. Conteúdo do arquivo setupEmployee.sql
                     
connect to EMPLOYEE
drop table "DB2SCHEMA".PERSONAL_DETAILS
create table "DB2SCHEMA".PERSONAL_DETAILS(EMPNAME VARCHAR(25) NOT NULL,
EMPNO BIGINT NOT NULL,AGE INT, SEX VARCHAR(10),MARITAL_STATUS VARCHAR(10),
NATIONALITY VARCHAR (20), PRIMARY KEY(EMPNO))
INSERT into "DB2SCHEMA".PERSONAL_DETAILS 
VALUES('SAM',11111,25,'MALE','SINGLE','AMERICAN')
INSERT into "DB2SCHEMA".PERSONAL_DETAILS 
VALUES('ALEX',22222,45,'MALE','MARRIED','BRITISH')
INSERT into "DB2SCHEMA".PERSONAL_DETAILS 
VALUES('LAURA',33333,22,'FEMALE','SINGLE','INDIAN')
drop table "DB2SCHEMA".EMPLOYMENT_DETAILS
create table "DB2SCHEMA".EMPLOYMENT_DETAILS(EMPNAME VARCHAR(25) NOT NULL, 
EMPNO BIGINT NOT NULL, TYPE VARCHAR(15), DEPT VARCHAR(15), YEARS_OF_EXP FLOAT,
CATEGORY VARCHAR(2),PRIMARY KEY(EMPNO))
INSERT into "DB2SCHEMA".EMPLOYMENT_DETAILS 
VALUES('SAM',11111,'REGULAR','SALES',4.2,'B')
INSERT into "DB2SCHEMA".EMPLOYMENT_DETAILS 
VALUES('ALEX',22222,'PARTTIME','HR',19,'E')
INSERT into "DB2SCHEMA".EMPLOYMENT_DETAILS 
VALUES('LAURA',33333,'REGULAR','MARKETING',1,'A')
drop table "DB2SCHEMA".PAYROLL_DETAILS
create table "DB2SCHEMA".PAYROLL_DETAILS(EMPNAME VARCHAR(25) NOT NULL, 
EMPNO BIGINT NOT NULL,SALARY DOUBLE, HRA DOUBLE,CONVEYENCE DOUBLE, RETIRALS DOUBLE, 
OTHER_BENEFITS DOUBLE, PRIMARY KEY(EMPNO))
INSERT into "DB2SCHEMA".PAYROLL_DETAILS 
VALUES('SAM',11111,28000.00,7000.00, 1600.00,2000.00,0.0)
INSERT into "DB2SCHEMA".PAYROLL_DETAILS 
VALUES('ALEX',22222,75000.00,18000.00,2400.00,10000.00,0.00)
INSERT into "DB2SCHEMA".PAYROLL_DETAILS 
VALUES('LAURA',33333,15000.00,3500.00,800.00,1000.00,0.0)
drop procedure db2schema.retrieve_employee_details
CREATE PROCEDURE db2schema.retrieve_employee_details(INOUT emp_name CHAR(25),
INOUT emp_no INT, OUT age INT, OUT sex CHAR(10) , OUT marital_status CHAR(10),
OUT nationality CHAR(20), OUT type CHAR(15), OUT dept CHAR(15), OUT exp FLOAT,
OUT cat CHAR(2),OUT salary DOUBLE,OUT hra DOUBLE, OUT convey DOUBLE, OUT 
retirals DOUBLE, OUT benefits DOUBLE )LANGUAGE SQL  BEGIN DECLARE SQLSTATE CHAR(5);
DECLARE ben DOUBLE;DECLARE not_found CONDITION FOR SQLSTATE '02000';
DECLARE c1 CURSOR FOR SELECT AGE,SEX,MARITAL_STATUS,NATIONALITY FROM "DB2SCHEMA".
PERSONAL_DETAILS  WHERE EMPNAME = emp_name AND EMPNO = emp_no; DECLARE c2 
CURSOR FOR SELECT TYPE,DEPT,YEARS_OF_EXP,CATEGORY FROM "DB2SCHEMA".EMPLOYMENT_DETAILS  
WHERE EMPNAME = emp_name AND EMPNO = emp_no;DECLARE c3 CURSOR FOR 
SELECT SALARY,HRA,CONVEYENCE,RETIRALS,OTHER_BENEFITS FROM "DB2SCHEMA".PAYROLL_DETAILS  
WHERE EMPNAME = emp_name AND EMPNO = emp_no;DECLARE EXIT HANDLER FOR
not_found SIGNAL SQLSTATE '20000' SET MESSAGE_TEXT = 'Employee Number not found';
Open c1; Fetch c1 into age,sex,marital_status,nationality;Open c2; Fetch c2 
into type,dept,exp,cat; Open c3; Fetch c3 into salary,hra,convey,retirals,benefits; 
if (cat ='A') then SET benefits=2000.00; elseif (cat ='B') then SET benefits=3000.00; 
elseif (cat ='C') then SET benefits=4000.00; 
elseif (cat ='D') then SET benefits=5000.00; 
elseif (cat ='E') then SET benefits=6000.00; 
else SET benefits=1000.00;end if; SET ben = benefits ;UPDATE "DB2SCHEMA".
PAYROLL_DETAILS SET OTHER_BENEFITS = ben WHERE EMPNAME = emp_name AND EMPNO = emp_no;END
Disconnect EMPLOYEE

  1. Crie o banco de dados MASTER: db2 create database MASTER
  2. Crie a tabela no banco de dados MASTER: usando setupMaster.sql do arquivo transferido por download, execute o comando: db2 -vf setupMaster.sql:

Listagem 6. Conteúdo do arquivo setupMaster.sql
                     
connect to MASTER
drop table "DB2SCHEMA".MASTER_TABLE
create table "DB2SCHEMA".MASTER_TABLE(EMPNAME VARCHAR(25) NOT NULL, 
EMPNO BIGINT NOT NULL,AGE INT, SEX VARCHAR(10),MARITAL_STATUS VARCHAR(10),NATIONALITY 
VARCHAR (20),TYPE VARCHAR(15), DEPT VARCHAR(15), YEARS_OF_EXP FLOAT,
CATEGORY VARCHAR(2), SALARY DOUBLE, HRA DOUBLE,CONVEYENCE DOUBLE, RETIRALS DOUBLE, 
OTHER_BENEFITS DOUBLE, PRIMARY KEY(EMPNO)) disconnect MASTER

Configurando o WebSphere MQ

  1. No prompt de comandos, crie e inicie o gerenciador de filas QM, conforme descrito acima em Configurando o WebSphere MQ para o cenário de Débito e Crédito.
  2. Crie filas no gerenciador de filas QM: usando queues_emp.def do arquivo transferido por download, execute o comando: runmqsc QM < queues_emp.defs:

    Listagem 7. Conteúdo do arquivo queues_emp.defs
                                   
    delete qlocal(EMP_IN)          
    define qlocal(EMP_IN)
    delete qlocal(EMP_OUT)           
    define qlocal(EMP_OUT)
        

Configurando o WebSphere Message Broker

  1. Crie e inicie o Broker BROKER, conforme descrito em Configurando o WebSphere Message Broker para o cenário de Débito e Crédito.
  2. Selecione Open All Programs => WebSphere Message Broker Toolkit => WebSphere Message Broker Toolkit 7.0 => WebSphere Message Broker Toolkit 7.0.
  3. Importe os arquivos de troca de projetos a seguir a partir do arquivo transferido por download para o Message Broker Toolkit: EmployeeDB.zip, Master.zip, EmployeeMessage.zip, Employee.zip.

Figura 2. Employee.msgflow

O nó EMP_IN MQInput recebe a mensagem de EMP_IN MQqueue. RetrieveEmployeeDetails_UpdateMasterTable obtém detalhes do funcionário de várias tabelas e, com base em suas classificações, concede a eles certos benefícios e insere as informações do funcionário em MASTER_TABLE no banco de dados MASTER. As informações completas do funcionário são propagadas para o nó EMP_OUT Output, que coloca a mensagem na fila EMP_OUT.


Figura 3. Employee_RetrieveEmployeeDetails.msgmap

A mensagem Employee e o procedimento armazenado retrieve_employee_details são incluídos como origens, e a mensagem Employee e a tabela de inserção MASTER_TABLE são incluídas como destino. EmployeeName e EmployeeNo da mensagem são passados como parâmetros para o procedimento armazenado. O procedimento armazenado retrieve_employee_details obtém os detalhes do funcionário das tabelas PERSONAL_DETAILS, EMPLOYMENT_DETAILS PAYROLL_DETAILS. Com base na classificação, o campo OTHER_BENEFITS na tabela PAYROLL_DETAILS é atualizado. Os campos nos procedimentos armazenados são mapeados para campos em Message Employee e MASTER_TABLE. Informações completas do funcionário são atualizadas em MASTER_TABLE em MASTER DATABASE e enviadas como mensagem de saída.

Testando o cenário de Recuperação de Informações do Funcionário

  1. Na Application Development Perspective do Message Broker, abra a visualização Brokers.
  2. Clique com o botão direito do mouse em BROKER, selecione New execution group e insira Employee.
  3. Abra Employee.mbtest.
  4. Clique em Send message.
  5. Selecione o grupo de execução Employee e clique em Finish.

A mensagem de entrada é processada pelo fluxo, e a mensagem de saída é exibida.

Artefatos fornecidos

  • Para configurar o banco de dados EMPLOYEE: setupEmployee.sql
  • Para configurar o banco de dados MASTER: setupMaster.sql
  • Para criar filas no WebSphere MQ: queues_emp.defs
  • Projeto de definição de banco de dados: EmployeeDB.zip
  • Projeto de definição de banco de dados: Master.zip
  • Projeto do conjunto de mensagens: EmployeeMessage.zip
  • Projeto de fluxo de mensagens: Employee.zip

Conclusão

Os dois cenários neste artigo mostraram como acessar procedimentos armazenados no DB2 a partir do WebSphere Message Broker usando ESQL e o nó de mapeamento. No cenário de Débito e Crédito, os detalhes da conta são passados para o DB2 e todas as operações do banco de dados são realizadas no banco de dados. No cenário de Recuperação de Informações de Funcionário, informações de funcionário de várias tabelas são recuperadas pelo procedimento armazenado.



Download

DescriçãoNomeTamanhoMétodo de download
Code sampledeveloper_artifacts.zip40 KBHTTP

Informações sobre métodos de download


Recursos

Sobre o autor

Photo of Kavitha Suresh Kumar

Kavitha Suresh Kumar é Senior Staff Software Engineer e Development Lead da equipe de desenvolvimento Service Integration Bus no IBM Software Lab em Bangalore, na Índia. Ela está na IBM há 10 anos e trabalhou nas equipes de WebSphere MQ, WebSphere Message Broker e Service Integration Bus. Além desses produtos, também possui conhecimentos relacionados à melhoria da qualidade de produtos usando melhores práticas da engenharia de software. Ela é bacharel em ciência da computação pela Universidade Bharathiar e possui MBA em gerenciamento de operações pela Indira Gandhi National Open University (IGNOU). É possível entrar em contato com Kavitha através do e-mail kavisuresh@in.ibm.com.

Ajuda para Relatar Abuso

Relatar abuso

Obrigado. Esta entrada foi sinalizada para atenção do moderador.


Ajuda para Relatar Abuso

Relatar abuso

Falha no envio do Relatório de abuso. Tente novamente mais tarde.


developerWorks: Registre-se


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Selecione seu nome de exibição

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

(Deve possuir de 3 a 31 caracteres.)


Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Classificar este artigo

Comentários

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=WebSphere, Information Management
ArticleID=752207
ArticleTitle=Acessando o DB2 do WebSphere Message Broker usando procedimentos armazenados
publish-date=08162011
author1-email=kavisuresh@in.ibm.com
author1-email-cc=

Conheça a IBM da sua cidade

Virtual Branch Office Brasil

A IBM está mais perto do que você imagina!


Tags

Help
Use o campo de pesquisa para encontrar todos os tipos de conteúdo no My developerWorks com essa tag.

Use a barra de rolagem para ver mais ou menos tags.

Tags populares mostra as principais tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Minhas tags mostra suas tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Use o campo de pesquisa para localizar todos os tipos de conteúdo no Meu developerWorks com essa tag. Tags populares mostra as tags principais para essa zona de conteúdo particular (por exemplo, tecnologia Java, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere). Minhas tags mostra as suas tags para essa zona de conteúdo em particular (por exemplo, tecnologia Java, Linux, WebSphere).