JVM out of memory
11 June, 2015
If JVM runs out of memory is there a way to release the memory other than restarting the Yellowfin Application?
Currently we are using YF 7.1 20150225 patch.
After doing a little research, it appears that there isn't a way to release JVM memory if it runs out, other than restarting the application.
It may be worth taking a look at your JVM Max Memory Settings and perhaps increasing them if running low, as per this Forum Post.
Let me know if I can assist you further.
In production, we have encountered JVM out of memory today as well. posting few details for your investigation.
Production patch - YF 7.1 20150225
Settings on catlina.sh file
JAVA_OPTS="$JAVA_OPTS -Xms1g -Xmx32g"
JAVA_OPTS="$JAVA_OPTS -XX:PermSize=8192m -XX:MaxPermSize=16384m"
Few errors noticed
YF:2015-07-16 06:22:44: WARN (JDBCConnection:call) - Error occured when rolling back uncommited changes on connection: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communications link failure during rollback(). Transaction resolution unknown.
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communications link failure during rollback(). Transaction resolution unknown.
Can you help in resolving this issue and also we have taken the entire dump of the catlina.out file. This being a production server, would be looking for your help to give the solution at the earliest.
Hope you're well.
It looks like this forum post was also emailed in, so our support team is currently communicating with you via your support case #199730.
I suggest we continue correspondence through the case.
However, there is one thing I wanted to add to this post.
Java has it's own garbage collector, and it decides when to clear memory.
If it detects it doesn't need memory it will clear it when it decides to.
You can however for the garbage collector to run by using the following url.
However, keep in mind, if Java needs to use that memory, you will notice the memory usage jumps right back up.
What to you mean by garbage collected in the info page? other than this i don't see any other information.
Running the ?gc command will for the garbage collector to run.
What you should be able to see in the info.jsp is the memory in use go down.
However keep in mind forcing it to run does not mean it will remain free, when it realizes it needs to do my processing it will start to use memory again.
Before running ?gc
My Yellowfin has been running all morning and running some pretty big dashboards with charts.
Now after running ?gc (just seen in the same info.jsp ?gc page)
1 min later I ran the info.jsp again (without the garbage collector or doing anything in Yellowfin). Notice the memory starts to creep back up.
Hope this clarifies how the garbage collector works.