FastReport и многпоточность - как привильно?
Скажите пожалуйста, есть ли какие хитрости при написании многопоточных приложений, использующих несколько экземпляров FR в разных потоках (аля сервер отчетов)...
В документации по этому поводу крайне мало инфы, у собственных поделок (за образцы взяты исходники ReportServer ) через некоторое время начинает утекать память....
В документации по этому поводу крайне мало инфы, у собственных поделок (за образцы взяты исходники ReportServer ) через некоторое время начинает утекать память....
Комментарии
Пример сервера из поставки FR был запущен, и его тестировали под нагрузкой на примерах отчетов, входящих в состав демки (нагрузка эмулировалась сриптом, даже 5 / для имитации многопоточности/, постоянно посылающим запрос на генерацию отчета на сервер). Сервер работал очень нестабильно /ошибки, вылеты/ и текла память.
Решили, что дело в ADO. Потом был собран модуль интерфейса для DOA (мы используем ORACLE). Сервер был протестирован с использованием этого модуля и простого отчета - результат тотже (((.
Сейчас вожусь с разными вариантами примеров. Когда наберу статистику - вышлю наиболее "характерный".
ADO мы не используем в реальности, пользуемся DOA.
проблемы с DOA увы повторяются - через пару часов работы в какой-то момент приложение отжирает всю доступную виртуальную память и слетает (енжина создается в триде динамически только на момент построения отчета)...
в понедельник пришлю пример хотя - он простой как полено - создаю и запускаю трид, который в вечном цикле создает енжину, гурзит туда из файла отчет созжает конвертор, выгружает отчет в HTML грохает конвертор и энжину и процесс повторяется. таких тридов я создаю обычно 3 штуки (новй трид создается по нажатию кнопки на главной форме). надо ли сам отчет (он создан под нашу схему данных)?