Em um aplicativo de web banco de dados orientado, o que o usuário vê quando o banco de dados está indisponível?

StackOverflow https://stackoverflow.com/questions/1671663

Pergunta

Se uma aplicação web se baseia em um banco de dados para servir conteúdo dinâmico e que o conteúdo está indisponível por qualquer motivo (banco de dados do servidor para baixo, etc.), o que é o método preferido para lidar com este cenário?

  1. Redirect o visitante a uma página 404 personalizada?
  2. Exiba a página de qualquer maneira, mas incluem algum tipo de mensagem de erro onde o conteúdo de outra forma seria?
  3. Mostrar uma página relacionada que tem conteúdo estático?
  4. Outro?

Eu entendo que o log de erro adequada deve ocorrer, bem como notificar o webmaster e / ou sysadmin. Estou interessado sobretudo em melhores práticas para o que o usuário final deve ver nesta situação.

Foi útil?

Solução

# 3 se você pode (por exemplo, um instantâneo de conteúdo dinâmico tomadas a cada 20 minutos), mas deixar bem claro que é conteúdo estático como de

# 2 se você não pode, contanto que o erro é re-impressão legível e não um literal humana do rastreamento de pilha de uma exceção de Java ou algo assim.

Outras dicas

Faça o que fizer, NÃO retornar um 404 - a sua aplicação pode não estar funcionando corretamente, mas você não quer dar a impressão de que o URL está incorreto. Além do mais, isso poderia ter um impacto negativo sobre SEO do seu site.

Se você estiver indo para retornar algum status HTTP diferente de 200, então eu recomendo uma resposta 503 "Serviço indisponível". Este é mais um indicativo de uma falha temporária com a aplicação, ao invés de algo estar errado com o pedido do HTTP.

Eu acho que depende de como vinculado ao banco de dados do conteúdo da página inteira é. Por exemplo, em nossas aplicações web, se o banco de dados é baixo, então não há nenhum método de autenticação; o nosso único recurso seria uma tela de erro personalizada para o efeito de 'Nós estamos tendo problemas agora; parar por novamente mais tarde'.

Agora; se o conteúdo dinâmico é semelhante a uma citação do dia em cima de um arquivo na maior parte estática, em seguida, uma mensagem de erro simples no lugar do conteúdo; ou omissão de conteúdo dinâmico todos juntos seria apropriada.

Assim; isso depende do que o serviço da página fornece, e se ele pode ou não fornecer qualquer coisa útil, sem a infra-estrutura.

Eu acho que # 3 é provavelmente o melhor, mas nem sempre é viável. Se isso não for possível, uma espécie de "dificuldades técnicas, por favor, se por ..." poderia ser melhor (obviamente, você pode mudar o texto para algo melhor). Basta evitar realmente a impressão ERRO: ERR_123 / SIGSEGV! (Ou algo parecido) em grandes letras vermelhas. Faz usuários pensam a sua aplicação está quebrado e eles não podem voltar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top