[jboss-jira] [JBoss JIRA] Commented: (EJBTHREE-1844) Retry operations after an EJBTransactionRolledbackException
Matthias Lanz (JIRA)
jira-events at lists.jboss.org
Fri Jun 5 11:53:41 EDT 2009
[ https://jira.jboss.org/jira/browse/EJBTHREE-1844?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12470830#action_12470830 ]
Matthias Lanz commented on EJBTHREE-1844:
-----------------------------------------
Hi Carlo,
sounds very good, exactly what I were looking for :-)
I think this new annotation can be applied as default for all SLSB in ejb3-interceptors-aop.xml, that would be very useful.
If it can be applied to all session beans by default it would be neccessary that "numRetries=0" is a valid value, to disable retry for specific beans.
I wonder how nested session bean calls are handled. I assume this annotation can only have any effect on session bean methods that are starting a new transaction, not using one previously started from the caller?
As a extension in the future it would be nice if one could define any kind of retry-handler; an interface which can be implemented to decide on which exceptions a retry should occur.
Example:
@TransactionRetry(numRetries=4, waitTime=1, waitTimeUnit=TimeUnit.SECONDS, retryHandler=MyPersonalOnlyDeadlockRetryHandler.class)
and then:
public class MyPersonalOnlyDeadlockRetryHandler implements com.jboss.ejb3.RetryHandler {
public boolean isRetryable(Exception e) {
return (e instanceof EJBRolledbackException && e.getCause() instanceof MySqlDeadLockDetectedException);
}
But that is really a nice-to-have, retries on every error should do no harm.
> Retry operations after an EJBTransactionRolledbackException
> -----------------------------------------------------------
>
> Key: EJBTHREE-1844
> URL: https://jira.jboss.org/jira/browse/EJBTHREE-1844
> Project: EJB 3.0
> Issue Type: Feature Request
> Components: transactions
> Reporter: Carlo de Wolf
> Assignee: Carlo de Wolf
>
> By either annotating a bean or its methods, the applicable methods will retry the operation if an EJBTransactionRolledbackException occurs.
> @TransactionRetry(numRetries=4, waitTime=1, waitTimeUnit=TimeUnit.SECONDS)
> numRetries specifies how many times an operation will be tried.
> waitTime specified the amount of time to wait before retrying with the unit of time specified in waitTimeUnit.
> Default is 3 retries and 1000 milliseconds wait time after an EJBTransactionRolledbackException.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list