2015-02-27 5 views
0

Я использую Birt 4.4.0 и вызываю класс Java для запуска отчетов. Оператор sql возвращает не более 100 строк, но я получаю Недостаточно памяти для выполнения этого отчета ошибка.Birt: Недостаточно памяти для выполнения отчета

org.eclipse.birt.report.engine.api.impl.EngineTask handleFatalExceptions 
SEVERE: There is insufficient memory to execute this report. 

Я попытался увеличить как пространство кучи и памяти PermGen на catalina.bat файл по -Xms1024m -Xmx4096m -XX: MaxPermSize = 512m, но не повезло.

Любые идеи?

+0

Опубликовать соответствующий код в классе Java? – immibis

+0

Вы пытаетесь запустить его в BIRT или вы вызываете отчет как веб-страницу через Apache? –

+0

Вы должны сообщить нам, какую БД вы используете и как вы на самом деле называете BIRT. Обратите внимание, что BIRT> = 4.2.2 не работает с Oracle, в зависимости от ваших запросов и в зависимости от драйвера JDBC. – hvb

ответ

2

Хмм, при написании комментария я вспомнил, что в прошлом году у меня была аналогичная проблема: даже самые простые запросы вызвали проблемы с памятью.

Примечание: Этот ответ действителен только в том случае, если ваше приложение использует базу данных Oracle.

В моем случае, мое приложение (и Eclipse, BIRT IDE) использует Java 7.

Если вы используете Java 7, вы должны использовать последние ojdbc7.jar от Oracle (неojdbc6.jar). Я, наконец, нашел это после нескольких часов борьбы с BIRT, пока мои клиенты смотрели.

Также обратите внимание на https://bugs.eclipse.org/bugs/show_bug.cgi?id=407299, который может пострадать в зависимости от вашего запроса.

+0

Ты прибил его! – Smith

+0

Из любопытства: ... пригвоздил его к ojdbc7.jar или к ошибке? – hvb

Смежные вопросы