【问题标题】:Order version in session greater than Repository Item Version会话中的订单版本高于存储库项目版本
【发布时间】:2014-08-28 19:19:07
【问题描述】:

我在我们的日志中看到了InvalidVersionException 的一些实例,其中会话中的订单对象版本(OrderHolder)大于缓存中的版本(存储库项版本)。在什么情况下会发生这种情况?我的理解是,如果我们在事务之外修改和更新 Order,通常会得到这个 InvalidVersionException,在这种情况下,缓存中的版本将大于存储在订单内存中的版本。

【问题讨论】:

  • 我看到您问了多个问题,所有这些问题可能都具有相同的分辨率。我建议您尝试将所有问题合并为一个问题,列出所有症状(或错误)。

标签: atg


【解决方案1】:

更新订单有一个非常成熟的模式。您自己更新订单的任何代码(例如,标准购买流程表单处理程序之外)都必须执行以下操作。

  1. 获取配置文件的写入锁定
  2. 开始交易
  3. 按订单同步
  4. 修改订单
  5. 致电order.updateVersion()
  6. 致电OrderManager.updateOrder()
  7. 下达订单同步
  8. 结束交易
  9. 释放个人资料锁定

如果您不遵循这一点,您最终可能会遇到此类错误。

http://www.digitalsanctuary.com/tech-blog/java/atg/design-pattern-for-updating-an-atg-order.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    相关资源
    最近更新 更多