+7 (495) 229-0436   shopadmin@itshop.ru 119334, г. Москва, ул. Бардина, д. 4, корп. 3
 
 
Вход
 
 
Каталог
 
 
Подписка на новости
Новости ITShop
Windows 7 и Office: Новости и советы
Обучение и сертификация Microsoft
Вопросы и ответы по MSSQLServer
Delphi - проблемы и решения
Adobe Photoshop: алхимия дизайна
 
Ваш отзыв
Оцените качество магазина ITShop.ru на Яндекс.Маркете. Если вам нравится наш магазин - скажите об этом Google!
 
 
Способы оплаты
 
Курс расчета
 
 1 у.е. = 94.09 руб.
 
 Цены показывать:
 
 
 
 
  
Новости, статьи, акции
 

Предельное количество заданий по обработке отчетов в Crystal Reports

18.11.2010 09:50

Введение

Когда веб-приложение, разработанное с использованием Crystal reports SDK для Visual Studio .NET, обрабатывает большое задание печати или большое число отчетов, может появиться следующее сообщение об ошибке:

"System.Exception: Load report failed. System.Runtime.InteropServices.COMException (0x80041016): The maximum report processing jobs limit configured by your system administrator has been reached."

"Системное исключение: Сбой загрузки отчета. System . Runtime . InteropServices . COMException (0 x 80041016): Достигнуто предельное количество заданий обработки отчетов, сконфигурированное Вашим системным администратором".

Обычно это сообщение сопровождается ошибкой "Load Report Failed".

В данной статье обсуждаются вероятные причины ошибки и возможные решения.

Применимо к:

Crystal Reports 10.0 до Crystal Reports 2008 (12.0.x), когда они работают в соответствующих версиях среды Visual Studio.NET.

Возможные причины

Сообщение об ошибке возникает потому, что веб-приложение превысило принятое по умолчанию предельное значение 75 для задания печати, принятое для механизма Crystal Reports reporting engine.  Или, другими словами, процессор подготовки отчетов работал с высокой нагрузкой. Существует ряд факторов, вызывающих сбой в работе процессора отчетов от высокой нагрузки, и для каждого случая применяется отдельное решение, как показано ниже.

Вопросы, связанные с программированием

Корректное программирование подразумевает полный контроль над любыми объектами и соответственно их удаление, когда в них больше нет необходимости. Это справедливо для любого объекта, который поддерживает интерфейс IDisposable.

  • Процессору отчетов передано слишком много заданий печати

Начиная с версии Crystal Reports 10, процессор отчетов был оптимизирован с точки зрения повышения производительности обработки отчетов. Существуют специальные разделы реестра, контролирующие эту оптимизацию. По умолчанию, предельное количество заданий печати установлено равным 75. Когда приложение работает с большой нагрузкой, может быть достигнуто предельное значение заданий печати, равное 75, и это может вызвать ошибку работы приложения. Обратите внимание, что задание печати включает в себя обработку объектов главного отчета, подотчетов и объектов текущего сеанса работы (например, выполнение детализации, разбивка на страницы, осуществление поиска и т.д.). Поэтому при обработке одного отчета может быть превышено предельное значение 75 для задания печати. Рассмотрим отчет, который возвращает 75 записей, при этом подотчет помещен в раздел подробностей и, следовательно, присутствует в каждой записи. Для такого отчета потребуется обработать 75 подотчетов плюс главный отчет, в результате получим 76 заданий печати, а это вызовет появление ошибки.

  • Слишком большое количество запросов от пользователей на выдачу отчетов

Несмотря на тесную связь с причиной "Процессору отчетов передано слишком много заданий печати", существует некоторое отличие. Если слишком большое количество пользователей обратилось с запросами к процессору запросов, то последний попытается обработать большее количество заданий печати, чем то, на которое он был сконфигурирован. В качестве примера рассмотрим трех пользователей, каждый из которых сделал запрос на выдачу отчета с 25 подотчетами. Это потребует от процессора отчетов обработать 78 заданий печати;

(25 подотчетов * 3 пользователя) + (3 главных отчета)

в результате это вызовет появление ошибки превышения предельного количества заданий печати.

  • Достигнут предел возможностей аппаратного обеспечения

Низкопроизводительный конечный сервер с маломощным CPU достигнет предела своих возможностей быстрее, чем высокопроизводительный конечный сервер с несколькими CPU.

  • Неправильно подобранное ПО

Приложение Crystal Reports имеет ограниченные возможности обработки. При проектировании веб-приложения с использованием Crystal Reports SDK для Visual Studio .NET учитывайте потенциальную нагрузку, с которой будет работать процессор отчетов. При высокой нагрузке следует рассмотреть возможность использования более гибких расширяемых решений, например Crystal Reports Report Application Server.

Решения

Решение проблемы технического ограничения количества заданий печати зависит от конкретных обстоятельств. При определенных обстоятельствах может применяться несколько возможных решений или может возникнуть необходимость в реализации комбинации решений.

  • Код

Освобождение от ненужных объектов

Проверьте, что вызван метод .Dispose и .Close, когда объект report больше не нужен. Кроме того, убедитесь, что эти методы вызваны не только для Crystal Reports, но и для FileStream, Database Connections, наборов данных или для любого другого объекта, который поддерживает интерфейс IDisposable.

Используйте сеансы

