A) Certifique-se de configurar o Glassfish Connection Pool para recuperação/reconexão automática
Na configuração do pool de conexão Glassfish JDBC, defina os valores para:
- Atributos:
is-connection-validation-required, validate-atmost-once-period-in-seconds, connection-creation-retry-attempts, connection-validation-method, connection-creation-retry-interval-in-seconds, ping
Configuração do Glassfish jdbc-connection -propriedades da piscina
Glassfish Admin - subcomando create-jdbc-connection-pool
Passos:
- Supondo que o Glassfish esteja em execução (por exemplo, inicie o servidor na guia Serviços do Netbeans, abrindo Servidores e clicando com o botão direito do mouse em Glassfish), você deve ter o Servidor de administração de domínio em execução
- Abra o Admin Console no navegador da Web:
http://localhost:4848
(ou use qualquer porta que você especificou durante a instalação. - À esquerda, no menu Common Tasks, abra Resources -> JDBC e clique em JDBC Connection Pools
- Clique no nome do pool de conexões (ou crie um novo clicando no botão Novo)
- Selecione a guia avançada e digite:
- Validar no máximo uma vez:(por exemplo, 60) em segundos
- Tentativas de criação:(por exemplo, 3)
- Intervalo de repetição:(por exemplo, 10) em segundos
- Validação de conexão:(tick) obrigatório
- Método de validação:(por exemplo, confirmação automática)
- Outras propriedades avançadas conforme desejado
- Selecione a guia Geral e digite:
- Ping (tick)
- Outras propriedades gerais conforme desejado
B) Implementar tratamento de erros do aplicativo/monitoramento e alertas de banco de dados
-
Obrigatório:interceptar erros fatais de usuários em "nível de infraestrutura" e alertar a equipe de suporte.
Crie uma classe JMX simples para enviar uma notificação e chamar seu método quando ocorrer um erro fatal JMX MBean Class que envia notificações . Você pode usar um console de monitor JMX para observar o estado dos servidores - alguns desses consoles enviam alertas por e-mail (por exemplo, JManage e RHQ) e há pontes para acesso de HTTP/AJax ou outros idiomas (por exemplo, Jolokia pode usar a API javascript/perl/java para acessar notificações JMX).
Use a API do Google Agenda para enviar a mensagem de erro para o calendário do google da equipe de suporte (1 ou 2 minutos no futuro). Em seguida, configure o calendário do Google para enviar notificações por e-mail/sms - fornecerá alerta de erro diretamente para a equipe de suporte quase em tempo real. Isso está sujeito às restrições de uso do Google (um limite de cortesia de 10.000 consultas por dia, portanto, certifique-se de que seus aplicativos não tenham muitos bugs e use a lógica para limitar o número de mensagens enviadas em uma hora/dia/semana)
-
Desejável:monitore o banco de dados (e provavelmente o servidor de aplicativos) e alerte a equipe de suporte sobre interrupções
- O código aberto Zabbix tem monitoramento e alertas mySQL embutidos - é leve, mas requer configuração e configuração
- Hyperic open source tem plug-ins de extensão para monitoramento mySQL e alerta embutido - é pesado, pode ser complexo de configurar e configurar
- O código aberto Nagois é o padrão para sistemas operacionais *nix - é pesado, pode ser complexo de configurar e configurar
Em todos os casos, a configuração não acontecerá instantaneamente - é melhor implementar como um miniprojeto separado e fazer certo - é melhor ter uma equipe de suporte envolvida nisso.
Se estiverem "fora do escopo", crie seu próprio monitor simples:
- Um temporizador EJB para executar uma consulta de teste simples agendada em seu banco de dados - se falhar, envie um alerta (via JMX/Google Calendar/Java Mail/API de gateway SMS). Ou use o agendador de código aberto Quartz para fazer o mesmo trabalho