ODAC 9.6.20 Зависание TSmartQuery в NonBlocking режиме

Обсуждение возникших проблем, предложений и ошибок ODAC компонентов
Закрыто
idealser
Сообщения: 1
Зарегистрирован: Чт 08 окт 2015 08:15

ODAC 9.6.20 Зависание TSmartQuery в NonBlocking режиме

Сообщение idealser » Чт 08 окт 2015 08:26

Доброе время суток!

Windows 10 x64
RAD Studio XE8
ODAC 9.6.20
Oracle 11.2.0.4

TSmartQuery зависает со свойством NonBlocking=true до окончания выполнения SQL запроса в методе Open(). Происходит это по той причине, что он пытается выполнить дополнительные запросы в тот момент, когда первый не завершил выполнение. Так как сессия в Oracle у нас одна, происходит блокировка. Можно легко воспроизвести, если сделать выборку в которой будет присутствовать процедура с бесконечным циклом. Если выполнить тоже самое в Execute(), ничего не блокируется, и мы можем отменить запрос. В случае же с Open() поток блокируется. Пример во вложении.
Вложения
ODAC Hang test.rar
(5.32 КБ) 249 скачиваний

MaximG
Devart Team
Сообщения: 114
Зарегистрирован: Пн 06 июл 2015 12:51

Re: ODAC 9.6.20 Зависание TSmartQuery в NonBlocking режиме

Сообщение MaximG » Чт 08 окт 2015 14:32

Мы исследуем поведение TSmartQuery в NonBlocking режиме и сообщим Вам о результатах в ближайшее время

MaximG
Devart Team
Сообщения: 114
Зарегистрирован: Пн 06 июл 2015 12:51

Re: ODAC 9.6.20 Зависание TSmartQuery в NonBlocking режиме

Сообщение MaximG » Вт 08 дек 2015 16:20

Мы исправили поведение TSmartQuery в NonBlocking режиме. Исправление будет включено в следующий билд ODAC, который мы планируем выпустить на следующей неделе

Закрыто