Quantas vezes vocês já resolveram um problema com um simples restart, seja no seu computador, no roteador, em uma JVM e até mesmo no seu carro. Quem dera se tivéssemos o restart em nossas vidas, deu algum problema?, restart! e tudo volta como veio de fábrica, sem erros, falhas ou travamentos.

Como o restart só existe no mundo eletrônico as pessoas associam de cara que a solução de todos os problemas está na execução desta simples função de liga e desliga, mas aqueles que trabalham com suporte a infraestrutura sabem que as coisas não são bem assim.

O restart ou boot, como nós tecnólogos conhecemos sempre foi associado a uma sistema operacional, o Windows. Deu pau ?, boot nele e tudo voltará a funcionar. Virou uma coisa rotineira que nem é mais considerada uma falha de desenvolvimento do software. Acontece que o termo boot ou restart tem o seu lado pejorativo, associado diretamente a incompetência, a falta de capacidade que uma empresa ou profissional de ti tem que encontrar uma solução, restando a ela ou ele o restar para solução de todos os seus problemas.

Falando de servidores aplicacionais que funcionam com Java, o restart de uma JVM (Java Virtual Machine) é a solução para grande maioria de seus problemas, por diversos fatores, mau gerenciamento dos recursos de memória, erros de programação de uma aplicação que ali reside, má configuração de comunicações com banco de dados e uma série de outros possíveis problemas.

Clientes não aceitam um simples restart para a solução de seus problemas, eles desejam uma análise detalhada onde o resultado final apresentará o culpado.

Por diversas vezes me vi a frente de uma situação onde a solução de um problema era o desenvolvimento de toda uma nova arquitetura ou da  aplicação o qual teria um custo bem elevado, o cliente não aceitou e continuou com o work-around de restart do seu ambiente.

Voltando ao mundo Java, existe uma série de ferramentas que auxiliam desenvolvedores e administradores na análise do comportamento de uma aplicação e da JVM. Há empresas que devido a necessidade da manutenção de um ambiente produtivo o qual gera uma grande receita, configura o restart automático de sua ou suas aplicações a partir de gerenciadores de script, por exemplo: Toda segunda-feira às 01:00 AM, a aplicação XYPTO irá sofrer um restart. Simples não?!.

Acontece que eu sou um daqueles profissionais que não gosta deste tipo de solução, gosto de descobrir o que está causando tantas quedas e problemas com o ambiente o qual suporto, admito que isso dá muito trabalho, mas o aprendizado não tem preço.

Estou só falando de desenvolvimento, servidores aplicacionais, mas imaginem um problema com um roteador, switch ou servidor, eu mesmo já presenciei alguns dos problemas mais estranhos e bizarros com switches Cisco, uma hora ele funcionava e outra hora não. O troubleshooting de um problema como este é o mais intrigante de todos. Vale lembrar que Hackers se aproveitam de erros ou de uma má configuração para explorar vulnerabilidades.:)

Eu aprendi nestes 15 anos como profissional de TI que um problema que pode levar algumas horas para ser resolvido lhe trará uma incrível bagagem de conhecimento, isso porque muitas variáveis, áreas e possíveis soluções serão testadas e pensadas até que você encontre uma solução. Então, diga não ao restart pois ele deixa você preguiçoso!