In such cases, it always suggested to get a Thread Dump to see what's going on. It might show you if anything's locked on some resource. Here's how you can get a Thread Dump in JBoss:
Thank you, your suggestion really helped. Now another related issue I have is that sometime I cannot access the JMX-Console. JBoss seems to hang and consume more and more memory (not CPU) until I kill the process (I cannot even stop the service).
In this case, in order to get a stack trace I tried to use sendsignal.exe but I get an access denied message saying "Not enough storage is available to process this command". Is there an alternative way to get a stack trace from a process that runs as a service?