OK well, a couple answers first. The socket that is being referred to is the underlying (usually tcp/ip) socket that your driver uses to connect to the database. A connection is an abstraction from what the implementation socket is. A couple things could be happening with your oracle driver. First, there can be an inactive timeout set on your oracle database, where connections are closed after a timeout period to free up resources. You would get the same error if for instance the server on the other end lost power, and therefore closed the connection by being turned off. The other thing is, your driver could have a timeout set. I haven't used the oracle driver extensively, so i'm not really sure how you configure it. Look in the docs. The other thing you want to do is separate out those three boolean statements so you can determine which one is failing. Checking for null is not going to throw the exception so pretty much focus on your last two. (and look at your driver configuration docs) you may want to try this method instead. static Connection getConnection(String url, Properties info); //Attempts to establish a connection to the given database URL. In properties, you can specify driver settings.
Zak -----Original Message----- From: Christian J. Dechery [mailto:[EMAIL PROTECTED]] Sent: Tuesday, June 11, 2002 12:03 PM To: [EMAIL PROTECTED] Subject: RE: getting exception when trying to close connection ok... there you go: public DAOFundos(Esquema esq) { if( esq==null ) { esq = esquemaDefault; } try { Class.forName( esq.getDriver() ); con = DriverManager.getConnection(esq.getUrl(), esq.getUser(), esq.getPassword()); } catch(ClassNotFoundException cnf) { System.out.println ("Erro: driver nao encontrado! "+cnf.getMessage()); } catch(SQLException sql) { System.out.println("Erro ao obter conexão! "+sql.getMessage() ); } } this is the code for the default constructor... in this case the class Esquema contains info about: drivers, user, url and pwd. the driver is always oracle.jdbc.driver.OracleDriver thanks again .:| Christian J. Dechery .:| FINEP - Depto. de Sistemas .:| [EMAIL PROTECTED] .:| (21) 2555-0332 >>> [EMAIL PROTECTED] 11/06/02 16:03 >>> It would be halpful to see the declaration of con, and the type of driver you are using -----Original Message----- From: Christian J. Dechery [ mailto:[EMAIL PROTECTED]] Sent: Tuesday, June 11, 2002 11:41 AM To: [EMAIL PROTECTED] Subject: getting exception when trying to close connection I know my implementation isn't the best there is... take a look at this code: protected void finalize() try if( con!=null && !con.isClosed() && con.getAutoCommit() ) con.close(); } } catch(SQLException sqle) System.out.println("["+this.getClass().getName()+"] Não foi possível fechar a conexão. "+sqle.toString()+"\n"); // sqle.printStackTrace(); } } that's what I use to TRY to close all connections... this code is in my DAO class. Sometimes I have up to four DAO classes instantiated in a single JSP... I debugged it... at least one always fails to close giving me this exception: "I/O error: socket closed" what does that mean? what socket? And why did all the other connections closed and this didn't? .:| Christian J. Dechery .:| FINEP - Depto. de Sistemas .:| [EMAIL PROTECTED] .:| (21) 2555-0332 -- To unsubscribe, e-mail: < mailto:[EMAIL PROTECTED] > For additional commands, e-mail: < mailto:[EMAIL PROTECTED] > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>