Erro fatal:
java.sql.SQLException: Network error IOException: Connection timed out
Na empresa na qual trabalho temos um sistema web multi-database, temos um problema grave que nem consultor está conseguindo resolver, a pessoal rede fala que é aplicação e o DBA também, já viu né.
Atualmente o esquema de conexão é a seguinte.
Hibernate + c3po
Tudo é montado dinamicamente: ± assim
private Properties getClienteProperties(ConfiguracaoCliente config) {
Properties retorno = new Properties();
retorno.put("hibernate.connection.provider_class", "org.hibernate.connection.C3P0ConnectionProvider");
retorno.put("hibernate.c3p0.acquire_increment", "1");
retorno.put("hibernate.c3p0.idle_test_period", "180");
retorno.put("hibernate.c3p0.max_size", "300");
retorno.put("hibernate.c3p0.max_statements", "100");
retorno.put("hibernate.c3p0.min_size", "0");
retorno.put("hibernate.c3p0.checkoutTimeout","1");
retorno.put("hibernate.c3p0.timeout", "120");
retorno.put("hibernate.c3p0.initialPoolSize","0");
retorno.put("hibernate.connection.driver_class", "net.sourceforge.jtds.jdbc.Driver");
retorno.put("hibernate.dialect", "org.hibernate.dialect.SQLServerDialect");
retorno.put("hibernate.connection.password", config.getSenha());
retorno.put("hibernate.connection.username", config.getUsuario());
retorno.put("hibernate.use_sql_comments", "false");
retorno.put("hibernate.connection.url", "jdbc:jtds:sqlserver://" + config.getIp() + "/" + config.getDatabase());
retorno.put("hibernate.current_session_context_class", "org.hibernate.context.ThreadLocalSessionContext");
if (show_sql) {
retorno.put("hibernate.show_sql", "true");
} else {
retorno.put("hibernate.show_sql", "false");
}
return retorno;
}
o método que chama:
private SessionFactory buildSession(ConfiguracaoCliente cliente) {
SessionFactory sessaoF = null;
/if (existeDatabase(cliente)) {/
Configuration configuration = getConfiguration(cliente);
configuration.addProperties(getClienteProperties(cliente));
try {
sessaoF = configuration.buildSessionFactory();
} catch (HibernateException e) {
Logger.getLogger(ConexaoFacade.class.getName()).log(Level.SEVERE, null, e);
}
/*
} else {
System.out.println("Database " + cliente.getDatabase() + " não existe no servidor: " + ipPadrao);
}*/
return sessaoF;
}
A aplicação vai numa boa roda as vezes dias… e deRepete !!!
//////////////*************
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2,5,main] – caught unexpected Exception while executing posted task.
java.lang.NullPointerException
java.sql.SQLException: Network error IOException: Connection timed out
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.(ConnectionJDBC2.java:372)
at net.sourceforge.jtds.jdbc.ConnectionJDBC3.(ConnectionJDBC3.java:50)
at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:178)
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:68)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:87)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1.acquireResource(C3P0PooledConnectionPool.java:83)
at com.mchange.v2.resourcepool.BasicResourcePool.assimilateResource(BasicResourcePool.java:884)
at com.mchange.v2.resourcepool.BasicResourcePool.acquireUntil(BasicResourcePool.java:601)
at com.mchange.v2.resourcepool.BasicResourcePool.access$400(BasicResourcePool.java:31)
at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1079)
at java.lang.Thread.run(Unknown Source)
Caused by: java.net.ConnectException: Connection timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.reflect.GeneratedMethodAccessor1298.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:289)
at net.sourceforge.jtds.jdbc.SharedSocket.(SharedSocket.java:250)
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.(ConnectionJDBC2.java:297)
… 10 more
java.sql.SQLException: Network error IOException: Connection timed out
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.(ConnectionJDBC2.java:372)
at net.sourceforge.jtds.jdbc.ConnectionJDBC3.(ConnectionJDBC3.java:50)
at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:178)
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:68)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:87)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1.acquireResource(C3P0PooledConnectionPool.java:83)
at com.mchange.v2.resourcepool.BasicResourcePool.assimilateResource(BasicResourcePool.java:884)
at com.mchange.v2.resourcepool.BasicResourcePool.acquireUntil(BasicResourcePool.java:601)
at com.mchange.v2.resourcepool.BasicResourcePool.access$400(BasicResourcePool.java:31)
at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1079)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:354)
//////////////*************
O servidor trava… essa aplicação e outras que estão no mesmo servidor travam!!!
Algum guru…
É urgente mesmo…
Valeu!!!