Troubleshooting
This page contains helpful information about how to troubleshoot steps.
Smile CDR provides a rich set of logging tools. See the Logging reference documentation for details.
In cases where Smile CDR is seemingly hung, slow, unresponsive, etc., it can be useful to capture a Thread Dump, which is a snapshot of what every thread in the Smile CDR process is currently doing.
In some cases it may be helpful to review this yourself (e.g. if you are using Hybrid Providers and are looking for insight into what your Hybrid Provider code is doing) but in most cases it is good to review this with someone from the Smile CDR team.
Note that this method was added in Smile CDR 2019.11.R01.
The JSON Admin API can be used to capture a thread dump on the same process as the API is running.
To capture the thread dump, you should invoke the Metrics - Thread Dump Endpoint. This is done with a URL such as the following:
http://localhost:9000/metrics/local/threads
The response will be a text block consisting of the entire thread dump. It should be downloaded as a text file for sharing.
Note that you can also request that the dump be written to the logs by using the parameter writeToLog=true
.
To take a thread dump from the command line:
Determine the process ID for the Smile CDR process
$ jps
21361 App
4988 Jps
In the example above, the process ID for Smile CDR is 21361
.
Capture a thread dump using the jstack command.
jstack 21361 > threads.txt
The command above will capture a thread dump and export it to a file called threads.txt
.
While we generally recommend contacting Smile CDR support for assistance in reviewing Smile CDR Thread Dumps, we do recommend the excellent free tool available at https://jstack.review for this process as well.
You are about to leave the Smile Digital Health documentation and navigate to the Open Source HAPI-FHIR Documentation.