Bom dia pessoal, como vão?
Estou com um problema no trabalho, que vou relatar e conto com possíveis dicas ou ajudas.
Tenho algumas aplicações J2EE rodando em um mesmo servidor Tomcat 5.5, e JDK 1.5. Uma destas aplicações se conecta à um BD MySQL em outra máquina (podem ser diversos - uns 25 - dependendo do usuário/máquina que faz o acesso), e tudo funciona quase perfeitamente bem.
O problema que está ocorrendo é que, muitas vezes, o computador onde está instalado o MySQL, está com firewall ativado. É uma diretriz nossa sempre liberar o acesso às portas do MySQL, porém nem sempre isso ocorre de imediato. Desta forma, quando o programa tenta conectar ao MySQL, ele fica aguardando (porque o firewall o trava), segurando então todas as outras aplicações.
Só que como tenho uns 600 usuários tentando acessar (novamente) as várias outras aplicações, com essa tentativa de conexão segurando a coisa, um monte de thread começa a subir até chegar no limite.
Sei que essa de ter várias aplicações rodando em um mesmo servidor web é complicado, mas é o que pode-se fazer atualmente.
Alguém tem alguma idéia a respeito dessa thread em específico do MySQL segurar todas as outras? Percebi que o método de connect é syncrhonized, mas terá algo a ver?
Vale lembrar que se eu mato essa thread, todas as outras são liberadas e o resto fica “acessível”, e resolvendo o problema do firewall, também evita o erro.
Agradeço desde já!