My guess, without seeing exactly what you are doing, is that your code
is checking whether it already has precompiled the statement and is
attempting to re-use that statement without having the same database
connection. During the re-use, the previous user is doing either a
stmt.close() or conn.close() method call (or the equivalent thereof).
Since statements are dependent upon their connections, this will cause
an exception like the one below.

Check to see whether you are trying to re-use the statement and either
(a) stop re-using it or (b) add checks around the connection and don't
allow it to be closed. Better yet, move all the database access into a
bean and use the bean's control scope to coordinate database access.

-david-

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
Sent: March 2, 2003 10:14 PM
To: [EMAIL PROTECTED]
Subject: Struts or DBCP?

Hi,
        I'm getting a strange exception in our application. We are using
Struts 1.0 with DBCP 1.0 on iPlanet.
        There is a particular URL in our application which does a lot of
data processing. It take approx 8 to 10 seconds to process and return
data
back to the screen.
        If i click on this URL once, wait for 2 secs and then click on
this
URL again then I get the exception shown below. It looks like its some
kind
of a threading problem. I'm not sure where though..i.e. in our Struts
action
class or in the DBCP implementation. I'm able to reproduce this problem
only
around once in 25 times.
        The action class defines the connection locally...so there is no
problem there.
        Does anyone have any ideas?

Here's the exception trace

, root cause: java.sql.SQLException: Closed Statement
        at
oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:169)
        at
oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:211)
        at
oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:274)
        at
oracle.jdbc.driver.OracleStatement.get_column_index(OracleStatement.java
:453
0)
        at
oracle.jdbc.driver.OracleResultSetImpl.findColumn(OracleResultSetImpl.ja
va:6
66)
        at
oracle.jdbc.driver.OracleResultSet.getInt(OracleResultSet.java:1420)
        at
org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.j
ava:
159)
        at
com.gecapital.erc.phoenix.entity.ProfileSite.populateColumns(Unknown
Source)
        at
com.gecapital.erc.phoenix.entity.ProfileSite.loadCollection(Unknown
Source)
        at
com.gecapital.erc.phoenix.entity.Profile.loadProfileSites(Unknown
Source)
        at
com.gecapital.erc.phoenix.action.LoadProfileAction.perform(Unknown
Source)
        at
org.apache.struts.action.ActionServlet.processActionPerform(ActionServle
t.ja
va:1787)
        at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1586)
        at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:510)```
`

Thanks,
Gaurav


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to