ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Clinton Begin <clinton.be...@gmail.com>
Subject Re: No operations allowed after connection closed.
Date Thu, 30 Jun 2005 04:13:18 GMT
Just an FYI:

DBCP and most app server pools also support validation/ping queries.

Clinton

On 6/29/05, Meindert <meindert@pastelebusiness.com> wrote:
> 
>  Ok, sorry I didn't look very well.
> 
>  The answer is in the back of the manual:
> 
> SimpleDataSource
> 
> Property Name: Pool.PingQuery
> 
> The ping query will be run against the database to test the connection
>  ------------------------------
>  
> *From:* Meindert [mailto:meindert@pastelebusiness.com] 
> *Sent:* Wednesday, June 29, 2005 9:16 AM
> *To:* user-java@ibatis.apache.org
> *Subject:* RE: No operations allowed after connection closed.
>  
>  I have replaced my JDBC driver but am still having the same problem.
> 
>  Looked a bit around on google and got the following tip:
> 
> >We solved this same problem by doing essentially what Mark advises
> >below.
> 
> >We set the wait_timeout on the server to be a very large number and the
> >idle timeout for our connection pool to be fairly small. For what we are
> >doing, the time required to create a new connection is not very
> >significant, so we usually have the idle timeout for connections in the
> >pool set to just a few minutes.
> 
> >Applications using our connection pool can specify an optional
> >configuration property that the pool manager will use to validate the
> >connection before it is returned to the application. "SELECT 1" seems to
> >be succinct, safe, and performant. If the query fails, the connection is
> >removed from the pool and another one is tried. If the pool is empty, of
> >course, a new connection is created.
> 
> >Robert Stewart
> 
>  Will play around with this, but thought this could be some handy info for 
> users with the same problem
> 
>  Meindert
> 
> ------------------------------------
> 
> I have also seen this same error using a thin client. The first quesy 
> throws a exception about closed connection then creates a new connection and 
> carries on. I am using the same version of mysql but connector 3.1.6.. 
> When i use the same client same queries against our hsqldb db we never get 
> the problem. I have been working on the hsqldb side for a while and assumed 
> it was an error in my code which i would fix later. i have a newer 
> 
> version of mysql 4.1.12 which is our new base line so i will try it out on 
> this database and let you know.. But it sounds like a bug in the driver?
> 
> Steve.. 
> 
> -----Original Message----- 
> From: Meindert [mailto:meindert@pastelebusiness.com<meindert@pastelebusiness.com>
> ] 
> Sent: Thu 6/23/2005 2:19 PM 
> To: user-java@ibatis.apache.org; 'Brandon Goodin' 
> Subject: RE: No operations allowed after connection closed. 
>  
> Database version: 
> 
> mysql-connector-java-3.0.16-ga-bin.jar 
> 
> mysql-4.1.9 
> 
> To reproduce I open the website on the index page and then close the 
> browser, the next day I open the browser again and I get the error. 
> 
> The error comes from the connection pool, I find this in my Catalina.out 
> log: 
> 
>  DEBUG [http-80-Processor25] - Returned connection 12839271 to pool. (This 
> was the day before) 
> 
> DEBUG [http-80-Processor24] - Checked out connection 12839271 from pool. 
> (The connection for the paginated list on my index.shtml page) 
> 
> DEBUG [http-80-Processor24] - {conn-100045} Connection 
> 
> DEBUG [http-80-Processor24] - A bad connection (12839271) attempted to 
> return to the pool, discarding connection. 
> 
>  The query fails and the index page comes up and prints the exception 
> trace. 
> 
> Pressing F5 reloads the page and fetches a new connection that succeeds. 
> 
>  The connection is used for: 
> setEmployeeList(dailyBulletinService.getOutStaff()); 
> 
>  Is this enough info? 
> 
>    MEINDERT HOVING 
> 
> Developer, Pastel Payroll 
> 
>  Direct: 
> 
> +27 (21) 680 9015 
> 
> Main: 
> 
> +27 (21) 680 9000 
> 
> Fax: 
> 
> +27 (21) 680 9090 
> 
> meindert@pastelebusiness.com 
> 
> www.pastel.co.za <http://www.pastel.co.za> 
> 
>  9 out of 10 accountants recommend PASTEL Accounting 
> 
>  -----Original Message----- 
> From: Brandon Goodin [mailto:brandon.goodin@gmail.com<brandon.goodin@gmail.com>]

