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."