在我们的应用程序中,我们使用Hibernate进行ORM,下面的警告是一条消息
警告:事务afterCompletion被后台线程调用!延迟操作,直到原始线程可以处理它。status=4
这条警告消息是我们可以忽略它还是我们需要检查它?
致敬,Sakumar
发布于 2015-07-06 14:53:14
你需要去查一查。只有当事务由一个线程启动,然后由其他“清理”线程回滚时,才会发生这种情况。这可能表明您启动了一个事务,但从未正确关闭它,或者某些后台清理决定回滚一个长时间运行的事务。无论哪种方式,你都应该深入研究它。
发布于 2021-10-05 12:54:48
我有相同的WARN消息和导致事务超时的问题(因为处理需要一些时间...10+最小值)。
问题是我有一个实际上是TimerService的调度器。当TimerService在预定的时间段用完时,它将调用@Timeout实现的方法,该方法将根据我的业务逻辑运行服务。这里的问题是,带@Timeout注释的方法将自己启动一个事务,这意味着对于处理某些1000+记录,只有一个事务是活动的,并且会在一段时间后超时。即使我为每个记录启动了新的事务,第一个事务也只是等待这些事务完成,并再次超时。
我通过调整@Timeout方法中的逻辑来修复它,使其只处理较小批次的数据,但更频繁。
https://stackoverflow.com/questions/31239303
复制相似问题