Hello to you all ,
I started in the world of reporting. Here is my problem :
I created a report in iReport . The preview of the report in iReport is going very well , and I can export the results of my report in XLS format without worries. The generated report contains 422 pages ( a little over 10,000 lines of results) 9 columns.
When I upload the same report on my JasperServer Report and executes server, everything is going very well . By cons when exporting to XLS , I always error
An internal server error has occurred. Please contact your system administrator. Details : Handler processing failed ; nested exception is java.lang.OutOfMemoryError : Java heap space
I was fine read, Googled right and left in search of a solution , I can not find anything that solves my problem. But I have a good server core i5 , 16 GB of RAM ... So I do not think short side RAM. I think it's a bad configuration or I have read the solution without the skills to apply it.
I want to say that in other reports, is promptly executed and exports correctenet . My server works perfectly fine otherwise .
Tell me what you need to help me see more clearly and solve my problem :)
Thank you in advance .
- check your JVM startup parameters
sudo service tomcat7 status # to find out your pid
sudo jmap -J-d64 -heap pid # -J-d64 for a 64-bit System, to print info about heap memory
- try to understand environment variables in ubuntu
- take a look at the differences between JAVA_OPTS and CATALINA_OPTS
- decide how to change the JAVA_OPTS(there are some ways)
I do it in /etc/default/tomcat7, e.g.:
JAVA_OPTS="-Djava.awt.headless=true -Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m -Xss2m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled"
then restart tomcat
...and it works now :)
Wow, so many answers! It's just great!
My JasperServer Reports Server is installed on a Ubuntu 12.04 LTS server through a .WAR compiled by me according to the documentation and executed by a Tomcat 6 Server.
In order to increase the JVM memory. I did an
ps -aux | grep java
which allowed me to see that my JVM was configured with a-Xmx128m. However I have not found how increase it. What is the magic command line ?
I tried this :
export set JAVA_OPTS="-Xms128m -Xmx512m"
Then restart :
service tomcat6 restart
But when I check with an
ps -aux | grep java
Nothing has changed I'm still-Xmx128m. I think I am doing wrong to apply the settings and check.
The solution to virtualize am also interested, but I would like to have a detailed step by step guide to setup it. It sounds complex but sustainable me.
I am now almost certain that the configuration of JVM is the solution to my problem. I just really stuck on this step. I can not really passing the parameters -Xms and -Xmx to JVM.
Here is my current JAVA :
java version "1.6.0_27"
OpenJDK Runtime Environment (IcedTea6 1.12.6) (6b27-1.12.6-1ubuntu0.12.04.2)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
Not finding how to change settings of JVM. I performed a clean install by uninstalling and re-installing completely JasperReport Server and Tomcat.
Now I have no more problems, so I did not do anything special from my point of view in terms of configuration. But I would still like to know for the future and my general knowledge how to change settings of JVM. If a kind soul going around, I'm interested.
My question is resolved in the sense that I have no more problems.
Thank you very much to those who took the time to look at my problem.