[jboss-dev-forums] [Design of Messaging on JBoss (Messaging/JBoss)] - Re: Can the transaction manager retry commit or rollback?
mark.little@jboss.com
do-not-reply at jboss.com
Mon Sep 18 07:15:46 EDT 2006
"timfox" wrote : I was hoping you were going to answer :)
|
Given the amount of corporate spam we get, sometimes email is easier ;-)
anonymous wrote :
| We currently log prepared states in the db (this will change).
|
| So after the prepare has completed the prepared state has been logged durably.
|
| The thing in memory is our "Transaction" class, which has methods prepare(), commit(), rollback() etc.
|
| When a prepare comes in we add the Transaction instance to the in memory map.
|
| This means that when we receive a subsequent commit/rollback we look in the map, get the instance and call commit/rollback on it.
|
| This then moves the prepared state from the log to permanent storage.
|
| So, if I remove the Transaction instance from memory after commit/rollback irrespective of whether an exception occurs, then if another commit/rollback comes in without recover (recover repopulates the map from the log) it won't find it.
|
| If I don't remove the instance then I get a memory leak.
|
| AFAICT the solution here is to repopulate the map if a commit/rollback comes in and it isn't in the map - which is a bit of a pain....
Aren't you going to have to do this anyway if you have a crash failure, given that the map is in volatile store?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3972263#3972263
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3972263
More information about the jboss-dev-forums
mailing list