流程事务处理

wuxufeng8080 2007-06-13
请问jBPM在并发的情况下,事务是怎么处理的?

如下情况
一个任务,两个人使用同一个帐号(即一个actorid)来处理同一个任务。这个时候可能因为处理速度的问题,第二个人却先完成了。那么第一个人会出现什么错误?

如果解决这种可能出现的并发问题?
huangjue 2007-06-14
业务问题,与工作流无关。
wuxufeng8080 2007-06-14
这个应该是hibernate的事务问题,研究一下先,嘿嘿
youngliuus 2007-06-14
  你说得没错,这是hibernate的事务处理。jbpm使用的是hibernate的乐观锁(version)机制。并发事务中后提交那个在提交时hibernate会发现数据版本不一致,并抛出异常。我们在业务层应该捕获这个异常,并在表现层告诉用户任务已经被其他人更改。
  另外,TaskInstance有一个start方法。可以用这个方法先锁定一个代办任务,进行完相应的业务操作后再调用end方法。在一些业务场景中这可能是用户希望的行为方式。
wuxufeng8080 2007-06-15
谢谢,了解
Global site tag (gtag.js) - Google Analytics