我有基于 JBoss 和 Hibernate 的系统。我需要处理两个长时间的操作。操作可能比事务的超时时间长。它的操作是在两个不同的事务中持续存在许多实体。如果出现问题,在此操作期间,我应该回滚事务的所有更改。
解决它的最佳方法是什么?
我认为,最好的方法是将所有操作合并到一个事务中,但它需要设置 LOng 事务超时,这对我们的系统来说是不可接受的。
在这种情况下管理许多事务是否更好。我该怎么做?
我有基于 JBoss 和 Hibernate 的系统。我需要处理两个长时间的操作。操作可能比事务的超时时间长。它的操作是在两个不同的事务中持续存在许多实体。如果出现问题,在此操作期间,我应该回滚事务的所有更改。
解决它的最佳方法是什么?
我认为,最好的方法是将所有操作合并到一个事务中,但它需要设置 LOng 事务超时,这对我们的系统来说是不可接受的。
在这种情况下管理许多事务是否更好。我该怎么做?
使用一个事务是好的、健壮的等等。再次尝试说服您的管理员;-)
否则,我可以想到:
update ... where ...
。这应该比完全插入要快得多,因此事务应该足够短。我不得不在 JPA 中做类似的事情(通过休眠)。我在 N 笔交易而不是 1 笔大笔交易中进行了操作。这个操作很少运行——它是一个自动化的工作——所以没有用户在网页上等待结果。
您预计交易需要多长时间?您希望用户等待多长时间?您预计此操作多久发生一次。也许你的要求不明确。