Почему Crystal Reports 8 зависает?

У меня проблема с Crystal Reports 8. При экспорте отчета из моего приложения Crystal Reports иногда зависает. Окна прогресса просто остаются, говоря, что экспортировано X из X записей.

  1. Небольшие отчеты с меньшим количеством данных чаще зависают.
  2. Более быстрые рабочие станции (P4, Core2) имеют тенденцию зависать гораздо чаще, иногда при каждой второй попытке. На старых рабочих станциях (‹ P2) зависаний не происходит вообще или хотя бы раз в один-два дня.
  3. Формат экспорта (rtf, pdf, html, rpt) не влияет на зависание.
  4. Один и тот же отчет можно успешно экспортировать несколько раз с одними и теми же данными, но в конечном итоге он зависнет.
  5. В Windows Vista не происходит зависания (!)

Есть ли способ остановить это или, по крайней мере, способ предсказать замораживание?


person Daniel Rikowski    schedule 21.10.2008    source источник
comment
Возможно, вы захотите опубликовать свой код. Забавно, но я обновляю приложение CR8 до CR XI и у меня возникают проблемы с зависанием XI, в то время как CR8 работал отлично.   -  person anon6439    schedule 21.10.2008


Ответы (2)


После долгих поисков мы наконец отследили источник вызова WaitForSingleObject(?, INFINITE). Похоже, что у CR8 есть некоторые ошибки синхронизации, которые становятся очевидными на быстрых рабочих станциях.

Это каким-то образом связано с окном прогресса, и анимация в Vista, кажется, смягчает проблему.

Теоретически решением будет исправление проблемного файла и замена WaitForSingleObject параметром тайм-аута.

person Daniel Rikowski    schedule 24.08.2009
comment
Могу я спросить, как вы определили это как причину проблемы? У меня возникла аналогичная проблема при массовом экспорте тысяч файлов CR8.5. - person MartW; 10.09.2009
comment
Я использовал ProcessMonitor для отображения стека вызовов каждого потока. - person Daniel Rikowski; 10.09.2009

CR 8 — довольно старый продукт, вы можете проверить тех, кто владеет им сейчас (все еще Business Objects?) на наличие обновлений (в частности, исправлений для версии 8). Это может быть что-то, что они исправили в прошлом с выпуском обновления.

person Jeff Schumacher    schedule 21.10.2008
comment
Да, мы это сделали (CR 11). Но, к сожалению, нам приходится поддерживать некоторые из наших устаревших продуктов. - person Daniel Rikowski; 21.10.2008
comment
Извините, я должен уточнить. Я не имел в виду обновление до последней версии, я имел в виду обновления в виде хотфиксов до v8 продукта. - person Jeff Schumacher; 21.10.2008
comment
Хорошо, извините, я должен был читать внимательнее... Мы уже пробовали это, но безуспешно. - person Daniel Rikowski; 24.10.2008