标题可能不够明确,所以让我试着解释一下。我正在开发一个基于 .NET 的新项目,它由 WPF 客户端组成,这些客户端使用 WCF Web 服务来访问 Oracle 数据库。问题不在于这个基本架构,而在于它应该如何与已经存在的东西一起工作。
目前,应用程序使用 PowerBuilder 编写并直接连接到数据库。此外,他们广泛使用 Oracle 的SELECT .. FOR UPDATE
语句通过锁定记录来管理并发性。由于新应用程序必须与旧应用程序并存,因此它们也应该以类似的方式锁定记录,但是依赖于 Web 服务的新架构并不容易做到这一点。
目前,我们正在考虑构建一个“数据服务器”,它将被 Web 服务调用并负责访问数据库。此服务器的目的是维护在多个 Web 服务调用中维护记录锁定所需的打开连接/事务。这是必需的,因为需要操作的“选择”和随后的“更新”部分SELECT .. FOR UPDATE
最有可能发生在至少两个单独的 Web 服务调用中(“获取记录”和“更新后”。)
我已经在 Internet 上搜索了有关这种情况的文档,但我似乎找不到关于该主题的太多内容。可以做到这一点——即在多个 Web 服务调用中保持打开记录锁——可以吗?适当地?我的方法合适吗?是否有任何已发布的关于此事的“最佳实践”?
更新:问题的原标题是如何使用面向服务的架构维护记录锁定?我按照约翰的建议更改了它,希望它可以激发一些答案。