Can your query raise exception that's handled elsewhere, so that session.close() is not called? Try this:
SqlMapSession session = sqlMap.openSession(); List list = null; try { list = (List) session.queryForList("queryId"); } catch (Exception e) { log..... } finally { session.close(); } On Tue, May 27, 2008 at 6:09 PM, Filipe David Manana <[EMAIL PROTECTED]> wrote: > Hello, > > I am developing a webapp and using iBATIS for the first time. I configured > iBATIS to use a JDBC transaction manager and a JNDI datasource, provided by > Tomcat+DBCP. When my webapp is deployed, a Servlet executes and initializes > iBATIS : > > SqlMapClient sqlMap = null; > Reader reader = null; > > try > { > reader = Resources.getResourceAsReader(configFile); > } > catch( Exception ex ) > { > String error = "Could not get Reader for iBATIS config file: " + > ex; > log.fatal(error); > > throw new DatabaseException(error); > } > > try > { > sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader); > } > catch( Exception ex ) > { > String error = "Could not create iBATIS SqlMapClient object: " + > ex; > log.fatal(error); > > throw new DatabaseException(error); > } > > > This initialization is done only once. For each http request, I use the > sqlMap object to get a new session, execute select queries (through > queryForList method) and close the session. The pattern is like this: > > SqlMapSession session = sqlMap.openSession(); > List list = null; > > list = (List) session.queryForList("queryId"); > session.close(); > > Although I frequently get the SQLException : > > java.sql.SQLException: ORA-02391: exceeded simultaneous > SESSIONS_PER_USER limit > > Am I doing something wrong? I am the only user. My Tomcat+DBCP > configuration is supposedly ok, as it is the same I used for another > application (using Hibernate and same Database Server). It seems to me that > iBATIS is somehow not releasing the DB connections. > I am using iBATIS 2.3.0 > > cheers > > -- > Filipe David Manana, > [EMAIL PROTECTED] > > "First they ignore you, then they laugh at you, then they fight you, then > you win." >