{"id":2386,"date":"2012-07-26T19:56:39","date_gmt":"2012-07-27T00:56:39","guid":{"rendered":"http:\/\/appcrawler.com\/wordpress\/?p=2386"},"modified":"2013-04-19T19:41:24","modified_gmt":"2013-04-20T00:41:24","slug":"awk-script-to-brint-blocked-threads-in-java-thread-dump","status":"publish","type":"post","link":"http:\/\/appcrawler.com\/wordpress\/2012\/07\/26\/awk-script-to-brint-blocked-threads-in-java-thread-dump\/","title":{"rendered":"awk script to print blocked threads in a java thread dump"},"content":{"rendered":"<pre lang=\"awk\" line=\"1\">\r\n-bash-4.1$ cat blocked_threads.awk\r\n#!\/bin\/awk -f\r\n\r\n{\r\n  if ($0 ~ \"- locked\" || $0 ~ \"- waiting to lock\") {\r\n    s[i++]=$0\r\n  }\r\n}\r\nEND {\r\n  for (i in s) {\r\n    if (s[i] ~ \"waiting to lock\") {\r\n      split(s[i],t)\r\n      for (j in s) {\r\n        split(s[j],u)\r\n        if (s[j] ~ \"- locked\" && u[3] ~ t[5]) {\r\n          print u[3],u[5],\" is blocking \",t[7]\r\n          break\r\n        }\r\n      }\r\n    }\r\n  }\r\n}\r\n<\/pre>\n<p>Copy and paste the awk code above into a file name blocked_theads.awk (or whatever you want)<br \/>\nchmod u+x blocked_threads.awk<\/p>\n<p>\u2026and run\u2026<\/p>\n<pre lang=\"text\">\r\n-bash-4.1$ .\/blocked_thread.awk \/tmp\/thread_dump_201207261821.dmp\r\n<0x0000000776ee2400> com.foo.commerce.order.fooOrderImpl)  is blocking  com.foo.commerce.order.fooOrderImpl)\r\n<0x00000007928ff1b0> com.foo.commerce.order.fooOrderImpl)  is blocking  com.foo.commerce.order.fooOrderImpl)\r\n<0x000000072e80b388> com.foo.commerce.order.fooOrderImpl)  is blocking  com.foo.commerce.order.fooOrderImpl)\r\n<0x000000072b10e140> com.foo.commerce.order.fooOrderImpl)  is blocking  com.foo.commerce.order.fooOrderImpl)\r\n<0x000000072d630478> com.foo.commerce.order.fooOrderImpl)  is blocking  com.foo.commerce.order.fooOrderImpl)\r\n<0x00000007114848a8> com.foo.commerce.order.fooOrderImpl)  is blocking  com.foo.commerce.order.fooOrderImpl)\r\n<0x0000000732527c30> com.foo.commerce.order.fooOrderImpl)  is blocking  com.foo.commerce.order.fooOrderImpl)\r\n<0x00000007a89bbde8> com.foo.commerce.order.fooOrderImpl)  is blocking  com.foo.commerce.order.fooOrderImpl)\r\n<0x00000007a5735f68> com.foo.commerce.order.fooOrderImpl)  is blocking  com.foo.commerce.order.fooOrderImpl)\r\n<0x0000000776df6c18> com.foo.commerce.order.fooOrderImpl)  is blocking  com.foo.commerce.order.fooOrderImpl)\r\n<0x000000078a6752e0> com.foo.commerce.order.fooOrderImpl)  is blocking  com.foo.commerce.order.fooOrderImpl)\r\n<0x00000007737f4368> com.foo.commerce.order.fooOrderImpl)  is blocking  com.foo.commerce.order.fooOrderImpl)\r\n<0x000000073cd09230> com.foo.commerce.order.fooOrderImpl)  is blocking  com.foo.commerce.order.fooOrderImpl)\r\n<0x000000072e80b388> com.foo.commerce.order.fooOrderImpl)  is blocking  com.foo.commerce.order.fooOrderImpl)\r\n<0x000000076e939ac8> com.foo.commerce.order.fooOrderImpl)  is blocking  com.foo.commerce.order.fooOrderImpl)\r\n-bash-4.1$\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>-bash-4.1$ cat blocked_threads.awk #!\/bin\/awk -f { if ($0 ~ &#8220;- locked&#8221; || $0 ~ &#8220;- waiting to lock&#8221;) { s[i++]=$0 } } END { for (i in s) { if (s[i] ~ &#8220;waiting to lock&#8221;) { split(s[i],t) for (j in&hellip;<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"http:\/\/appcrawler.com\/wordpress\/2012\/07\/26\/awk-script-to-brint-blocked-threads-in-java-thread-dump\/\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"footnotes":""},"categories":[24,25,28,27],"tags":[],"_links":{"self":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts\/2386"}],"collection":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/comments?post=2386"}],"version-history":[{"count":8,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts\/2386\/revisions"}],"predecessor-version":[{"id":2750,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts\/2386\/revisions\/2750"}],"wp:attachment":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/media?parent=2386"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/categories?post=2386"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/tags?post=2386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}