相关疑难解决方法(0)

使用Transactional进行Spring重试

Spring Retry是否可以保证与Spring的@Transactional注释一起使用?

具体来说,我正在尝试使用@Retryable乐观锁定.似乎它将依赖于创建的AOP代理的顺序.例如,如果调用如下所示:

调用代码 - >重试代理 - >事务代理 - >实际数据库代码

然后它将正常工作,但如果代理结构如下:

调用代码 - >事务代理 - >重试代理 - >实际数据库代码

然后重试将不起作用,因为关闭事务的行为是抛出optmistic锁定异常的行为.

在测试中,它似乎生成了第一个案例(重试,然后交易),但我不知道这是保证行为还是幸运.

java spring spring-data spring-retry

10
推荐指数
3
解决办法
4276
查看次数

如何使用NHibernate和Spring为死锁配置RetryAdvice和ExceptionTranslation

我正在使用Spring.net 1.2和NHibernate 2.0.1.
在我的项目中我面临一些死锁问题,除了数据库调整以最小化出现我想实现Springs RetryAdvice来处理这个问题.
我找不到任何工作示例如何配置它.该参考似乎很清楚如何使用它,但不知何故,我不能让它工作.

<!--Used to translate NHibernate exception to Spring.DataAccessExceptions-->    
<object type="Spring.Dao.Attributes.PersistenceExceptionTranslationPostProcessor, Spring.Data"/>

<!--ExceptionHandler performing Retry on Deadlocks-->
<object name="ExceptionHandlingAdvice" type="Spring.Aspects.RetryAdvice, Spring.Aop">
  <property name="retryExpression" value="on exception name DeadLockLoserException retry 3x rate (1*#n + 0.5)"/>
</object>
Run Code Online (Sandbox Code Playgroud)

我已将[Repository]属性添加到我的DAO以启用ExceptionTranslation,并尝试将RetryAdvice添加到我正在使用的TransactionProxyFactoryObject但它不起作用.我不明白在哪里提出这个建议.我是否必须声明一个PointCut来添加它,或者我怎么能让它按预期工作.

Thx提前 - 任何帮助赞赏.

nhibernate aop spring hibernate spring.net

5
推荐指数
1
解决办法
2239
查看次数