salve ragazzi,
ho letto questo esempiohttp://tomcat.apache.org/tomcat-6.0-...les-howto.html per connettermi al database...tutto ok però dopo un po il server si blocca e nei file log viene lanciata la seguente eccezione java.net.SocketException: Broken pipe...sembrerebbe che la connessione con il database non sia più disponibile cioè le connessioni che dovrebbero essere chiuse (nonostante il close()) rimangono in SLEEP e dopo un certo tempo il database rifiuta nuove connessioni...vi posto una bozza del codice...grazie
codice:
Connection connection = null;
Statement statement = null;
ResultSet rs = null;
try {Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource dataSource = (DataSource) envContext.lookup("jdbc/testdb");
connection = dataSource.getConnection();
statement = connection.createStatement();
rs= statement.executeQuery("SELECT * FROM login");
rs.next();
System.out.println(""+rs.getString("nome"));
rs.close();
rs = null;
statement.close();
statement = null;
connection.close();
connection = null; } catch (SQLException e) { e.printStackTrace(); }
finally {
if (rs != null) { try { rs.close(); } catch (SQLException e) { ; } rs = null; }
if (statement != null) { try { statement.close(); } catch (SQLException e) { ; } statement = null; }
if (connection != null) { try { connection.close(); } catch (SQLException e) { ; } connection = null; } }
Questo è il context.xml
codice:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/testdb" auth="Container" type="javax.sql.DataSource" username="user" password="pwd" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/voti" maxActive="50" minIdle="5" testOnBorrow="true" validationQuery="SELECT 1" minEvictableIdleTimeMillis="6000" removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true" /> </Context>
Grazie mille