Estendendo a Amostra Coordinated Request Reply WebSphere MQ

Quando os valores de ReplyToQ e ReplyToQmgr da mensagem de solicitação original forem salvos em uma mensagem do WebSphere MQ para recuperação posterior, todo o MQMD é salvo em vez de apenas os detalhes de ReplyToQ e ReplyToQMgr. Todo o MQMD é salvo porque há um requisito para armazenar e recuperar três valores (ReplyToQ, ReplyToQmgr e CorrelID) e o nó MQGet pode armazenar ou recuperar apenas um valor único. Portanto, você deve salvar a estrutura que contém os valores que são necessários em vez de salvar os valores individuais. Quando alterar a amostra para armazenar valores diferentes, você deve considerar o comportamento do nó MQGet.

É possível usar suas próprias implementações de subfluxos que são usadas nos fluxos Solicitação e Resposta para substituir aquelas fornecidas na amostra. Por exemplo, você pode querer usar um banco de dados para armazenar o detalhe de ReplyToQ e ReplyToQmgr a partir da mensagem de solicitação inicial. Como alternativa, você pode querer usar os subfluxos que são usados para armazenar e recuperar os valores de ReplyToQ, ReplyToQmgr e CorrelID em uma mensagem JMS em outros fluxos de mensagens.

Reutilizando o subfluxo StoreOriginalMQMD_Sub

É possível usar o subfluxo StoreOriginalMQMD_Sub nos seus fluxos de mensagens; esse subfluxo atua da mesma forma que salvar o MQMD em uma mensagem do WebSphere MQ. Para salvar o MQMD da mensagem de solicitação, você deve incluir o subfluxo no ponto apropriado no fluxo de mensagens, no qual ele deve ser usado. É possível incluir o subfluxo sem modificação, mas você deve levar em conta as seguintes considerações:

Embora os parâmetros chave que podem ser alterados sejam identificados no texto anterior, você deve revisar todas as configurações de parâmetros nos nós dentro do subfluxo para assegurar que eles sejam compatíveis com os seus requisitos.

Usando uma implementação alternativa do subfluxo StoreOriginalMQMD_Sub

É possível modificar o subfluxo para usar um recurso de armazenamento alternativo para os dados, por exemplo, se escolher usar um banco de dados, ao invés de gravar uma mensagem do WebSphere MQ, o subfluxo deverá inserir dados em um banco de dados

A alteração do instrumento de armazenamento alterará as características de desempenho do subfluxo. É importante assegurar que as características da implementação que você escolheu são consistentes com os requisitos de desempenho para o fluxo de mensagens. Usar um banco de dados para manter as informações pode fazer com que o fluxo de mensagens fique mais limitado à E/S porque cada inserção no banco de dados requer uma gravação no log do gerenciador de banco de dados.

O uso de um recurso de armazenamento alternativo também pode alterar as propriedades transacionais do subfluxo. Quando dados são armazenados usando uma mensagem do WebSphere MQ, eles usam o mesmo gerenciador de recursos que as mensagens do WebSphere MQ que são lidas em outro lugar no fluxo de mensagens. Se as mensagens do WebSphere MQ forem processadas apenas no fluxo de mensagens, um único gerenciador de recursos estará envolvido. O uso de um banco de dados ou de outro gerenciador de recursos recuperável requer um protocolo de recuperação two-phase-commit entre o gerenciador de filas do WebSphere Message Broker e o gerenciador de banco de dados do banco de dados no qual os dados são armazenados para assegurar a integridade dos dados.

Quando estiver fazendo alterações, você deve revisar todas as configurações de parâmetros nos nós dentro do subfluxo para assegurar que eles sejam compatíveis com os seus requisitos.

Reutilizando o subfluxo RestoreOriginalMQMD_Sub

É possível usar o subfluxo RestoreOriginalMQMD_Sub em outros fluxos de mensagens para recuperar o MQMD da mensagem de solicitação inicial a partir da mensagem do WebSphere MQ. Para recuperar o MQMD, você deve incluir o subfluxo no ponto apropriado no fluxo de mensagens, no qual ele deve ser usado. É possível incluir o subfluxo sem modificação, mas você deve levar em conta as seguintes considerações:

Embora os parâmetros chave que você pode querer alterar sejam identificados no texto anterior, você deve revisar todas as configurações de parâmetros nos nós dentro do subfluxo para assegurar que eles sejam compatíveis com os seus requisitos.

Usando uma implementação alternativa do subfluxo RestoreOriginalMQMD_Sub

É possível modificar o subfluxo para usar um recurso de armazenamento alternativo para os dados, por exemplo, você pode querer usar um banco de dados para que, ao invés de usar o nó MQGet para ler uma mensagem do WebSphere MQ, o subfluxo pode ler dados a partir de um banco de dados

A alteração do instrumento de armazenamento alterará as características de desempenho do subfluxo. É importante assegurar que as características da implementação que você escolheu sejam consistentes com os requisitos de desempenho para seu fluxo de mensagens. O uso de um banco de dados para manter as informações pode incluir diferentes códigos extras, dependendo da implementação. Caso os dados sejam recuperados usando uma leitura, e não forem atualizados ou excluídos, o código extra estará em sua implementação de banco de dados mais inferior. No entanto, caso os dados não sejam excluídos do banco de dados, o banco de dados continua a crescer em tamanho e torna-se progressivamente mais lento para uso, a não ser que alguma organização seja feita no local. Caso o processo de recuperação envolva a atualização de uma linha, para indicar que os dados tenham sido recuperados, ou a exclusão de uma linha, essa ação envolve uma gravação para o registro do gerenciador de banco de dados, resultando em um código extra de processamento significativamente maior do que para o caso de leitura.

O uso de um recurso de armazenamento alternativo também pode alterar as propriedades transacionais do subfluxo. Quando dados são armazenados usando uma mensagem do WebSphere MQ, eles usam o mesmo gerenciador de recursos que as mensagens do WebSphere MQ que são lidas em outro lugar no fluxo de mensagens. Se as mensagens do WebSphere MQ forem processadas apenas no fluxo de mensagens, um único gerenciador de recursos estará envolvido. O uso de um banco de dados ou de um outro gerenciador de recursos recuperável requer usar um protocolo de recuperação two-phase-commit entre o gerenciador de filas do WebSphere Message Broker e o gerenciador de banco de dados do banco de dados no qual os dados são armazenados para assegurar a integridade dos dados.

Você deve revisar todas as configurações de parâmetros nos nós dentro do subfluxo para assegurar que eles sejam compatíveis com os seus requisitos.

Voltar para Home da Amostra