I have set up my delphi application that I created with a button named Connect.
Once I click it it executes the following code:
begin
someConnection.Connected:=true;
somecomenziDataSet.Active:=true;
end;
Similarly I have a button for Disconnect purposes which does the same thing but with =false;
My problem is the database I'm connecting to is hosted on a shared hosting account and the mysql server has wait_timeout variable set to 60 seconds, interactive_timeout is set to 30 seconds.
Naturally, this disconnects me if I don't use my app for 60 seconds.
Is there any way to keep that connection alive?
Hosting company won't change the setting so i'm stuck with it.
I'm using RAD Studio 10 Seattle, dbexpress components, TSQLConnection and my database is mysql
Please do let me know in a comment if I left any necessary info out, thanks!
You can use a TTimer to periodically "ping" the database (e.g. interval of 10-20 seconds given a 60 sec timeout):
procedure TMyDataModule.ConnectionPingTimer(Sender: TObject);
begin
if not MySQLConnection.InTransaction then
MySQLConnection.Execute('DO 0', nil); // or "SELECT 1" or whatever is cheapest
end;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With