пятница, 20 декабря 2013 г.

Мониторинг JasperServer

Выяснилось, что на тяжёлых отчётах (~40млн строк) JasperServer периодически падает с различными ошибками. То свободного места ему не хватает, то памяти.

Решено было прикрутить систему маниторинга, позволяющую определять нагрузку в моменты запуска таких отчётов и выявить слабое место.

Выбор пал на Java Melody.
Прикрутить оказалось делом не сложным.
1. Скачиваем 2 JAR файла (jrobin-1.5.14.jar и javamelody-1.48.0.jar) последние версии легко гуглятся.
2. Кладём указанные файлы в каталог WEB_INF/lib JasperServer'а
3. Добавляем в WEB_INF/web.xml следующие строки:

<!-- Begin JavaMelody -->
    <filter>
        <filter-name>monitoring</filter-name>
        <filter-class>net.bull.javamelody.MonitoringFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>monitoring</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <listener>
        <listener-class>net.bull.javamelody.SessionListener</listener-class>
    </listener>
<!-- End JavaMelody -->

4. Перегружаем сервер и переходим на добавленную страницу monitoring:
http://[адрес сервера]:[порт сервера]/jasperserver/monitoring

По итогам было выяснено, что узким местом являлся размер java heap space.

вторник, 17 декабря 2013 г.

Исключение "Висячих" строк

Периодически в данных попадаются конструкции, которые при выгрузке отчёта в Excel приводят к тому, что отображается пустая строка с одним единственным значением.

Например это выглядит так

Строка 1 121099     РФ, г. Москва Не известно Новоарбатский мост   Подмост.
Строка 2           прост.

Заказчику невдомёк, что в данных такого нет, а это "шалости" excel. Для исправления подобных ситуаций Jasper содержит специальную настройку.


Для её активации необходимо выбрать блок "Detail" и в его свойствах поменять значение Split Type = "Prevent" (значение по умолчанию = "Default")

После этого строка из нашего примера приобретает красивый для заказчика вид:

Строка 1 121099     РФ, г. Москва Не известно Новоарбатский мост   Подмост.прост.

понедельник, 14 октября 2013 г.

Эксплуатационная документация по JasperServer

Для полноценного использования JasperServer требуется эксплуатационная документация. К сожалению JasperSoft не потрудился перевести имеющуюся документация на великий и могучий, - поэтому восполняю этот досадный пробел.



Список будет расширяться и обновляться.

Переведены следующие документы:
JasperServer Installation Guige (ENG) - Руководство по установке JasperServer (RUS)

Использование элемента Crosstab в JasperReports

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

вторник, 1 октября 2013 г.

Настройка Report Scheduler для отправки уведомлений посредством почтового сервера

При использовании планировщика для автоматического однократного или многократного запуска формирования отчёта по расписанию сервер JasperReports имеет инструмент Report Scheduler (Планировщик запуска отчётов). Планировщик имеет гибкие настройки и позволяет отправлять уведомления о выполнении задания на адрес электронной почты. Но для использования отправки уведомлений требуется предварительная настройка в конфигурационных файлах.

Настройка Report Scheduler для отправки уведомлений посредством почтового сервера

Параметры JVM для серверов приложений

Сервер JasperReports поддерживает на Java версий 1.6 и 1.7. Параметры выполнения Java Virtual Machine (JVM) должны быть установлены правильно, для исключения конфликтов с классами веб сервисов, а также корректной работы "тяжёлых" отчётов.

Настройка отображения хранилища в iReport Designer

Для того, чтобы созданные шаблоны в iRD не приходилось копировать вручную на ваш JasperReport Server необходимо настроить Repository Navigator.

Для этого необходимо выполнить следующие шаги:
1. Запустить iRD и в меню перейти "Window" - "JasperReport Server Repositry"
2. Нажать на кнопку "Add new server"
3. В строке JasperReport Server URL изменить строку адреса для вашего JasperReport Server, а также заполнить поля логин/пароль
4. После этого во вновь созданном элементе сервера будут доступны все ресурсы, созданные на сервере. Через контекстное меню также возможно создание новых отчётов и модификация ранее загруженных.

Для модификации ранее загруженного отчёта выберете его среди отчётов и откройте в окне приложения. После модификации выполните следующие шаги:

1. Сохраните отчёт
2. В контекстном меню окна Repository Navigator нажмите правую кнопку на отредактированном отчёте и выберите Properties.
3. На вкладке Resource нажмите кнопку Current Report и затем Save.
4. Закройте отчёт на сервере и откройте его заново, после чего запустите отчёт на выполнение и убедитесь, что изменения были применены.

понедельник, 23 сентября 2013 г.

Увеличение времени сессии в JasperReport

По умолчанию в JasperReport установлена продолжительность сессии 20 минут.
Для увеличения этого времени необходимо отредактировать файл web.xml, расположенный в следующей директории:

среда, 18 сентября 2013 г.

Добавляем новый источник данных (Datasource) в iReport Designer

В первой статье я описал процесс добавления JDBC Driver для коннекта к MS SQLServer.

Создадим новый источник данных.
Для этого необходимо выполнить следующие действия:
1. На панели инструментов нажимаем на кнопку "Report Datasources"
2. Далее нажимаем "New", затем выбираем в списке "Database JDBC Connection", после чего выбираем JDBC Driver MS SQLServer (2005) (com.microsoft.sqlserver.jdbc.SQLServerDriver) и заполняем остальные значения, самым важным из которых является JDBC URL. В общем виде он выглядит так:
jdbc:sqlserver://IP ADDRESS БД:1433;databaseName=НАЗВАНИЕ СХЕМЫ ДАННЫХ
3. Проверяем соединение (кнопка "Test") и сохраняем новый источник данных.

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

Добавляем JDBC Driver для коннекта к MS SQLServer.

Из коробки iRerport Designer (iRD) не умеет коннектиться к MS SQL Server. Для исправления этого досадного недоразумения необходимо проделать следующие шаги:

1. Скачать архив, содержащий sqljdbc4 по следующей ссылке;
2. Из всего архива необходим только один файл - sqljdbc4.jar. В настройках iRD (Tools- Options вкладка Classpath кнопка "Add JAR") необходимо прописать путь к данному файлу;
3. После выполнения шага№2 в списке JDBC Driver'ов при добавлении нового коннекта к БД должен появиться драйвер MS SQLServer (net.sourceforge.jtds.jdbc.Driver).