如何在windows 8中使用并发提交来自不同用户的多个事务

本文关键字:用户 事务 提交 windows 并发 | 更新日期: 2023-09-27 18:17:30

谁能告诉我在windows 8中如何一次提交多个事务?例如,使用并发需要一次提交所有事务,这可能吗?如果可以,请给我一个在Windows 8中实现的想法。

编辑:

多个事务同时来自不同的用户,那么我需要一次提交所有这些事务到服务器。在Windows 8中有并发更新机制。我需要把这些都提交给服务器。请告诉我你的想法。

如何在windows 8中使用并发提交来自不同用户的多个事务

您有一个数据库服务器接受来自各种客户机的连接,并且您想要同步它们,以便它们都被视为一个大的数据库事务。我认为这件事不能简单地解决。

您需要您的客户端将其数据保存到中间位置(例如,"即将保存"的表),然后偶尔(取决于您定义的"立即")将数据从中间表移动到"真正保存"的表。

您可以在数据库中实现从即将保存到实际保存的转换,因此不需要额外的服务器。

请记住,让多个客户端直接访问您的数据库几乎从来都不是一个好主意。

所以,这很棘手。你的题目听起来像一个数据库问题。当然没有ADO。在Windows 8中,交易在论坛中出现的次数并不多。但是您想要的是将多个用户的请求作为单个原子操作来处理。

让我们看看。有很多方法可以做到这一点。但是让我们假设您有一个具有两个方法的服务。AddToQueue(请求)和CheckStatus(请求)。这两个方法实际上为您创建了一个事务。像这样:

场景1(一切正常)

  1. 用户A使用AddToQueue(),将他的请求添加$1到银行
  2. 用户B使用AddToQueue(),将他的请求添加到银行
  3. $2
  4. 用户A使用CheckStatus()来查看他的请求是否完成,它是PENDING
  5. 用户C使用AddToQueue(),添加他的请求添加$1到银行

让我们假设队列中的三个项目触发了事务的发生

  1. 系统批量处理3个现有的请求,在一个事务中执行
  2. 系统将请求标记为SUCCESS
  3. 用户A使用CheckStatus()来查看他的请求是否完成,结果是SUCCESS
  4. 用户B使用CheckStatus()来查看他的请求是否完成,结果是SUCCESS
  5. 用户C使用CheckStatus()来查看他的请求是否完成,结果是SUCCESS

场景2 (something goes wrong)

  1. 用户A使用AddToQueue(),将他的请求添加$1到银行
  2. 用户B使用AddToQueue(),将他的请求添加到银行
  3. $2
  4. 用户A使用CheckStatus()来查看他的请求是否完成,它是PENDING
  5. 用户C使用AddToQueue(),添加他的请求添加$1到银行

让我们假设队列中的三个项目触发了事务的发生

  1. 系统批量处理3个现有的请求,在一个事务中执行
  2. 系统将请求标记为FAIL(无论出于何种原因)
  3. 用户A使用CheckStatus()来查看他的请求是否完成,结果是FAIL
  4. 用户A使用AddToQueue()重试
  5. 用户B使用CheckStatus()来查看他的请求是否完成,结果是FAIL
  6. 用户B没有重试
  7. 用户C使用CheckStatus()来查看他的请求是否完成,结果是FAIL
  8. 用户C尝试使用AddToQueue()
  9. 用户D使用AddToQueue(),添加他的请求添加$1到银行

让我们假设队列中的三个项目触发了事务的发生

  1. 系统批量处理3个现有的请求,在一个事务中执行
  2. 系统将请求标记为SUCCESS
  3. 用户A使用CheckStatus()来查看他的请求是否完成,结果是SUCCESS
  4. 用户B在此场景中不再活动!
  5. 用户C使用CheckStatus()来查看他的请求是否完成,结果是SUCCESS
  6. 用户D使用CheckStatus()来查看他的请求是否完成,结果是SUCCESS

有意义吗?这样就可以了。

当然,还有更多需要考虑的。但这是最基本的。

祝你好运!