Check that the user has REPORTUSER access in their role as this determines if they are allowed to use Jasperserver.
If you get an error such as:
2012-03-23 14:13:43,705 ERROR [default],http-8080-Processor24:260 - Servlet.service() for servlet default threw exception org.springframework.security.ui.preauth.PreAuthenticatedCredentialsNotFoundException: X-Opsview-AuthTkt-Username header not found in request.
This is because from Reporting Module 2.0, we use Single Sign On to authenticate into Jasper Server. Ensure you have set the correct Apache options by reviewing our Reports documentation.
If you see this error, restart Apache and try again.
"Authentication to Opsview succeeds, but ticket is invalid for jasperserver"
If, when restarting Apache, the following error is generated, then it may be that config files from an earlier version of Jasperserver have not been cleaned up correctly.
$ /etc/init.d/apache2 restart * Restarting web server apache2 [Wed Nov 21 11:46:40 2012] [warn] worker http://127.0.0.1:8080/jasperserver already used by another worker ... waiting [Wed Nov 21 11:46:41 2012] [warn] worker http://127.0.0.1:8080/jasperserver already used by another worker [ OK ]
Please try this:
$ rm /etc/apache2/conf.d/jasperserver.conf
If that is displayed in your web browser, the jasperserver application did not start up correctly. Check the Tomcat logs, which can be found in /opt/opsview/jasper/apache-tomcat/logs/. One possible solution, noted on recent 64-bit platforms, might be to add org.owasp.csrfguard.PRNG.Provider=IBMJCE to the file, /opt/opsview/jasper/apache-tomcat/webapps/jasperserver/WEB-INF/esapi/Owasp.CsrfGuard.properties.
Check with ps -ef | grep java. You should get output like:
root 11468 25337 0 10:59 pts/0 00:00:00 grep java opsview 30083 1 0 Oct07 ? 00:03:08 /usr/lib/jvm/java-6-sun-188.8.131.52/jre/bin/java -Xms128m -Xmx512m -XX:PermSize=32m -XX:MaxPermSize=128m -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/opt/opsview/jasper/apache-tomcat/conf/logging.properties -Djava.endorsed.dirs=/opt/opsview/jasper/apache-tomcat/common/endorsed -classpath :/opt/opsview/jasper/apache-tomcat/bin/bootstrap.jar:/opt/opsview/jasper/apache-tomcat/bin/commons-logging-api.jar -Dcatalina.base=/opt/opsview/jasper/apache-tomcat -Dcatalina.home=/opt/opsview/jasper/apache-tomcat -Djava.io.tmpdir=/opt/opsview/jasper/apache-tomcat/temp org.apache.catalina.startup.Bootstrap start
Jasperserver stop... Apr 27, 2012 3:12:49 PM org.apache.catalina.startup.Catalina stopServer SEVERE: Catalina.stop: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method)
This means that jasperserver is not currently running, so the stop command gives a warning message. This can be ignored.
This can be caused by using TCP wrappers, by adding entries to /etc/hosts.allow and /etc/hosts.deny - adding an entry to hosts.allow such as mysqld: 127.0.0.1 will allow Jasper to talk to the database. The rest of Opsview may be unaffected as it uses a MySQL file socket by default rather than TCP port.
This may be due to the email configuration of Jasper. Check the log file /opt/opsview/jasper/apache-tomcat/webapps/jasperserver/WEB-INF/logs/jasperserver.log for lines such as
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: mail.localhost.com, port: 25;
Backup and amend the file /opt/opsview/jasper/apache-tomcat/webapps/jasperserver/WEB-INF/js.quartz.properties/ to change the line
report.scheduler.mail.sender.host=mail.localhost.com to either ''localhost'' or your SMTP server.
If you are generating particularly large reports, the Java Virtual Machine (JVM) may hit an imposed memory limit which prevents it from using too much RAM. By default this limit is 512MB which can be increased by editing /opt/opsview/jasper/apache-tomcat/bin/setclasspath.sh and amending the following line
JAVA_OPTS="$JAVA_OPTS -Xms128m -Xmx512m -XX:PermSize=32m -XX:MaxPermSize=128m "
JAVA_OPTS="$JAVA_OPTS -Xms128m -Xmx768m -XX:PermSize=32m -XX:MaxPermSize=128m "
The limit here was increased from 512MB to 768MB - ensure this limit is still within a reasonable range for your server. Note: This change will be lost on an upgrade.
This could also be seen as this error:
com.jaspersoft.jasperserver.api.JSException: jsexception.error.creating.connection at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.JdbcDataSourceService.createConnection(JdbcDataSourceService.java:59)
Ensure that the ODW data source is set properly. Particularly the Driver and URL are of the form:
The driver can be exactly as shown (since Opsview uses MySQL), but the URL may change depending upon the location of the MySQL server.
Seems the Designer doesn't reload with the XML changes (seen when amending the SQL query). Clicking Save (top left corner) sometimes helps. Workaround is to close that report and re-open. We didn't observe this behaviour with iReport 5.6.0.
This occurs if you are using iReport 3.5.2, but Jasper Server 3.5. This is because iReport sets a splitType in the band element. Remove the attribute splitType="Stretch". This occurs because iReport has a newer version of the Jasper engine than Jasper Server.
ODW stores configuration over time, so adding a new Hashtag will not be reflected over historically (because it didn't exist for that service at that time). There is no supported mechanism by which Hashtags can be 'backdated' onto Hosts and Service Checks in ODW.
This is often caused by the time-out parameter of Apache being set too low for the length of the time the report takes to run. Connect to Jasperserver on port 8080 and try running report http://localhost:8080/jasperserver/
This has occurred when changing an existing report's JRXML file and then adding a new resource. The work around is to save the report first, and then edit it again and add the JRXML file again. Error:
java.lang.NullPointerException at com.jaspersoft.jasperserver.war.validation.FileResourceValidator.validateNaming(FileResourceValidator.java:119) at sun.reflect.GeneratedMethodAccessor589.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
If the Weekly Combined Service Level And Performance report gives an error saying,net.sf.jasperreports.engine.JRException: Error opening input stream from URL : repo:WeeklyAvailabilitySummaryTableByKeyword, and your Opsview version is greater than 4.6.3, follow these steps: In Reports, go to View → Repository. - On the Weekly Combined Service Level And Performance report, right click, and Edit. - In the Locate the JRXML File section, Browse... to the WeeklyCombinedServiceLevelAndPerformanceByKeyword.jrxml file. - Press Submit. You should now be able to run the report without the error.
Look in /opt/opsview/jasper/apache-tomcat/logs/catalina.out. This holds the web server's log output.
If Jasperserver doesn't seem to have created the reports, check their log file in /opt/opsview/jasper/apache-tomcat/webapps/jasperserver/WEB-INF/logs/jasperserver.log. You can also see messages of failed jobs in View -> Messages.