1.     Создайте подпрограмму, которая задает свойство ReportSource средства просмотра и отображает отчет в нем, и добавьте следующую строку кода.

2.     В событие Page_Load добавьте следующие строки кода. Эти строки кода вызовут захват объекта report из объекта Session и зададут свойство ReportSource средства просмотра в течение postback.

Теперь при запуске проекта и при перемещении по страницам отчета в средстве просмотра будет отображаться каждая страница без потери источника отчета, при этом не допускается переполнение стека и памяти и возникновение ошибки превышения предельного значения 75. Однако все равно необходимо закрыть и освободиться от ненужного объекта report. Это необходимо сделать либо при закрытии окна браузера, либо если пользователь переходит к другой странице.

  • Увеличение предельного принятого по умолчанию количества заданий печати, равного 75

Такой способ может временно приостановить возникновение ошибки, но с ростом нагрузки эта ошибка снова начнет проявляться или, что еще хуже, система может зависнуть, и единственным способом восстановления работоспособности будет перезагрузка системы. Для приложения, использующего Crystal reports SDK, раздел реестра "InprocServer" задает предельно допустимое число заданий печати, которое может обработать процессор отчетов.

ПРЕДУПРЕЖДЕНИЕ: Следующее решение предполагает редактирование реестра. Некорректное использование редактора реестра может привести к серьезным проблемам, что может потребовать переустановки операционной системы Microsoft Windows. Воспользуйтесь редактором реестра на свой страх и риск. Настоятельно рекомендуется сделать резервную копию файлов реестра перед редактированием реестра. Для получения справочной информации о редактировании разделов реестра обратитесь к разделу справочной системы 'Changing Keys And Values'  ("Изменение ключей и значений") в редакторе реестра (Regedit.exe).

Примечание: Принятое по умолчанию значение 75 обеспечивает оптимальную производительность в протестированных средах. Изменение этого значения может повлиять на производительность системы.

Для изменения значения параметра PrintJobLimit выполните следующие шаги:

1) Щелкните мышью на кнопках Start > Run. Появится диалоговое окно Run.

2) Наберите команду "regedit" в поле Open. Щелкните на кнопке OK. Появится окно Registry Editor.

Перейдите к соответствующему значению раздела реестра, как показано ниже.

Для Crystal Reports 10.0.x

HKEY_LOCAL_MACHINE\SOFTWARE\Crystal Decisions\10.0\Report Application Server\ InprocServer\PrintJobLimit

Для Crystal Reports 10.2 (Visual Studio .NET 2005 bundle)

HKEY_LOCAL_MACHINE\SOFTWARE\Crystal Decisions\10.2\Report Application Server\ InprocServer\PrintJobLimit

Для Crystal Reports Basic for Visual Studio 2008 (Visual Studio .NET 2008 bundle)

HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects\10.5\report Application server\InProcServer\ PrintJobLimit\PrintJobLimit

Для Crystal Reports XI Release 1 (11.0.x)

HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects\Suite 11.0\Report Application Server\InprocServer\PrintJobLimit

Для Crystal Reports XI Release 2 (11.5.x)

HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects\Suite 11.5\Report Application Server\InprocServer\PrintJobLimit

Для Crystal Reports 2008 (12.x.x)

HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects\Suite 12.0\Report Application Server\InprocServer\PrintJobLimit

При установке значения PrintJobLimit равным "-1" удаляются все ограничения на задания печати.


  • Техническое обеспечение

Серверы с дополнительной памятью, с двойным или даже четверным ядром CPU являются опциональными. Также заслуживает рассмотрения возможность использования веб-ферм. Для получения дополнительной информации о веб-фермах (web-farms) обратитесь к веб-ресурсу для разработчиков Microsoft MSDN Visual Studio 2008 Developer Center; "How Do I Use Crystal Reports in a Web Farm or Web Garden?" (Как я могу использовать Crystal Reports в Web Farm или Web Garden?).

  • Решение с большими возможностями расширения

Рассмотрите возможность перехода к системе с более гибкими средствами расширения, например Crystal Reports Report Application Server или Business Objects Enterprise.

Подробнее о продуктах компании SAP Business Objects

  
Помощь
Задать вопрос
 программы
 обучение
 экзамены
 компьютеры
Бесплатный звонок
ICQ-консультанты
Skype-консультанты

Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 
Бестселлеры
Курсы обучения "Atlassian JIRA - система управления проектами и задачами на предприятии"
Microsoft Windows 10 Профессиональная 32-bit/64-bit. Все языки. Электронный ключ
Microsoft Office для Дома и Учебы 2019. Все языки. Электронный ключ
Курс "Oracle. Программирование на SQL и PL/SQL"
Курс "Основы TOGAF® 9"
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год. Электронный ключ
Курс "Нотация BPMN 2.0. Ее использование для моделирования бизнес-процессов и их регламентации"
 

О нас
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.

На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям.

Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе.

В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.



 

О нас

 
Главная
Каталог
Новинки
Акции
Вакансии
 

Помощь

 
Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 

Способы оплаты

 

Проекты Interface Ltd.

 
Interface.ru   ITShop.ru   Interface.ru/training   Olap.ru   ITnews.ru  
 

119334, г. Москва, ул. Бардина, д. 4, корп. 3
+7 (495) 229-0436   shopadmin@itshop.ru
Проверить аттестат
© ООО "Interface Ltd."
Продаем программное обеспечение с 1990 года