> 
> Sent: Thursday, June 23, 2005 1:18 PM 
> To: user-java@ibatis.apache.org 
> Subject: Re: No operations allowed after connection closed. 
> 
>  Meindert, 
> 
>  Please provide more information. I can't really tell what is happening 
> 
> in your situation. If you Servlet Session is timing out it should have 
> 
> not affect on the database connection. My notion is that it is 
> 
> something else. Please provide the database and driver with versions 
> 
> that you are using and a more specific description of what the 
> 
> application is doing when you experience this error. 
> 
>  Thanks 
> 
> Brandon 
> 
>  On 6/23/05, Meindert <meindert@pastelebusiness.com> wrote: 
> 
> > 
> 
> > 
> 
> > 
> 
> > 
> 
> > How can I force a reconnect after a session has been timed out 
> 
> > ________________________________ 
> 
> > 
> 
> > 
> 
> > I was hoping anybody could help me here, it is probably a stupid thing 
> but 
> I 
> 
> > can't seem to find the answer.. 
> 
> > 
> 
> > My application is based on the jpetshop. 
> 
> > 
> 
> > 
> 
> > 
> 
> > Anyway, I have on my main page a paginated list (employeeList) that must 
> be 
> 
> > fetched every time the page is loaded. 
> 
> > 
> 
> > I set it to null in the reset method of the bean 
> 
> > 
> 
> > 
> 
> > 
> 
> > public void reset() { 
> 
> > 
> 
> > pageDirection = null; 
> 
> > 
> 
> > employeeList = null; 
> 
> > 
> 
> > } 
> 
> > 
> 
> > 
> 
> > 
> 
> > And I call the service layer to do the (simple) query, when I go to 
> 
> > index.shtml 
> 
> > 
> 
> > 
> 
> > 
> 
> > public String index() { 
> 
> > 
> 
> > setEmployeeList(dailyBulletinService.getOutStaff()); 
> 
> > 
> 
> > return "success"; 
> 
> > 
> 
> > } 
> 
> > 
> 
> > 
> 
> > 
> 
> > My problem is that the page loads with an error "after a while" (I 
> assume 
> 
> > after the session times out) 
> 
> > 
> 
> > Pressing F5 in the browser will clear this error. 
> 
> > 
> 
> > What am I doing wrong or how do I get ride of it? 
> 
> > 
> 
> > I'm using mysql, tomcat on a linux machine. 
> 
> > 
> 
> > 
> 
> > 
> 
> > The error is: java.sql.SQLException: Communication link failure: 
> 
> > java.io.EOFException, underlying cause: null 
> 
> > Caused by: java.sql.SQLException: No operations allowed after connection 
> 
> > closed. 
> 
> > 
> 
> > Connection was closed due to the following exception: 
> 
> > 
> 
> > ** BEGIN NESTED EXCEPTION ** 
> 
> > 
> 
> > java.sql.SQLException 
> 
> > MESSAGE: Communication link failure: java.io.EOFException, underlying 
> cause: 
> 
> > null 
> 
> > 
> 
> > ** BEGIN NESTED EXCEPTION ** 
> 
> > 
> 
> > java.io.EOFException 
> 
> > 
> 
> > 
> 
> > 
> 
> > 
> 
> > 
> 
> > Please help 
> 
> > 
> 
> > Meindert 
> 
>

Mime
View raw message