![[IBM i]](../images/iseries.gif)
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
Logs de Transação e Compensação de Armazenamento em um Banco de Dados Relacional para Alta Disponibilidade
Opcionalmente, é possível escolher armazenar os logs de transação e compensação do WebSphere Application Server em um banco de dados relacional em vez de como arquivos do sistema operacional. Este recurso fornece o suporte de alta disponibilidade (HA) sem que seja necessário usar um sistema de arquivo compartilhado.
Sobre Esta Tarefa
O serviço de transações do WebSphere Application Server grava informações em um log de transação para cada transação global que envolve dois ou mais recursos ou que é distribuída entre vários servidores. Essas transações são iniciadas ou paradas por aplicativos ou pelo contêiner no qual são implementados. O serviço de transações mantém logs de transação para assegurar a integridade das transações. As informações são gravadas nos logs de transação na fase de preparação de uma transação distribuída. Se um WebSphere Application Server com transações ativas reiniciar após uma falha, o serviço de transação será capaz de usar os logs para reproduzir qualquer transação indeterminada. Esse nível de integridade permite que o sistema geral seja retornado a um estado consistente.
Nas liberações anteriores do WebSphere Application Server, os logs de transação eram armazenados como arquivos de sistema operacional. No WebSphere Application Server Versão 8.5.5 e posterior, esta configuração permanece a configuração padrão. Também é possível escolher armazenar os logs de transações em um banco de dados relacional. Essa opção de configuração é usada principalmente por um ambiente de alta disponibilidade (HA). Além disso, nas liberações anteriores do WebSphere Application Server, para o suporte de transação de HA era necessário usar um sistema de arquivo compartilhado para hospedar os logs de transações, com um armazenamento conectado à rede (NAS) montada no NFSv4 ou uma rede de área de armazenamento (SAN). Este novo recurso permite que você, principalmente se tiver um investimento em tecnologia de banco de dados de HA, use seu banco de dados de HA como um repositório compartilhado para os logs de transações como uma alternativa ao uso de um sistema de arquivo compartilhado.
Na implementação atual, se exceções JDBC inesperadas forem encontradas pela função de log de recuperação principal, a criação de log de transações será desativada e o servidor deverá ser encerrado para que as transações em andamento possam ser recuperadas. Não será feita nenhuma tentativa de reconexão até que o servidor seja reiniciado e nenhuma tentativa pela implementação atual para determinar se a condição é temporária.
No WebSphere Application Server Versão 8.5.5 e posterior, é possível usar um recurso semelhante, também indicado a clientes que estão trabalhando em um ambiente de HA, para armazenar os logs de recuperação de compensação em um banco de dados relacional. O serviço de compensação do WebSphere Application Server permite que os aplicativos em sistemas diferentes coordenem atividades que são mais fracamente acopladas que as transações atômicas. Ele armazena informações que são necessárias para executar compensação após uma falha do sistema em seus próprios logs de recuperação dedicados.

(2 * o número de servidores potenciais em uma recuperação peer) + 2
Esse tamanho do conjunto máximo permite conexões suficientes com o banco de dados para fechar todos os log de transações relacionados. Não ter um tamanho do conjunto máximo configurado para esse valor pode levar à mensagem de erro J2CA0045E, pois não há conexões suficientes disponíveis.gotchaProcedimento
- AppClusterMember1
- AppClusterMember2
- AppClusterMember3
- AppClusterMember4
- App1 para AppClusterMember1
- App2 para AppClusterMember2
- App3 para AppClusterMember3
- App4 para AppClusterMember4
Conclua as etapas a seguir:
Exemplo
Nome do cluster | Nome do servidor | Tabela de log de transações | Tabela de logs de compensação |
---|---|---|---|
AppCluster | AppClusterMember1 | custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App1 | custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App1 |
AppClusterMember2 | custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App2 | custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App2 | |
AppClusterMember3 | custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App3 | custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App3 | |
AppClusterMember4 | custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App4 | custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App4 |
- AppClusterMember1
- AppClusterMember2
- AppClusterMember3
- AppClusterMember4
- WAS_TRAN_LOGApp1
- WAS_TRAN_LOGApp2
- WAS_TRAN_LOGApp3
- WAS_TRAN_LOGApp4
- WAS_PARTNER_LOGApp1
- WAS_PARTNER_LOGApp2
- WAS_PARTNER_LOGApp3
- WAS_PARTNER_LOGApp4
- WAS_COMP_LOGApp1
- WAS_COMP_LOGApp2
- WAS_COMP_LOGApp3
- WAS_COMP_LOGApp4