Question
How can a heap dump or a thread dump be saved from a Scriptura Server ?
Answer
Download and install VisualVM
Add the following VM arguments to the ScripturaStartServer.ini file. (Server needs to be restarted afterwards)
-Dcom.sun.management.jmxremote.port=3333
-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.local.only=false-Dcom.sun.management.jmxremote.authenticate=false(These arguments should be added below "-vmargs")
Once the issue is reproduced, perform the following steps :
Start VisualVM
Connect to the Scriptura Server* with Java VM. When VisualVM is running on the same system, under the same user, the Server will appear below "Local".
If VisualVM is running on a different Server, you will need to add a remote host. This by right-clicking the on "Remote" and the providing the IP of the name of the host in question. The Scriptura Server process is usually named "org.eclipse.core.launchers.Main".
Double-click on this process.
You will get a window with 4 tabs : "Overview", "Monitor", "Threads" en "Profiler"Verify the Overview tab to make sure you are connected to the Java VM from the Scriptra Server. You have the correct process when you see "-application com.id.scriptura.server.serverApplication" in the Arguments.
Go to the Threads tab and click "Thread Dump". Save the created thread dump by searching for it in the Applications screen, right-clicking on it and then selecting "Save as ..."
Go to the ‘Sampler’ tab, click on the ‘Memory’ button, use the ‘Heap Dump’ button on the right, right-click on the heapdump in the application view and select save as to save the heap dump.
Go to the "Monitor" tab and note down the Heap size and the Used heap size.
Close VisualVM and restart the Scriptura Server
Send the information you noted down with the files you saved to our Support Department