0

我们有一个 24x7 的应用程序来处理数十个 WF4 实例。

我们使用 SQL Instance Store 持久化 OnIdle 成功实现了持久化和恢复策略,在受控关闭中等待该状态并在恢复中加载回。

我们需要迁移到 ORACLE,并且我们使用了 DevArt Instance Store,但我们在使用相同的代码时遇到了一些问题。

到目前为止,我们仍在坚持 OnIdle,但现在我们必须在受控关闭时卸载,以便能够在恢复中加载。

当我们想到可能出现的“不那么温和”的关闭时,我们就会感到恐惧。

如果无法达到受控关闭方法,没有卸载的持久化实例怎么办?如何恢复它们?有人遇到过同样的情况吗?

4

2 回答 2

2

找到了,

可以使用 ORACLE Devart Instance Store 来完成。问题是 OracleInstanceStoreLogic 的 DevArt dotConnect 包中的一个错误,该错误将锁定到期时间推高至 2037 年,不允许再次加载实例。

代替

newLockExpiration := sysdate + p_lockTimeout / 24*60*60;

应该

newLockExpiration := sysdate + p_lockTimeout / (24*60*60);

我已经向 DevArt 人员报告了这个问题,以便在下一次更新中修复它。

于 2012-07-05T12:54:31.383 回答
2

我对“The Beat”的答案有一个重要的补充:缺少括号的错误仅在两个位置中得到修复!具体来说,脚本“OracleInstanceStoreLogic.sql”中有一个方法“ExtendLock”,它仍然有

newLockExpiration := sysdate + p_lockTimeout / 24*60*60;

(在撰写本文时,我们有 Devart 版本 7.8.287.0,并且错误仍然存​​在。)这肯定会导致我们的工作流程出现问题,在添加括号后就消失了。

我刚刚向 Devart 提交了一份错误报告。

于 2013-07-31T08:18:16.313 回答