Parece que seus desenvolvedores não estão fechando corretamente suas conexões no código. Em C #, isso seria algo assim:
var cn = new MySqlConnection(" connection string " );
var cmd = new MySqlCommand(" sql string ", cn);
cn.Open():
cmd.ExecuteNonQuery();
cn.Close();
O código acima é fundamentalmente falho, porque um erro no código sql resultará em uma exceção e, portanto, o código para fechar sua conexão nunca é alcançado. Em vez disso, eles precisam escrever assim:
MySqlConnection cn;
try
{
cn = new MySqlConnection(" connection string ");
var cmd = new MySqlCommand(" sql string ", cn);
cn.Open():
cmd.ExecuteNonQuery();
}
finally
{
cn.Close();
}
E, na verdade, o C # tem alguns padrões melhores que eles realmente deveriam usar. Mas isso ilustra o ponto de uma maneira que também se aplica a outras linguagens - qualquer que seja a sua plataforma, o código do cliente para fechar as conexões com o banco de dados deve acontecer de uma maneira que leve em conta exceções.