FastReport и многпоточность - как привильно?

отредактировано July 2005 Раздел: FastReport 3.0
Скажите пожалуйста, есть ли какие хитрости при написании многопоточных приложений, использующих несколько экземпляров FR в разных потоках (аля сервер отчетов)...
В документации по этому поводу крайне мало инфы, у собственных поделок (за образцы взяты исходники ReportServer ) через некоторое время начинает утекать память....

Комментарии

  • отредактировано 10:00
    Перед запуском отчета надо установить TfrxReport.EngineOptions.ReportThread := thread, в котором запускается FR. Ну и еще TfrxReport.EngineOptions.SilentMode := True
  • отредактировано 10:00
    Спасибо! так и сделанно. Увы (( - не очень помогает....
  • отредактировано 10:00
    Присылайте тестовый проект. В сервере вроде ничего не утекает.
  • отредактировано 10:00
    AlexTZ написал:
    Присылайте тестовый проект. В сервере вроде ничего не утекает.
    Собственно с попытки использовать сервер все и началось... (используется Delphi 5).
    Пример сервера из поставки FR был запущен, и его тестировали под нагрузкой на примерах отчетов, входящих в состав демки (нагрузка эмулировалась сриптом, даже 5 / для имитации многопоточности/, постоянно посылающим запрос на генерацию отчета на сервер). Сервер работал очень нестабильно /ошибки, вылеты/ и текла память.
    Решили, что дело в ADO. Потом был собран модуль интерфейса для DOA (мы используем ORACLE). Сервер был протестирован с использованием этого модуля и простого отчета - результат тотже (((.
    Сейчас вожусь с разными вариантами примеров. Когда наберу статистику - вышлю наиболее "характерный".
  • отредактировано 10:00
    Наверное, стоит использовать Делфи7. В Делфи5 в ADO проблемы.
  • отредактировано July 2005
    AlexTZ написал:
    Наверное, стоит использовать Делфи7. В Делфи5 в ADO проблемы.
    К сожалению, использовать 7 не можем ((((((
    ADO мы не используем в реальности, пользуемся DOA.
    проблемы с DOA увы повторяются - через пару часов работы в какой-то момент приложение отжирает всю доступную виртуальную память и слетает (енжина создается в триде динамически только на момент построения отчета)...
    в понедельник пришлю пример хотя - он простой как полено - создаю и запускаю трид, который в вечном цикле создает енжину, гурзит туда из файла отчет созжает конвертор, выгружает отчет в HTML грохает конвертор и энжину и процесс повторяется. таких тридов я создаю обычно 3 штуки (новй трид создается по нажатию кнопки на главной форме). надо ли сам отчет (он создан под нашу схему данных)?
  • отредактировано 10:00
    Желательно, чтобы ситуацию можно было воспроизвести на базе из DBDEMOS.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.