The quick fix is to add the following lines to your 
init properties:

torque.dsfactory.web_test_suite.pool.testOnBorrow=true
torque.dsfactory.web_test_suite.pool.validationQuery=SELECT 1

This will cause the common-dbcp code to verify that any 
pooled connection is still valid before passing it to Torque.
Adds the overhead of a single quick DB query each time a 
connection is retrieved but it's a small price to pay to make
Apps independent of DB restarts.

As to the cause... when you say "close the app", do you 
mean just exist the browser pages or actually stop the 
webapp on TomCat via the manager/html app?  

If it's the former, then the webapp / Torque is still active
and has pooled connections still open.  These pooled 
connections are a big performance gain since getting a TCP
connection to an SQL server is time consuming.  But this
means that your apps don't behave like the (slower) "open a 
connection for each page/statement" ones that are common.

If it's the latter, then do you have the Torque lib (and 
support ones) in your common\lib directory and use it
across multiple web-apps? Then the reason is that in this
situation there is only one pool for all web-apps.  
Restarting a single webapp will not restart the pool. You
have to restart Tomcat (or explicitly shutdown and re-init
Torque but that can be problematic...).

> -----Original Message-----
> From: Eustache [mailto:[EMAIL PROTECTED] 
> Sent: Wednesday, January 10, 2007 11:31 AM
> To: Apache Torque Users List
> Subject: exception thrown because DB connection not correctly 
> reinited after db server restart
> 
> Hi, I wonder if you can help with the following problem:
> I use Tomcat 5.5, postgresql 8.3.1 and Torque.
> I first use the webapp using torque everything is ok. I close 
> the app, a db connection is still there.
> Now I reboot db. Try to relaunch the webapp and has this exception in
> catalina.out:
> 
> DEBUG org.apache.torque.util.SQLBuilder - SELECT 
> app_category.CATEGORY_ID, app_category.NAME FROM app_category WHERE
> app_category.CATEGORY_ID=1028
> org.apache.torque.TorqueException: 
> org.postgresql.util.PSQLException: An I/O error occured while 
> sending to the backend.
> 
> [torque.properties]
> torque.database.default=web_test_suite
> torque.database.web_test_suite.adapter = postgresql 
> torque.dsfactory.web_test_suite.factory = 
> org.apache.torque.dsfactory.SharedPoolDataSourceFactory
> torque.dsfactory.web_test_suite.connection.driver = 
> org.postgresql.Driver 
> torque.dsfactory.web_test_suite.connection.url = 
> jdbc:postgresql://myserver/mydb 
> torque.dsfactory.web_test_suite.connection.user = myuser 
> torque.dsfactory.web_test_suite.connection.password =
> 
> It seems that torque is not able to get a proper db 
> connection after the db server is restarted Any clue ?
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 

Duke CE Privacy Statement
Please be advised that this e-mail and any files transmitted with it are 
confidential communication or may otherwise be privileged or confidential and 
are intended solely for the individual or entity to whom they are addressed.  
If you are not the intended recipient you may not rely on the contents of this 
email or any attachments, and we ask that you  please not read, copy or 
retransmit this communication, but reply to the sender and destroy the email, 
its contents, and all copies thereof immediately.  Any unauthorized 
dissemination, distribution or copying of this communication is strictly 
prohibited.



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

Reply via email to