Java 尝试获取锁时发现死锁;尝试重新启动事务:@RetryTransaction
我正在使用mysql进行JavaSpringHibernate项目 我正在尝试在cascade中插入一些内容。作业被抛出集群,因此它们几乎可以同时发生,因此存在死锁问题 我有一个错误: 尝试获取锁时发现死锁;尝试重新启动事务 我发现spring Developer有@RetryTransaction。一种配置的方法 他们说: 方法的类必须在生成时或运行时编织 将AspectJ编译器与RetryTransactionSpect方面一起使用 包含在DellLoad stuff JAR文件中 这是什么意思 但我没有成功地使它工作。它永远不会重新启动事务。我错过了什么 谢谢Java 尝试获取锁时发现死锁;尝试重新启动事务:@RetryTransaction,java,mysql,spring,hibernate,deadlock,Java,Mysql,Spring,Hibernate,Deadlock,我正在使用mysql进行JavaSpringHibernate项目 我正在尝试在cascade中插入一些内容。作业被抛出集群,因此它们几乎可以同时发生,因此存在死锁问题 我有一个错误: 尝试获取锁时发现死锁;尝试重新启动事务 我发现spring Developer有@RetryTransaction。一种配置的方法 他们说: 方法的类必须在生成时或运行时编织 将AspectJ编译器与RetryTransactionSpect方面一起使用 包含在DellLoad stuff JAR文件中 这是什么
@Override
@RetryTransaction
@Transactional
public void save(AnalyseResult analyseResult){
@SuppressWarnings("deprecation")
final int attempt = RetryTransactionAspect.getAttempt();
System.out.println("#############");
System.out.println("Retry Transact : "+attempt);
System.out.println("#############");
analyseResultDao.save(analyseResult);
}
在my BeanConfig.xml中:
你的类路径上有AspectJ JAR吗?我想是的。我想看看是否有Hibernate文档,因为我想您需要使用AspectJ配置Hibernate事务管理器。我使用maven Aspectjrt.1.5.4和aspectjweaver.1.5.4处理。所以它们在类路径中。你的意思是我必须像这样添加一些配置:?
<bean class="org.dellroad.stuff.spring.RetryTransactionAspect" factory-method="aspectOf">
<property name="persistenceExceptionTranslator" ref="hibernateExceptionTranslator"> </property>
<property name="maxRetriesDefault" value="4"></property>
<property name="initialDelayDefault" value="25"></property>
<property name="maximumDelayDefault" value="5000"></property>
</bean>