是否有关于为事务处理配置 Rocket U2 数据库的文档?

Is there any documentation on configuring Rocket U2 database for transaction processing?

我正在尝试在使用 Rocket U2 Universe 数据库(以前称为 IBM Universe)的应用程序中实现事务处理。关于 UniObjects 的使用有相当好的文档,特别是 UniSession.CreateUniTransaction 方法,以及该 UniTransaction 对象上的 BeginTransaction、Commit、RollBack 等方法。

实例化 UniTransaction 对象并调用 BeginTransaction 非常简单,但是一旦该事务处于活动状态,任何访问 Universe 文件的尝试都会导致代码冻结或导致异常并显示消息 "Cannot perform this operation while a transaction is active".

有关于使用 UniAdmin 激活 "Transaction Logging" 的文档,但该文档采用 "Click this then click that" 的形式,没有真正解释底层架构的哪些部分受到影响。事实上,无论我点击多少"this and that",我都无法让"Transaction Logging"进入Enabled状态。我不确定 "Transaction Logging" 是否适用于我创建的 UniTransaction 对象的功能。

如果有人设法使用 UniTransaction 进行交易处理,请 s/he 指出正确的方向。

注意有"Rocket UniVerse Transaction Logging and Recovery"手册

可以在 Rocket 软件文档库中找到

http://docs.rocketsoftware.com/nxt/gateway.dll?f=templates$fn=default.htm

这是您在问题中提到的文档吗?

您能描述一下您在开始交易后尝试做什么吗?

最终我联系了我们当地的 Rocket 支持,他们在与 Rocket HQ 反复讨论后得到了答案:

要在事务中对 UniFile class 的实例执行操作,您必须设置 UniFileUniFileLockStrategyUniFileReleaseStrategy在尝试操作之前将属性设置为 1 ("record lock exclusive")。

非常简单,也很有道理,但没有很好的记录。