I think that the main problem is (and that's the impression that I'm getting from their replies to these bug reports) that they don't think there's a problem. Basically, they are closing every opened connection automatically after 8 hours of inactivity. They then claim that it's up to the application or the connection pooling layer to check for the error condition that occurs and re- create the connection. This however means that those checks have to be done *everywhere* you use a connection (which is basically all the db-related code). I personally think that this is very invasive for something that I consider to be bad behavior on their behalf.

I have to add that RIFE's connection pool of course already does something like this. When an error occurs everything is closed and cleaned up properly, and the connection pool tries to acquire new connections. The exception is however re-thrown as a meaningful exception, which is what you saw bubbling up.

What MySQL apparently seems to advocate though is that because they insist on closing connections after 8 hours of inactivity, that after the connection is re-created, the original operation is however tried again and no exceptions are thrown further. This can however become very complex when transactions are active. If they are, you typically don't want operations to be automatically retried, since the previous transactional state has probably rolled back, etc etc

--
Geert Bevin
Uwyn "Use what you need" - http://uwyn.com
RIFE Java application framework - http://rifers.org
Music and words - http://gbevin.com


_______________________________________________
Rife-users mailing list
[email protected]
http://lists.uwyn.com/mailman/listinfo/rife-users

Reply via email to