【问题标题】:spring compensating.support.DefaultCompensatingTransactionOperationManager commit is failing on recursive deletespring compensating.support.DefaultCompensatingTransactionOperationManager 提交在递归删除时失败
【发布时间】:2015-08-14 16:50:11
【问题描述】:

我正在为 ldap 使用 spring 的补偿事务管理器。我正在使用DefaultTempEntryRenamingStrategy。 它通过将实体(因此为 dn )重命名为 <original_name>_temp 来进行就地软删除,然后在提交牵引力时,如果成功则实际去删除,否则回滚。问题是它无法对所有子树节点进行递归删除。

原因: 当它进行软删除时,它实际上是在修改对象的 dn。和路径现在改变了。但是当它实际上要递归删除叶子节点时,它不是使用更新的 Dn,而是使用旧的 Dn。

它正在搜索:剩余名称*'cn=1157718410FB13@example.com_temp,ou=People,o=122C91C0C62A83,o=Customers'* 但实际上应该是搜索*'cn=1157718410FB13@example.com_temp,ou=People,o=122C91C0C62A83**_temp**,o=Customers’*

我不确定是否需要进行一些配置才能进行递归删除,否则这是一个错误。欢迎任何建议我尚未探索其他策略,即 DifferentSubtreeTempEntryRenamingStrategy。

【问题讨论】:

    标签: java spring ldap spring-transactions spring-ldap


    【解决方案1】:

    这听起来确实像一个错误,但我必须承认我不太清楚如何使用 DefaultTempEntryRenamingStrategy 修复它。

    我希望它使用DifferentSubtreeTempEntryRenamingStrategy 可以按预期工作(这实际上是首选策略 - 它不是默认的原因是它需要更多的工作,特别是你需要确保有是 LDAP 树中策略可以放置条目的位置)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-23
      • 2017-11-16
      • 1970-01-01
      • 2014-07-14
      • 2012-07-19
      • 2010-11-22
      • 2013-11-24
      • 1970-01-01
      相关资源
      最近更新 更多