1

从 JCR 规范中,我知道我可以请求一个 UserTransaction 对象(在 JTA 中指定)并在当前会话期间创建一个开始/提交/回滚序列。可能的问题是我是否可以在 Sling 中做类似的事情?例如,当用户请求一个解析为我的 servlet 的 url 或在我的包启动期间。

我可以访问 JCR 存储库,但是当涉及资源时,事务机制是否会按预期工作(这可能不是 JCR 备份的......)?

还有 Sling/JCR/Jackrabbit 如何同时具有“事务控制”会话而不是“事务控制”?如果出现问题,这种行为是否会给存储库带来一些不一致?

4

1 回答 1

1

你真的需要交易吗?JCR 会话的瞬态空间作为轻量级事务机制运行良好,如果您关闭会话而不调用 save() 所有更改都将被丢弃。通常的模式是在处理您的请求的 servlet 或脚本中做一些事情,并且只有在所说的事情成功时才保存。

另一方面,Sling 提供对底层 JCR 会话的完全访问,因此您应该能够做任何合适的事情。如果没有,最好在 Sling 用户列表上询问,请参阅http://sling.apache.org/site/project-information.html#ProjectInformation-lists

于 2011-11-22T12:40:35.853 回答