Asynchronous web和桌面应用程序在数据库访问方面的差异

Asynchronous web和桌面应用程序在数据库访问方面的差异,asynchronous,web-applications,transactions,desktop-application,Asynchronous,Web Applications,Transactions,Desktop Application,我有一个理论问题 在创建web应用程序时,使用工作连接和活动连接到数据库的桌面应用程序是不同的。因此,我很好奇是否有某种解决方案,可以提供更多类似桌面的数据库访问,例如客户端(web浏览器)异步请求上的事务 编辑: 所以我发现,可以有一个来自客户端的异步请求的事务处理过程。有没有解决方案可以在web应用程序中提供 e、 g我有一个assynchronou ajax调用,它由多个操作组成,我想将它们作为事务处理。如果一切正常,手术就会全部完成。但是如果其中一个失败了,就回滚它。就像它在DB中一样。

我有一个理论问题

在创建web应用程序时,使用工作连接和活动连接到数据库的桌面应用程序是不同的。因此,我很好奇是否有某种解决方案,可以提供更多类似桌面的数据库访问,例如客户端(web浏览器)异步请求上的事务

编辑: 所以我发现,可以有一个来自客户端的异步请求的事务处理过程。有没有解决方案可以在web应用程序中提供

e、 g我有一个assynchronou ajax调用,它由多个操作组成,我想将它们作为事务处理。如果一切正常,手术就会全部完成。但是如果其中一个失败了,就回滚它。就像它在DB中一样。可能吗


edit2:也许我错了,问题不在于ajax,而在于整个web应用程序,但我认为没有办法从web客户端发出异步请求。

数据库不知道身份验证之外的连接人。

事务需要与数据库连续连接。要使其与web应用程序协同工作,您需要一个平台,该平台允许应用程序独立于客户端请求连续运行。JavaServlet是最合适的,php是不行的。所以我想你会使用JavaServlet

在Javaservlet中,您可以创建一个db事务,为它创建一个id,然后将它们存储在一个静态变量或提供的应用程序范围的对象上下文中。然后,将id返回给客户端

当客户端想要发送另一个请求时,让它发送id。然后应用程序可以根据id定位事务变量。只要应用程序在两个请求之间没有重新启动,事务仍然存在并处于活动状态


因为web应用程序不知道用户何时离开应用程序,所以您必须创建一种机制来定期检查事务,如果用户在指定的时间段内离开它们,则回滚事务。

它们的行为完全相同。我是说,没错。完全正确。即使是异步的东西。您的控制器方法可以返回任务并异步等待一切。@很抱歉,但我对此不确定。在创建桌面应用程序时,很有可能和数据库的连接正常。更少的延迟,不会出现像web应用程序中那样的internet错误问题。还有数据库的质量?我不确定我是否可以比较mysql和mssql?可靠性方面?如果你知道我在想什么的话。是不。不同之处。@请原谅我的愚蠢,但数据库事务呢?使数据库处于一致状态?如果我从ajax触发事务,并且出现了一个错误,我需要以某种方式处理它吗?还是ajax足够聪明?(很抱歉我这么悲观)在那里。是不,不同。在ajax调用期间如何处理异常取决于您。如果您让它们离开,调用将返回500错误。如果这不适合你,抓住并归还其他东西。