Java SDK developer's guide - Debugging
In addition to writing unit and integration tests, debugging your Workflows is also a very valuable testing tool. You can debug your Workflow code using a debugger provided by your favorite Java IDE.
Note that when debugging your Workflow code, the Temporal Java SDK includes deadlock detection which fails a Workflow Task in case the code blocks over a second without relinquishing execution control.
Because of this you can often encounter the PotentialDeadlockException
Exception while stepping through Workflow code during debugging.
To alleviate this issue, you can set the TEMPORAL_DEBUG
environment variable to true before debugging your Workflow code. Make sure to set TEMPORAL_DEBUG
to true only during debugging.
How to debug in a development environmentβ
In addition to the normal development tools of logging and a debugger, you can also see whatβs happening in your Workflow by using the Web UI or tctl
.
How to debug in a production environmentβ
You can debug production Workflows using:
- Web UI
- tctl
- Replay
- Tracing πxLink previewHow to setup TracingTracing allows you to view the call graph of a Workflow along with its Activities and any Child Workflows.
- Logging πxLink previewHow to log from a WorkflowSend logs and errors to a logging service, so that when things go wrong, you can see what happened.
You can debug and tune Worker performance with metrics and the Worker performance guide. For more information, see Observability βΆοΈ Metrics for setting up SDK metrics.
Debug Server performance with Cloud metrics π