Zerwane połączenie z baza danych

0

Napisałem aplikację która jest serwerem opartym o IDTcpServer (Indy10). Oraz aplikacje klienta działającą w oparciu o IDTcpClient.
Działania polega na tym że klient łączy się do serwera i przesyła do niego komunikat, a następnie serwer odpowiada na ten komunikat:
Zdarzenie onExecute dla IDTcpServer wygląda w skrócie następująco:

line:= AContext.Connection.IOHandler.ReadLn;
AContext.Connection.IOHandler.WriteLn('DATA'+IntToStr(wartosc));

Po przesłaniu odpowiedzi do klienta serwer zapisuje do bazy danych wartości które wysłał i które otrzymał (dbExpress):

SQLdataSet.CommandText := 'INSERT INTO log (klient,data,start,offset) VALUES (:klient,:data,:star,:off);';
 DM.SQLdataSet.ParamByName('klient').AsString := copy(line, 4, 1);
 DM.SQLdataSet.ParamByName('data').AsString := FormatDateTime('yyyy-mm-dd hh:nn:ss', Now);
 DM.SQLdataSet.ParamByName('star').AsString := lancuch;
 DM.SQLdataSet.ParamByName('off').AsString := Edit1.text;
 DM.SQLdataSet.ExecSQL();

Aplikacja działa poprawnie jeśli jest podłączony jeden client do serwera. Natomiast kiedy włączam drugiego clienta i łączy się z serwerem, na serwerze pojawia się komunikat:

"Database Server Error: Lost connection to MYSQL server during query"
"Database Server Error: MYSQL server has gone away"

Jak to naprawić?

0

Wydaje mi się że dla każdego klienta musiała by być utworzona intancja TSQLConnection oraz TSQLDataset. Jak to zrealizować? Za pomocą kolekcji?
Szukałem na google jakiś informacji na temat kolekcji używanych w delphi ale nie moge nic znaleźć.

1 użytkowników online, w tym zalogowanych: 0, gości: 1