Добрый день.
Пользователи жалуются на постоянные временные "провалы", которые периодически возникают на клиенте. Выполнение какого либо запроса может затягиваться на 10-40 секунд и более... такое впечатление, что происходит разрыв соединения и далее происходит восстановление связи. Но, делая тесты я понимаю, что разрыва нет, пинги стабильные без провалов. Есть схожесть в показаниях... вроде как если не работать какое-то время и потом возвращаться к работе за программой начинает липнуть (длительное ожидание), хотя есть пользователи, которые утверждают что в процессе активной работы может липнуть.
Но есть одно НО, когда проект был скомпилирован на XE6, такого не было.. нарекания стали появляться после того как вышла новая версия, скомпилированная на DX 10.2, сейчас DX 10.3.2 и похоже ничего не меняется.
Вот код создания TFDConnection, через который идёт вызов всех запросов.
FConnection := TFDConnection.Create(nil);
// Возможен случай чтения "грязных" данных.
FConnection.TxOptions.Isolation := xiDirtyRead;
// Загрузка полного набор данных.
FConnection.FetchOptions.Mode := fmAll;
// Строка коннекции.
FConnection.ConnectionString := FBranchConnection;
FConnection.LoginPrompt := False;
// Флаг автоматического восстановления соединения.
FConnection.ResourceOptions.AutoReconnect := True;
// Флаг тихого выполнения хранимых процедур и запросов.
FConnection.ResourceOptions.SilentMode := True;
FConnection.Open;
FConnection.Connected := True;
Все запросы на MSSQL идут через TFDStoredProc, который "связан" с TFDConnection.
Возможно имеются некое "засыпание" связи, которое предусмотрено в новых версиях FireDAC, или что-то подобное. Подскажите, какие ещё свойства можно посмотреть в TFDConnection? На что посоветуете обратить внимание?
Буду признателен за любой совет, который может помочь решить проблему с временными провалами выполнения хранимых процедур...