Blocking transactions
Support for blocking transaction using the retry/orelse primitives.
For more information see:
http://multiverse.codehaus.org/manual-blocking.html
Not much works need to be done for this to work (since it already is up and running in Multiverse).
What needs to be done is:
expose the StmUtils.retry() method in akka (or just throw a RetryError yourself.. you might want to cache the exception instance or kill the fillstacktrace.. because else performance is killed).
=========
Hi Jonas,
getting it in is no problem (I had to do special work disabling it for Akka).
The 3 things that need to be done are:
1) expose the retry method (org.multiverse.api.StmUtils.retry()
2) make sure that the transactionfactory for non actor transactions is configured with setExplicitRetryAllowed(true).
3) expose the OrElseTemplate. One of my committers currently is working on it to let it work with a TransactionalCallable instead of relying on subclassing.
features:
expose timeout property
expose interruptible property
The Multiverse TransactionFactoryBuilder already exposes these properties, but they need to be exposed in akka somehow. E.g.
atomic(timeout = 10, unit = TimeUnit.SECONDS){
.... do your blocking operation here
}
atomic(interruptible=true){
.... do your blocking operation here.
}
For more information see:
http://multiverse.codehaus.org/manual-blocking.html
Not much works need to be done for this to work (since it already is up and running in Multiverse).
What needs to be done is:
expose the StmUtils.retry() method in akka (or just throw a RetryError yourself.. you might want to cache the exception instance or kill the fillstacktrace.. because else performance is killed).
=========
Hi Jonas,
getting it in is no problem (I had to do special work disabling it for Akka).
The 3 things that need to be done are:
1) expose the retry method (org.multiverse.api.StmUtils.retry()
2) make sure that the transactionfactory for non actor transactions is configured with setExplicitRetryAllowed(true).
3) expose the OrElseTemplate. One of my committers currently is working on it to let it work with a TransactionalCallable instead of relying on subclassing.
features:
expose timeout property
expose interruptible property
The Multiverse TransactionFactoryBuilder already exposes these properties, but they need to be exposed in akka somehow. E.g.
atomic(timeout = 10, unit = TimeUnit.SECONDS){
.... do your blocking operation here
}
atomic(interruptible=true){
.... do your blocking operation here.
}
Leave a comment
on 2010-06-10 20:09 *
By Jonas Bonér
Description changed from Support for blocking transa... to Support for blocking transa...
on 2010-06-18 09:28 *
By Peter Vlugter
Assigned to set to pvlugter
Status changed from New to Accepted