powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / "Замирание" программы при работе с Cache через Factory.
7 сообщений из 7, страница 1 из 1
"Замирание" программы при работе с Cache через Factory.
    #35381178
Hisbreht Victor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеем программу, в которой на фоновом потоке периодически выполняются SQL запросы к БД.
И вот что заметил, в момент первого исполнения метода Next после Open, если SQL запрос достаточно серьезный (удалось построить запрос, выполнявшийся больше пяти минут), программа останавливается, в том числе главный поток, на котором графический интерфейс работает.
Сие весьма неприятно.
Что посоветуете?
На данный момент есть три идеи.
1. Сделать не фоновый поток, а независимое приложение, которое будет делать запросы и передавать результаты в основную программу.
2. Использовать какой-нибудь другой метод доступа, пока непонятно какой.
3. Как-то что-то настроить, чтобы Factory не чудил (представляется маловероятным).
Виктор
...
Рейтинг: 0 / 0
"Замирание" программы при работе с Cache через Factory.
    #35381455
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какая у Вас версия Cache'?
Какое средство разработки (Delphi, .Net, ...)?
Общались с Вашим техническим консультантом InterSystems?

Вадим
...
Рейтинг: 0 / 0
"Замирание" программы при работе с Cache через Factory.
    #35381955
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Hisbreht Victor
Вы используете один Factory в основном и фоновом потоках или в каждом свой?
Сейчас есть новая библиотека CacheActiveX.dll. Лучше использовать её вместо старой CacheObject.dll.

Hisbreht Victorудалось построить запрос, выполнявшийся больше пяти минут
Долго. Сколько возвращается данных: тысячи, миллионы? Если ускорить запрос всё же не получается, можно вызывать запрос асинхронно, воспользовавшись, например, классом %ScrollableResultSet и методом SetOutput у Factory.
...
Рейтинг: 0 / 0
"Замирание" программы при работе с Cache через Factory.
    #35383669
Hisbreht Victor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема решилась странным способом.

Сначала было так. Несколько тредов, общающихся с БД, у каждого свой объект Factory. Все операции с объектом от создания до изничтожения производились на своем персональном треде этого объекта.

Изменение было внесено следующее, с моей точки зрения неадекватное результату и здравому смыслу:
Теперь все объекты создаются на основном треде, DynamicSQL и Execute вызываются там же, а все Next и завершение - уже на треде. Проблема тут же исчезла.
...
Рейтинг: 0 / 0
"Замирание" программы при работе с Cache через Factory.
    #35383707
Hisbreht Victor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servitTo Hisbreht Victor Сейчас есть новая библиотека CacheActiveX.dll. Лучше использовать её вместо старой CacheObject.dll.А это как? Там новый интерфейс или просто новая версия библиотеки?

servit Hisbreht Victorудалось построить запрос, выполнявшийся больше пяти минут
Долго. Сколько возвращается данных: тысячи, миллионы? Если ускорить запрос всё же не получаетсяЗаписей не так уж и много, две связанные таблички под две сотни тысяч записей. Просто запрос был сконструирован совершенно неправильно. После переконструирования время выполнения уменьшилось до нескольких секунд.
Пять минут, кстати, субъективное время, с секундомером не засекал, так что реальное может оказаться несколько меньше.
...
Рейтинг: 0 / 0
"Замирание" программы при работе с Cache через Factory.
    #35384223
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hisbreht VictorА это как? Там новый интерфейс или просто новая версия библиотеки?
Improved ActiveX Bindings
...
Рейтинг: 0 / 0
"Замирание" программы при работе с Cache через Factory.
    #35386108
Hisbreht Victor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servit Hisbreht VictorА это как? Там новый интерфейс или просто новая версия библиотеки?
Improved ActiveX Bindings
Попробовал простой заменой. Пока получил только исключения при попытке выполнить SQL запрос.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / "Замирание" программы при работе с Cache через Factory.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]