ViktorMedlem sedan aug. 20021 752 inlägg Jag har en databas connection som jag ibland vill kolla om den är öppen fortfarande, då kör jag
if(conn.isClosed())
System.out.println("Stängd");
else
System.out.println("Öppen");
men den rapporterar alltid att den är öppen, även om jag går in i databasen och dödar anslutningen där så säger ändå isClosed att den är öppen :l Vad har jag missat? Finns det något bättre sätt att testa om en connection är öppen?
Jag kör MySQL och Java 1.4.1_02
/Viktor
Det står i API't att conn.isClosed() garanteras att returnera true BARA om man explicit har kört conn.close().
Kanske är bäst att köra en liten select i nån tabell och fånga eventuella Exceptions för att kolla om den är stängd.
Mvh
phonk
ViktorMedlem sedan aug. 20021 752 inlägg Tack för hjälpen :)
Ibland är man för slö för sitt eget bästa. När jag skriver in java.sun.com i explorer så finns det redan en url till api 1.3, jag tänker då connection.isClosed, den kan jag inte tänka mig har ändrats något så jag väljer den direkt, där står det inget om det som du skrev som står i 1.4 :x
Ok, här är den lösning som jag kom fram till, inte perfekt men den fungerar,
private boolean isConnectionOK(Connection conn)
{
try
{
if(conn.getAutoCommit()==true)
{
conn.setAutoCommit(false);
conn.commit();
conn.setAutoCommit(true);
}
else
{
conn.commit();
}
}
catch(SQLException e)
{
return(false);
}
return(true);
}
/Viktor