On Tue, Sep 30, 2025, at 3:08 PM, Claude Pache wrote:
>> Le 30 sept. 2025 à 17:40, Larry Garfield <[email protected]> a écrit :
>> 
>> 
>> What would be valuable is easier RE-connection logic.  Either PHP or MySQL 
>> may terminate an idle connection, which is a concern in long-running 
>> processes (Queue workers, ReactPHP, Franken, etc.).  Tools like Doctrine 
>> have built their own refresh logic in, although they're not always 
>> consistent with each other or obvious to use.  Having some kind of 
>> reconnection logic built into PDO that "just works" would be very valuable.
>> 
>> What that would look like, I'm not sure.  Just spitballing:
>> 
>> // After X seconds, drop and reopen the connection the next time it's used.
>> $pdo->reconnectAfter($seconds);
>> 
>> --Larry Garfield
>
> Auto-reconnection is dangerous, because database engines are stateful. 
> For example, disaster will happen if disconnection had occurred in the 
> middle of a transaction...
>
> —Claude

All the more reason that the logic should be implemented once in PDO and then 
shared, rather than everyone having to figure it out in user space themselves.

I'm not suggesting that PDO actively try to disconnect all the time.  But if 
the connection is "stale," it should be able to restart it without making the 
user faff about to do so.  (Whether that's via detecting that it's gone away, a 
timer, or whatever else, I'm very flexible.)

--Larry Garfield

Reply via email to