跨页面请求事务,长事务如何实现?

这个有些棘手, 或者说设计者设计的业务逻辑不好, 竟然多个Module(含JSP页面)需要一个完整事务控制..怎么办?各位

跨多个页面,是跨多个request-reponse周期吗?如果是这样的,借助于目前的技术工具没有办法完成这样一个长事务,只能你自己手动通过记录日志等方式,手动的控制事务回滚,类似于commond模式中undo。

正是跨多个RESPONSE-REQUEST...

查了资料据说StatefulSessionBean可以解决此变态问题, 可是我没能够理解..

TO xmuzyu :

您说的手动记录日志是记录数据库日志吗?

楼主可看看jboss seam 的对话

TO oojdon :
嗯, 收到,多谢, 我去看一下
如果我没记错,好像淘宝有自己的一套框架叫WEB-X, 也可以跨请求统一事务...

楼上提出用StatfulSessionBean是正解,如果是和Session无关的长事务,那是你分析需求角度出了问题。

lz的问题是类似“这个页面决定”和“下个页面后悔”这样的吗?
或者是“这个页面决定”、“下个页面也决定”和“下下个页面后悔”

那么,只要找到数据库中一个字段,
后悔的时候做些操作(比如删除)就行了吧。

或者把状态都放到"session"里,
当确实要决定的时候再一次性的提交->commit
就像购物车一样

可能我想简单了,呵呵

good luck

TO villagehead :
有个工作单元模式, 也可以记录工作状态, 到最后统一执行..
问题是我的这个跨请求了, 如果使用这些, 也很难维护这个 "工作单元" 或者 "HTTP Session"吧?

TO banq:
就是分析问题的角度出了问题...
和session无关的长事务是什么意思? 我没有理解