TOMCAT Y POOL DE CONEXIONES

calo
15 de Septiembre del 2004
Holas, tengo el tomcat 5 y Oracle 9i DB y mi aplicación tiene seteado en el server.xml los sgtes parametros
<Resource name="jdbc/myoracle" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/myoracle">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>DIRECCION DE MI DB</value>
</parameter>
<parameter>
<name>username</name>
<value>USUARIO</value>
</parameter>
<parameter>
<name>password</name>
<value>CONTRASENA</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
<parameter>
<name>removeAbandonedTimeout</name>
<value>240</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>logAbandoned</name>
<value>true</value>
</parameter>
</ResourceParams>

y en mis clases java lo llamo asi para conectarme
if(_jdbcConnection == null)
{
try
{
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
ds=(DataSource)envContext.lookup("jdbc/myoracle");
//_jdbcConnection=ds.getConnection();
}
catch (NamingException ex)
{
ex.printStackTrace();
}
_jdbcConnection=ds.getConnection();
if(_jdbcConnection != null)
{
_jdbcConnection.setAutoCommit(false);
}
}
Statement stmt = _jdbcConnection.createStatement();
Vector vecResultado = new Vector();
ResultSet rs = stmt.executeQuery(strSQL);
ResultSetMetaData rsmd = rs.getMetaData();
int intSize = rsmd.getColumnCount();
while (rs.next()) {
Hashtable htRegistro = new Hashtable();
for (int intI=1;intI<intSize+1;intI++) {
String strCampo = rsmd.getColumnName(intI);
String strValor = rs.getString(strCampo);
if (strValor!=null)
htRegistro.put( strCampo,strValor);
else
htRegistro.put( strCampo,"");
}
vecResultado.addElement(htRegistro);
}
rs.close();
stmt.close();
return vecResultado;
}

Sucede que cuando observo en el Oracle abro una sola aplicacion web en una maquina pero en el Oracle se indica que tengo como tres sesiones abiertas del pool de conexiones y como varios usuarios se conectan a la aplicación se excede las conexiones permitidas que me ha delimitado el dba y me sale el siguiente error y se cae el sistema(ORA-02391: exceeded simultaneous SESSIONS_PER_USER limit
)POR FAVOR QUE HAGO donde en mi codigo cierro conexiones al pool de conexiones o debo setear en algo mas mi file server.xml
espero sus ayudas, gracias

Borrachos Inc
15 de Septiembre del 2004
Hola mira yo tengo una aplicacion echa en jsp con oracle 9i, la verdad no sabia como quitar el puente odbc, espero me sirva hacerlo como tu lo tienes.. pero eso no es lo que te iba a decir.. a mi me pasaba lo mismo.. cada vez que habria una pagina se inciaba una nueva session en oracle asi que empezaba a consumir recursos del servidor al punto en que ya no daba mas.. lo que yo hice fue lo siguiente
colocar donde tienes

rs.close();
stmt.close();

conn.close();

donde conn es el nombre de la variable que lleva la conexion.. no se si te sirva.. de todos modos mucha suerte