Val*_*era 10 java database filesystems transactions atomic
如何将非数据库操作封装到事务中?
例如,假设我有一些顺序调用的方法/函数,一些更新数据库,一些文件系统更新文件,HttpSession中的一些更新参数,一些更新缓存等.如果后一个失败,比如更新会话,如何在文件系统,数据库等中回滚所有其他更改?
环境是像Tomcat这样的Java Servlet容器,类似于Struts2,任何RDBMS,像Hibernate或Ibatis这样的持久层等.
所有这些都必须是事务性资源,能够参与两阶段提交协议,以便执行您想要的操作。
除非代码中有错误,否则会话更新永远不会失败。因此,您可以在其他更新成功后执行此操作。如果您需要事务性的东西,应该避免使用文件系统。另一种方法是首先保存到文件系统,然后进行数据库更新,如果数据库更新失败,则接受文件系统中存在无用文件。
| 归档时间: |
|
| 查看次数: |
487 次 |
| 最近记录: |