Reporting bug?

Started by Ethril, January 18, 2012, 11:08:31 AM

Previous topic - Next topic

Ethril

Пробую фичу с репортами.
Взял готовый репорт IP Inventory отсюда - https://svn.netxms.org/public/netxms/tags/version-1.1.9/reports/ , загрузил в NetXMS (v 1.1.9).
Execute вроде проходит


, но при попытке выгрузить репорт в PDF получаю ошибку:

Alex Kirhenshtein

Отчеты сейчас требуют дополнительных шагов:

1) Скачать https://netxms.org/report-generator.jar (или собрать из trunk/src/java/report-generator/) и положить в любой каталог (в этом примере — /opt/netxms/java-lib/)
2) Добавить в конфиг примерно такое:JavaPath=/usr/bin/java
JavaLibraryDirectory=/opt/netxms/java-lib
JDBCDriver=org.postgresql.Driver
JDBCUrl=jdbc:postgresql://localhost/netxms


Логин/пароль используется из DBLogin/DBPassword.

Ethril

#2
Продолжаю попытки запустить репорты на 1.20 :) Переустановил NetXMS с нуля в песочнице. Среда Windows 2008R2 + MSSQL 2008.
Сразу "из коробки" репорт (пробую на "IP Inventory" с вашего сайта) не заработал.
Раньше, на 1.1.9, после нажатия "Execute report" он хоть появлялся в списке "Results". Теперь не появляется, а в Server Jobs пишется "Report generator failed to start".
Попробовал применить рекомендации Алекса к windows-реалиям :) , скопировал в C:\NetXMS\var\reports сам репорт и report-generator.jar и дописал в C:\NetXMS\etc\netxmsd.conf следующее:

JavaPath=C:\NetXMS\bin\jre
JavaLibraryDirectory=C:\NetXMS\var\reports
JDBCDriver=com.microsoft.jdbc.sqlserver.SQLServerDriver
JDBCUrl=jdbc:microsoft:sqlserver://MYSERVER:1433;databasename=NetXMS_Monitoring_for_AND-SERVICE;user=netxms;password=MYPWD

или

JavaPath=C:\NetXMS\bin\jre
JavaLibraryDirectory=C:\NetXMS\var\reports
JDBCDriver=net.sourceforge.jtds.jdbc.Driver
JDBCUrl=jdbc:jtds:sqlserver://MYSERVER/NetXMS_Monitoring_for_AND-SERVICE;user=netxms;password=MYPWD

По прежнему получаю "Report generator failed to start".

P.S. Также пробовал JavaPath=C:\NetXMS\bin\jre\bin

Alex Kirhenshtein

#3
Начал перепроверять и выяснилось, что https://netxms.org/report-generator.jar битый - залился не до конца.

Правильный:
26,838,545 bytes
SHA1(report-generator.jar)= bdc2fe2cc0923f8517797c7426edd1c53414c3f0


Я бы еще проверил запустить руками:
java.exe" -cp "C:\NetXMS\lib\java\report-generator.jar" org.netxms.report.Generator "c:\NetXMS\etc\netxmsd.conf" "C:\NetXMS\nxreport.a03320" "C:\NetXMS\job.output"

Если отработает, то из job.output можно сделать PDF:
java -cp "C:\NetXMS\lib\java\report-generator.jar" org.netxms.report.Exporter C:\NetXMS\job.output C:\NetXMS\job.pdf"

(nxreport.a03320 - это временный файл, который создает сервер перед запуском отчета, в нем report definition и все параметры, если они есть)

SKYnv

#4
Quote from: Alex Kirhenshtein on April 25, 2012, 11:45:33 PM
Начал перепроверять и выяснилось, что https://netxms.org/report-generator.jar битый - залился не до конца.

Правильный:
26,838,545 bytes
SHA1(report-generator.jar)= bdc2fe2cc0923f8517797c7426edd1c53414c3f0


Я бы еще проверил запустить руками:
java.exe" -cp "C:\NetXMS\lib\java\report-generator.jar" org.netxms.report.Generator "c:\NetXMS\etc\netxmsd.conf" "C:\NetXMS\nxreport.a03320" "C:\NetXMS\job.output"

Если отработает, то из job.output можно сделать PDF:
java -cp "C:\NetXMS\lib\java\report-generator.jar" org.netxms.report.Exporter C:\NetXMS\job.output C:\NetXMS\job.pdf"

(nxreport.a03320 - это временный файл, который создает сервер перед запуском отчета, в нем report definition и все параметры, если они есть)

в первом коде лишняя кавычка после java.exe

с новым report-gen получилось, для MySQL использовал такой конфиг

JavaPath=C:\NetXMS\bin\jre
JavaLibraryDirectory=C:\NetXMS\var\reports
JDBCDriver=com.mysql.jdbc.Driver
JDBCUrl=jdbc:mysql://localhost/netxms_db
jdbc.username=user
jdbc.password=pass


еще бы инструмент для удобного создания (можно и не удобного) шаблонов для отчетов ))

Alex Kirhenshtein

Quote from: SKYnv on April 26, 2012, 12:38:16 AM
еще бы инструмент для удобного создания (можно и не удобного) шаблонов для отчетов ))

Я использую iReport (http://jasperforge.org/projects/ireport)

kozlov_ao

Не получается завести...
В конфиге:
JavaPath=/usr/local/bin/java
JavaLibraryDirectory=/usr/local/share/netxms/reports/
JDBCDriver=com.mysql.jdbc.Driver
JDBCUrl=jdbc:mysql://localhost/netxms


При попытке сделать:
"/usr/local/bin/java" -cp "/usr/local/share/netxms/reports/report-generator.jar" org.netxms.report.Generator "/usr/local/etc/netxmsd.conf" "/home/alex/nxreport.JNbFsX" "/usr/local/share/netxms/reports/job_8"

Получаю:
ERROR: Communications link failure
Last packet sent to the server was 1 ms ago.

/home/alex/nxreport.JNbFsX - это скопированный файл из /tmp, полученный во время запуска отчета из консоли.
В качестве отчета использовал IPInventory из 1.2.0

SKYnv

Quote from: kozlov_ao on April 29, 2012, 11:30:41 AM
Не получается завести...
В конфиге:
JavaPath=/usr/local/bin/java
JavaLibraryDirectory=/usr/local/share/netxms/reports/
JDBCDriver=com.mysql.jdbc.Driver
JDBCUrl=jdbc:mysql://localhost/netxms


При попытке сделать:
"/usr/local/bin/java" -cp "/usr/local/share/netxms/reports/report-generator.jar" org.netxms.report.Generator "/usr/local/etc/netxmsd.conf" "/home/alex/nxreport.JNbFsX" "/usr/local/share/netxms/reports/job_8"

Получаю:
ERROR: Communications link failure
Last packet sent to the server was 1 ms ago.

/home/alex/nxreport.JNbFsX - это скопированный файл из /tmp, полученный во время запуска отчета из консоли.
В качестве отчета использовал IPInventory из 1.2.0

имя базы верное? на локальном компьютере живет?

kozlov_ao

Да, верное...
Единственное, в чем может быть загвоздка, как мне кажется, что у меня система тестовая и в ней используется логин к БД root, без пароля...
но не уверен,  надо проверить будет...

Alex Kirhenshtein

Попробуйте заменить
JDBCUrl=jdbc:mysql://localhost/netxms
на
JDBCUrl=jdbc:mysql://127.0.0.1/netxms