Utilize as instruções a seguir para criar o fluxo de mensagens XML_CancelReservation. Para obter instruções mais detalhadas, clique nos links fornecidos no final de cada etapa.
Para criar e configurar o fluxo de mensagens XML_CancelReservation:
Gavetas de Paleta | Tipo de nó | Nome do Nó |
---|---|---|
WebSphere MQ | MQInput | XML_CANCELRESERVATION_IN |
WebSphere MQ | MQOutput | XML_CANCELRESERVATION_OUT |
WebSphere MQ | MQOutput | XML_CANCELRESERVATION_FAIL1_1 |
WebSphere MQ | MQOutput | XML_CANCELRESERVATION_FAIL1_2 |
WebSphere MQ | MQOutput | XML_CANCELRESERVATION_FAIL2 |
Transformação | Compute | DeleteReservation |
Transformação | Compute | IncrementSeat |
Construção | Rastrear | Rastrear |
Construção | Rastrear | Trace1 |
Construção | Rastrear | Trace2 |
Nome de Nó | Terminal | Conectar a |
---|---|---|
XML_CANCELRESERVATION_IN | Out | DeleteReservation |
Catch | XML_CANCELRESERVATION_FAIL1_1 | |
DeleteReservation | Falha | Rastrear |
Out | Trace1 | |
Rastrear | Out | XML_CANCELRESERVATION_FAIL1_2 |
Trace1 | Out | IncrementSeat |
IncrementSeat | Falha | Trace2 |
Out | XML_CANCELRESERVATION_OUT | |
Trace2 | Out | XML_CANCELRESERVATION_FAIL2 |
Nome de Nó | Ativo | Propriedade | Valor |
---|---|---|---|
XML_CANCELRESERVATION_IN | Básico | Nome da fila | XML_CANCELRESERVATION_IN (Esse valor é a fila local a partir da qual o fluxo de mensagens obtém a mensagem.) |
Análise de Mensagem de Entrada | Domínio de mensagem | XMLNSC: Para
mensagens XML (conhecimento de espaço de nomes, validação, baixa
utilização de memória) (Esse valor informa ao intermediário para utilizar o analisador XML genérico otimizado.) |
|
DeleteReservation | Básico | Origem de dados | RESERVDB (Esse valor é o banco de dados utilizado por esse nó). |
Básico | Módulo ESQL | DeleteReservation (Esse valor é o nome do módulo ESQL usado por esse nó durante o processamento. O nome deve corresponder ao nome na instrução CREATE COMPUTE MODULE no arquivo ESQL). |
|
Básico | Exceção emitida em erro do banco de dados | Limpe a caixa de opções para que você possa especificar no ESQL, como o fluxo de mensagens deve lidar com erros de banco de dados. Se a caixa de seleção estiver marcada, quando há um erro no banco de dados, o fluxo de mensagens por padrão produz uma exceção e transmite a mensagem para a fila FAIL. | |
Rastrear | Básico | Destino | Log de Erros Local (Esse valor instrui o nó a gravar as informações de rastreio no log de erros local. No Windows, o registro de erros local é o Visualizador de Eventos; no Linux, o registro de erros local é syslog). |
Básico | Padrão | ==== Erro ao Excluir nó Reservation ================== ${ExceptionList} (Esse valor registra a parte da árvore ExceptionList da mensagem.) |
|
Básico | Número de mensagem | 3051 | |
XML_CANCELRESERVATION_FAIL1_1 | Básico | Nome da fila (Não é necessário especificar o nome do gerenciador de filas porque a fila está definida no mesmo gerenciador de filas que o intermediário). |
XML_CANCELRESERVATION_FAIL1 (Esse valor é a fila local na qual o fluxo de mensagens coloca a mensagem se o processamento falhar). |
XML_CANCELRESERVATION_FAIL1_2 | Básico | Nome da fila (Não é necessário especificar o nome do gerenciador de filas porque a fila está definida no mesmo gerenciador de filas que o intermediário). |
XML_CANCELRESERVATION_FAIL1 (Esse valor é a fila local na qual o fluxo de mensagens coloca a mensagem se o processamento falhar). |
Trace1 | Básico | Destino | Log de Erros Local (Esse valor instrui o nó a gravar as informações de rastreio no log de erros local. No Windows, o registro de erros local é o Visualizador de Eventos; no Linux, o registro de erros local é syslog). |
Básico | Padrão | ========== Mensagem após Excluir nó Reservation =================== ${Root} ${Environment} (Esse valor registra a parte da árvore Mensagem e Ambiente da mensagem.) |
|
Básico | Número de mensagem | 3051 | |
IncrementSeat | Básico | Origem de dados | RESERVDB (Esse valor é o banco de dados utilizado por esse nó). |
Básico | Módulo ESQL | IncrementSeat (Esse valor é o nome do módulo ESQL usado por esse nó durante o processamento. O nome deve corresponder ao nome da instrução CREATE COMPUTE MODULE no arquivo XML_CancelReservation.esql). |
|
Trace2 | Básico | Destino | Log de Erros Local (Esse valor instrui o nó a gravar as informações de rastreio no log de erros local. No Windows, o registro de erros local é o Visualizador de Eventos; no Linux, o registro de erros local é syslog). |
Básico | Padrão | ======== Erro ao Incrementar nó Seat =================== ${ExceptionList} (Esse valor registra a parte da árvore ExceptionList da mensagem.) |
|
Básico | Número de mensagem | 3051 | |
XML_CANCELRESERVATION_FAIL2 | Básico | Nome da fila (Não é necessário especificar o nome do gerenciador de filas porque a fila está definida no mesmo gerenciador de filas que o intermediário). |
XML_CANCELRESERVATION_FAIL2 (Esse valor é a fila local na qual o fluxo de mensagens coloca a mensagem se o processamento falhar). |
XML_CANCELRESERVATION_OUT | Básico | Nome da fila (Não é necessário especificar o nome do gerenciador de filas porque a fila está definida no mesmo gerenciador de filas que o intermediário). |
XML_CANCELRESERVATION_OUT (Esse valor é a fila local na qual o fluxo de mensagens coloca a mensagem.) |
-- ************************************************ -- * ESQL para o fluxo de mensagens XML_CancelReservation -- ************************************************ CREATE COMPUTE MODULE DeleteReservation CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN DECLARE SQLState1 CHARACTER; DECLARE SQLErrorText1 CHARACTER; DECLARE SQLCode1 INTEGER; DECLARE SQLNativeError1 INTEGER; SET OutputRoot = InputRoot; DECLARE cancel REFERENCE TO InputRoot.XMLNSC.CancelReservation.ListOfReservations; DECLARE I INTEGER 1; DECLARE J INTEGER CARDINALITY(cancel.ReservationNumber[]); WHILE I <= J DO -- loop através de reservas a serem canceladas -- verifique se a reserva solicitada existe SET Environment.ListOfReservations.Info[I] = THE(SELECT T.CLASSTYPE, T.FLIGHTNO, T.FLIGHTDATE FROM Database.XMLPASSENGERTB AS T WHERE T.RESERVATIONNO = cancel.ReservationNumber[I]); IF (SELECT COUNT(*) FROM Environment.ListOfReservations.Info[I].*[] AS I1) IS NULL THEN THROW USER EXCEPTION CATALOG 'MyCatalog' MESSAGE 1234 VALUES('Nenhum registro para excluir'); END IF; -- delete the record from the database DELETE FROM Database.XMLPASSENGERTB AS T WHERE T.RESERVATIONNO = cancel.ReservationNumber[I]; SET I = I + 1; SET SQLCode1 = SQLCODE; IF SQLCode1 <> 0 THEN SET SQLState1 = SQLSTATE; SET SQLErrorText1 = SQLERRORTEXT; SET SQLNativeError1 = SQLNATIVEERROR; THROW USER EXCEPTION MESSAGE 2950 VALUES('The SQL State' , SQLState1 , SQLCode1 , SQLNativeError1 , SQLErrorText1); END IF; END WHILE; RETURN TRUE; END; END MODULE; CREATE COMPUTE MODULE IncrementSeat CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN DECLARE SQLState1 CHARACTER; DECLARE SQLErrorText1 CHARACTER; DECLARE SQLCode1 INTEGER; DECLARE SQLNativeError1 INTEGER; SET OutputRoot = InputRoot; DECLARE I INTEGER 1; DECLARE J INTEGER CARDINALITY(Environment.ListOfReservations.*[]); -- loop through the cancellations, updating the seat availability WHILE I <= J DO IF Environment.ListOfReservations.Info[I].CLASSTYPE = 'Y' THEN UPDATE Database.XMLFLIGHTTB AS T SET ECONOMICCLASS = T.ECONOMICCLASS-1, TOTALECONOMIC = T.TOTALECONOMIC+1 WHERE T.FLIGHTNO = Environment.ListOfReservations.Info[I].FLIGHTNO AND T.FLIGHTDATE = Environment.ListOfReservations.Info[I].FLIGHTDATE; END IF; IF Environment.ListOfReservations.Info[I].CLASSTYPE = 'F' THEN UPDATE Database.XMLFLIGHTTB AS T SET FIRSTCLASS = T.FIRSTCLASS-1, TOTALFIRST= T.TOTALFIRST+1 WHERE T.FLIGHTNO = Environment.ListOfReservations.Info[I].FLIGHTNO AND T.FLIGHTDATE = Environment.ListOfReservations.Info[I].FLIGHTDATE; END IF; SET I = I + 1; SET SQLCode1 = SQLCODE; IF SQLCode1 <> 0 THEN SET SQLState1 = SQLSTATE; SET SQLErrorText1 = SQLERRORTEXT; SET SQLNativeError1 = SQLNATIVEERROR; THROW USER EXCEPTION MESSAGE 2950 VALUES('The SQL State' , SQLState1 , SQLCode1 , SQLNativeError1 , SQLErrorText1); END IF; END WHILE; RETURN TRUE; END; END MODULE;