Hi all!

Unfortunately, Catalyst::Model::DBI and similar modules are too simple to
avoid some more rare situations.
For example, what if $dbh->prepare result is fine but before you call
$dbh->execute the database will be "gone away"?

I'm creating a DBI wrapper (it will be called DBIx::Safe) that handles all
disconnections transparently.
If there is no transaction this module gives you 100% guarantee that your
query will be executed without disconnection errors.
In case of transaction it will notify you when you can safely restart the
transaction (when it fails because of disconnection). This is very good
feature for DBIx:Class's txn_do method. DBIC could restart the transaction
(which is coderef) until it is completed succesfully.
Together it could be 100% disconnections-safe system.

And I need your help.
I use $dbh->err to determine that query fails because of disconnection.
I noticed that posgresql 8.0-8.2 returns errcode "7" when connection with
database lost.
Mysql 4.1 returns "2006".

Can you please send me database versions and errcodes for disconnects that
you know?
I didn't find it neither in DBD::* nor at database docs website.



2007/4/19, Jon <[EMAIL PROTECTED]>:


On Thu, 2007-04-19 at 13:54 +0100, Adeola Awoyemi wrote:
> Hi all,
>
> I have problem that when I run my app via fastcgi I get an error
> where one of my models can't connect to the database with the message
> "MySQL server has gone away". When I start it using 'script/
> myapp_server.pl' it works fine.
>

Would I be correct in guessing that you're using DBI directly, not
Catalyst::Model::DBI or Catalyst::Model::DBIC::Schema ?

This problem will occur when a process forks after creating a DBI
connection, since the connection becomes invalid in the child process.
See the code in Catalyst::Model::DBI for ways to handle this.

Having said that, I can't think how fastcgi would be forking after
initialising DBI - fastcgi forks first and runs perl later.

Nevertheless I'd still refer you to the automatic connection checking
and reconnection code in Catalyst::Model::DBI (credit Alex Pavlovic).


--

Jon


_______________________________________________
List: [email protected]
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive:
http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/

_______________________________________________
List: [email protected]
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/

Reply via email to