All,

I've voiced this concern in the past.  When a transaction times out, why
does the method TxCapsule.timedOut only set the status of the transaction as
STATUS_MARKED_ROLLBACK?  Why doesn't it actually do a rollback?

A very serious side effect is this scenario:

Something hangs indefinately within a transaction.  With Entity pessimistic
locking all locks are held onto and the bean is locked forever until you
kill the server.

I can fix this.

1. in TxCapsule.timedOut call rollback()
2. in TxInterceptors don't base tx status checks on STATUS_MARKED_ROLLBACK


Side effects of the fix are as follows:

1. What if a transaction is not hanging but takes long than the timeout?
How do we make sure that a JDBC connection is not returned to the pool while
the sluggish timedout thread could be making JDBC calls?  On a rollback, can
we discard the connection totally?  Or maybe this is already happening.

I need input.

Thanks in advance,

Bill

P.S.  I need to solve this problem for work.  So if I get no feedback,
beware....I'll be making changes.


_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to