While troubleshooting performance problems, we wanted to test disabling Nagle’s algorithm in JBOSS with an Oracle XA datasource. We found that property was not configurable in the regular Oracle XA class. We ended up extending the Oracle class to set…
High latch free waits on Oracle XA transactions
We experienced large waits as well as the associated CPU spikes, when using distributed XA transactions in an ATG/JBOSS application server to Oracle database environment. Oracle “support” was, per usual, of absolutely no help is diagnosing the situation. I honestly…
Which threads are talking to the database?
Often while troubleshooting, I will want to know where the bottleneck is. If I think the database may be the culprit, I will run the following to print those threads that are making database calls… -bash-4.1$ jstack 20711 | awk…
Determining the source of high java CPU
This post is related to a situtation in which you find yourself with high CPU utilization, but can’t determine the source. This will gather thread dumps and the CPU used by each thread. For the threads that use a large…
Which threads are running on a given CPU
We had a need to see which threads were running on a given CPU, as utilization was not balanced amongst the cores. We used what is below to do so. In our case, our java PID was 488. -bash-4.1$ jstack…
Tying a linux socket file descriptor to a port and IP
While troubleshooting a java thread that appeared to be hung, but not blocked, we used the following troubleshooting process. You can use what is below if you have a thread “stuck” waiting to receive data from another socket. We see…