- By Javier Chacana
- ·
- Posted 30 Sep 2021
JBCNConf in times of COVID
This year, the 2021 edition of the traditional JBCNConf was held. Unfortunately, the 2020 event didn't take place the year prior due to difficulties..
Thread dumps are possilby the most useful tool in diagnosing concurrancy related issues. You can get a thread dump at any time by sending a break signal to the JVM. In Windows it's CTRL-Break
and in Unix/Linux it's kill -3 <pid>
The possible issues to look for are:
Found one Java-level deadlock:"
in the tread dump. Have a look here for an explanation of deadlocks.locked <monitor_id>
". You may want to review the design of this code (if you can change it) to ensure that you're not over-zealous with locking or that the locking thread is not blocking on another monitor. Have a look at Software Transactional Memory for a possible alternative to locking.You may also use "Thread Telemetry" view avialable in most JVM profiling tools (e.g. JProbe, JProfiler, YourKit etc.). This gives you an historical view of thread states in the JVM. Very useful for monitoring JVM performance over a period of time and spotting live-lock situations.
This year, the 2021 edition of the traditional JBCNConf was held. Unfortunately, the 2020 event didn't take place the year prior due to difficulties..
We already spoke about the different type systems and how they work here, now it's time to write some code and see how type can help us.
Integration tests can be slow and unreliable because they depend on too many components in the system. Up to a certain point, this is unavoidable:..
Join our newsletter for expert tips and inspirational case studies
Join our newsletter for expert tips and inspirational case studies