Has anyone seen JBoss mysteriously hanging for no good reason?
Care to share your threaddump or don't you want any help?
If the threads are waiting on the database, the problem
is in your database.
Here's the dump.
I thought the database / driver might be causing the problem somehow, but it still doesn't make sense to me.
I tried a test where I locked a table in the database manually. Then I used my app to try and access that table (via jboss).
After a few seconds, JBoss threw a timeout exception.
Why didn't JBoss timeout for the bug I saw if it's working properly?
If you are doing things like table locks in the database,
you should use instance-per-transaction
container configuration in jboss.xml
(to run without the in memory jboss lock)
JBoss does not know about this kind of locking so deadlocks can
happen if the locks are taken in different orders.
Was this just a test?
The timeout is a transaction timeout correct?
JBoss interrupts the thread that timed out.
Either, you didn't have a transaction or
the mysql driver is ignoring the request to be interrupted.
Of course, you might just have a bug in the driver,
do you have the latest version?
HAS ANYONE ELSE SEEN JBOSS HANG AFTER IT HAS PREVOIUSLY BEEN RUNNING OK?
WHAT DB, DB DRIVER, JBOSS, OS & JAVA VERSIONS DID U HAVE?
Sorry, I was a bit vauge, I locked the db for a test just to see what jboss would do if it couldn't get a lock.
When it happened, I had the latest version of mysql and second to latest version of the driver.
I had a transaction.
I agree "the mysql driver is ignoring the request to be interrupted" could possibly be the single cause. In which case, I'd expect only mysql users to experience this.
However, would this theory be consistient with the following behaviour?
- Every time a new user accessed the system, it would hang. After it happened once, it happened everytime.
Do JDBC drivers maintain a state that would allow themselves to lock up like this? Seems strange that they would, this is why I'm confused!!!
Thanks for your help so far,