Гранична кількість завдань з обробки звітів в Crystal Reports, Oracle, Бази даних, статті

Введення

Коли веб-додаток, розроблене з використанням 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. Це необхідно зробити або при закритті вікна браузера, або якщо користувач переходить до іншої сторінки.



Такий спосіб може тимчасово призупинити виникнення помилки, але із зростанням навантаження ця помилка знову почне проявлятися або, що ще гірше, система може зависнути, і єдиним способом відновлення працездатності буде перезавантаження системи. Для програми, що використовує 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_MACHINESOFTWARECrystal Decisions10.0Report Application Server InprocServerPrintJobLimit


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


HKEY_LOCAL_MACHINESOFTWARECrystal Decisions10.2Report Application Server InprocServerPrintJobLimit


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


HKEY_LOCAL_MACHINESOFTWAREBusiness Objects10.5
eport Application serverInProcServer PrintJobLimitPrintJobLimit


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


HKEY_LOCAL_MACHINESOFTWAREBusiness ObjectsSuite 11.0Report Application ServerInprocServerPrintJobLimit


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


HKEY_LOCAL_MACHINESOFTWAREBusiness ObjectsSuite 11.5Report Application ServerInprocServerPrintJobLimit


Для Crystal Reports 2008 (12.xx)


HKEY_LOCAL_MACHINESOFTWAREBusiness ObjectsSuite 12.0Report Application ServerInprocServerPrintJobLimit


При встановленні значення 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


Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*