Страница 1 из 2

Память сервера сокращается после каждого запроса

Добавлено: 09 ноя 2016, 14:38
Erkin
Здравствуйте!

У нас пользователи постоянно создают отчеты через портал. Отчеты формируются в течении 30 сек и при каждом формировании на сервере память уменьшается на 100-300 Мб.

На форуме нашел следующие параметры:

Код: Выделить всё

StiOptions.Engine.DocumentLoadingOptimization = true;
StiOptions.Engine.DocumentSavingOptimization = true;
где они прописываются, когда на сервере лежат только jar-файлы и все настройки сводятся к настройке сервлета?

Re: Память сервера сокращается после каждого запроса

Добавлено: 09 ноя 2016, 15:11
Vadim
Здравствуйте.
Вы используете WebViewer (HTML) ?
Обновитесь до последнего пре-релиз билда, там исправлена memoryleak проблема.

Re: Память сервера сокращается после каждого запроса

Добавлено: 09 ноя 2016, 16:06
Erkin
Vadim писал(а):Здравствуйте.
Вы используете WebViewer (HTML) ?
Обновитесь до последнего пре-релиз билда, там исправлена memoryleak проблема.
Да, Java + HTML. Не подскажите откуда можно скачать новые jar-ники? Спасибо!

Re: Память сервера сокращается после каждого запроса

Добавлено: 09 ноя 2016, 16:12
Erkin
Проблема в том, что в памяти, пока JEE-сессия жива хранится результат всего запроса, а это тысячи строк табличных данных. Поэтому стало интересны опции, позволяющие постраничную загрузку. По поведению не было похоже на MemoryLeak. И соответственно возникает вопрос: как принудительно закрыть сессию сервлета отчетов, чтобы высвободить память?

Re: Память сервера сокращается после каждого запроса

Добавлено: 10 ноя 2016, 08:42
Erkin
скачал trial-версии jar-файлов 2016.2.6 (до этого в системе использовались 2015.2), вроде работает, но как долго trial может быть активным?

Re: Память сервера сокращается после каждого запроса

Добавлено: 10 ноя 2016, 09:11
Ivan
Здравствуйте.

Trial версии наших продуктов не ограничены по времени работы, отличие от лицензионных - только в надписи Demo.

Спасибо.

Re: Память сервера сокращается после каждого запроса

Добавлено: 16 ноя 2016, 12:04
Erkin
скачал последнюю версию 2016.2.6, но на сервере память после каждого отчета уменьшается - можете исправить эту проблему? если использовать физическую память вне JVM, тогда мне кажется проблема исчезнет...

Re: Память сервера сокращается после каждого запроса

Добавлено: 17 ноя 2016, 10:56
Vadim
Здравствуйте.
Для WebViewer отчет и данные хранятся в сессии.
Если вы хотете просто отображать отчет вы можете в сервлете генерировать отчет и экспортировать в HTML

Re: Память сервера сокращается после каждого запроса

Добавлено: 17 ноя 2016, 11:43
Erkin
Спасибо за воодушевляющий ответ! А как в сервлете генерировать отчет? Неужели все решают эту проблему увеличением памяти?

Re: Память сервера сокращается после каждого запроса

Добавлено: 17 ноя 2016, 14:11
Vadim
Здравствуйте.
Большой отчет соответсвенно занимат много места в памяти.
Пример генерации отчета

Код: Выделить всё

public class StiHtmlServlet extends HttpServlet{
    
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        StiReport report = StiSerializeManager.deserializeReport(new File(pathname));
        report.render();
        resp.setContentType("text/html");
        StiHtmlExportSettings settings = new StiHtmlExportSettings();
        settings.setPageRange(new StiPagesRange(StiRangeType.Pages, "1-10", 1));
        StiExportManager.exportHtml(report, settings, resp.getOutputStream());
    }
    
}