gpt4 book ai didi

java - 如何使一系列非数据库方法模拟事务。

转载 作者:搜寻专家 更新时间:2023-10-31 20:29:08 25 4
gpt4 key购买 nike

我有几个方法调用需要执行,它们需要是“事务性的”,但我不确定除了 try/catch/finally 之外如何实现它。

背景

  • 应用程序是基于控制台的。
  • 应用程序将有多个线程
  • 查询数据库以获取连接信息,连接到 Web 服务以登录,生成 session ID 并更新数据库。
  • 一个操作调用注销,需要清理数据库,清除session ID,注销webservice

我想弄清楚的是什么

我想确保在请求注销时我想确保整个过程要么全部成功,要么根本不成功。例如,我不希望清理数据库、清理 session ID 和注销操作失败(因此登录仍然有效)。

理想情况下,解决方案会在出现故障时“回滚”,从而确保保持先前的状态。

是否有巧妙的方法来完成此操作,还是我必须使用一系列嵌套的 try/catch/finally block 来完成此操作?

最佳答案

如果你想实现一些rollback方法,你必须为所有你需要回滚的事情存储撤销数据,以防失败。

  • 对于数据库,您已经有一个回滚方法。
  • 对于您在可能需要回滚的操作中修改/删除的每个文件,您必须保留一份备份副本,以允许您恢复到以前的状态。
  • 任何可能需要回滚的内存变量都应该有备份副本。

这将允许您在代码中的任何时候在发生错误时回滚到之前的状态。

关于java - 如何使一系列非数据库方法模拟事务。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16325964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com