Discussion:
Oracle Driver Object has been closed Jrun4 updated4
(too old to reply)
aldiez
2006-05-21 10:14:39 UTC
Permalink
Hello all,
We are experiencing some issues in our productive environment, where we have
two jrun4( updater4) servers connecting with a Oracle 9i database. Both servers
are linked to two Iplanet webservers and we have in front of them a Cisco CSS
for load balancing ( we don't have clustering between the two jruns).
We are having errors "[Macromedia][Oracle JDBC Driver]Object has been
closed" randomly when connecting to the database ( till this moment we have
detected them randomly when using prepared statements).
Until this moment we weren't able to reproduce the errors in preproductive
environment neither in development environment. We stressed the application
using jmeter in both pre and dev environment but couldn't replicate the error.
We are using connection pooling with macromedia driver and we are also pooling
the prepared statements.
The main difference between preproduction and production environment could be
the firewalls between the database server and the application server in
production environment.
Could be the problem that we are having timeouts and the timedout connections
are not propertly removed from the pool or something like that ???
Please any comment on this matter will be highly appreciate, we have not clue
of what happening but this is pushing us to restart the servers once or twice
a week during business hours because when we have the error the jrun4 never
recovers and start to give the same error again and again till we restart the
servers.
Thanks in advance and best regards
stefanotravelli
2006-05-22 07:41:02 UTC
Permalink
Occasionally I had this kind of error when <remove-on-exception> is set to
"true" in data source settings.

From the doc:
"The remove-on-exceptions element specifies whether connections will be
recycled back into the connection pool when exceptions occur."

Since the connection was recycled into the pool, the next usage of the
connection throws "Object has been closed".
This usually means that your application masks the exception and continues
transaction execution.
If, for some reasons, you business logic is fine with the fact that a
SQLException doesn't need to stop and rollback a transaction you should set
<remove-on-exception>false</remove-on-exception>.
Otherwise, double check exception handling in your code.

hope this help

Loading...