Quando os valores de ReplyToQ e de ID de Correlação da mensagem de solicitação original forem salvos em uma mensagem JMS para recuperação posterior, todo o JMSHeader é salvo em vez de apenas os detalhes de ReplyToQ e de ID de Correlação. Todo o JMSHeader é salvo porque há um requisito para armazenar e recuperar dois valores (ReplyToQ e ID de Correlação) e o nó JMSReceive 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ó JMSReceive.
É 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 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 e ID de Correlação em uma mensagem JMS em outros fluxos de mensagens.
É possível usar o subfluxo StoreOriginalJMSHeader_Sub nos seus fluxos de mensagens; esse subfluxo atua da mesma forma que salvar o JMSHeader em uma mensagem JMS. Para salvar o JMSHeader 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.
É 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 JMS, 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 desempenho 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 JMS, eles usam o mesmo gerenciador de recursos que as mensagens JMS que são lidas em outro lugar no fluxo de mensagens. Se as mensagens JMS 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.
É possível usar o subfluxo RestoreOriginalJMSHeader_Sub em outros fluxos de mensagens para recuperar o JMSHeader da mensagem de solicitação inicial a partir da mensagem JMS. Para recuperar o JMSHeader, 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.
É 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 usar o nó MQGet para ler uma mensagem, 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, se os dados não forem excluídos do banco de dados, o banco de dados continuará crescendo em tamanho e se tornará 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 JMS, eles usam o mesmo gerenciador de recursos que as mensagens JMS que são lidas em outro lugar no fluxo de mensagens. Se as mensagens JMS forem processadas apenas no fluxo de mensagens, apenas 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.