Tag: 交易

Spring事务中requires_new和嵌套传播的区别

我无法理解PROPAGATION_REQUIRES_NEW和PROPAGATION_NESTED传播策略之间的行为差​​异。 在我看来,在这两种情况下,当前的stream程是回滚的,但不是整个交易。 任何线索?

低延迟编程

我一直在阅读很多关于低延迟金融系统(尤其是自知名企业间谍案以来)以及低延迟系统的想法。 有一百万个应用程序可以使用这些人正在做的事情,所以我想了解更多关于这个话题。 事情是我找不到有关这个话题的任何有价值的东西。 任何人都可以在低延迟系统上推荐书籍,网站和示例吗?

MySQL AUTO_INCREMENT不会ROLLBACK

我使用MySQL的AUTO_INCREMENT字段和InnoDB来支持事务。 我注意到,当我回滚事务,AUTO_INCREMENT字段不回滚? 我发现它是这样devise的,但有没有解决这个问题的方法?

应该在哪里“@Transactional”放置服务层或DAO

首先,我可能会问一些以前曾被问及过的问题,但是我却找不到search结果。 一般来说(或总是:))我们定义了服务层上的事务性注释,通常是春季冬眠 Controller-> Manager-> Dao-> Orm。 我现在有一种情况,我需要在基于客户端站点的域模型之间进行select。 假设客户A正在使用我的域名模式,但是其他客户端网站会给我一个networking服务,而不是使用我们的域名模式。 我应该更换哪一层。 我相信它必须是Dao,它将从Web服务获取数据并将其发送回去。两个分别写入的Dao层并根据场景插入。 现在我已经意识到,当我们把@Transactional放在服务层时,我们一直在做紧耦合(如果有这样的事情或者说没有松耦合)。 这么多大脑不会是错的,或者他们(我怀疑它)。 所以问题是“哪里应该”@Transactional“放置服务层或DAO? 这是服务层向下,我应该更换。

“transaction.atomic”与“transaction.commit_on_success”相同吗?

Django 1.6build议@transaction.atomic作为从1.5开始的事务pipe理中的一部分。 我有一个由Djangopipe理命令调用的函数,该命令又被cron调用,即在这种情况下,没有HTTP请求触发事务。 片段: from django.db import transaction @transaction.commit_on_success def my_function(): # code here 在上面的代码块中, commit_on_success对my_function完成的所有工作使用单个事务。 用@transaction.commit_on_successreplace@transaction.commit_on_success是否导致相同的行为? @transaction.atomic 文档状态 : primefaces性是数据库事务的定义性质。 primefaces允许我们创build一个代码块,在这个代码块中保证数据库的primefaces性。 如果代码块成功完成,则更改将提交到数据库。 如果有exception,则更改将回滚。 我认为他们导致了同样的行为。 正确?

在日志中显示一个Spring事务

我用事务支持configuration了spring。 有什么办法可以logging事务,以确保我正确设置了一切? 在日志中显示是查看正在发生的事情的好方法。

NoSQL中的事务?

我正在研究NoSQL扩展数据库的替代scheme。 如果我想要基于交易的事物对这些事情敏感,我该怎么办?

如果通过REST进行交易是不可实现的,那么REST如何才能真正有用?

在研究REST的时候,可能有人会注意到的第一件事情是没有定义任何事务语义,有人说这是隐含地反对REST的,而另一些人则认为任何尝试这样做都会导致REST系统。 但是为了争辩起见,REST确实成为了stream行的“api”select,宇宙中的每个站点都开始暴露出平静的入口点。 如果没有交易行为,这些可用性究竟如何(我说的是无补偿的)? 因为在我看来,REST的好处之一就是它打破了数据的组成部分,这样你就可以打开它让智能客户端从多个服务组成数据(并添加和调整这些组合的数据)。 但是,如果我不能自己对这个数据组合进行更改,那么使用REST就变得毫无用处。 随着时间的推移以及对严肃的数据展示的需求的到来,我们需要的东西是:Simple(REST在那里获胜),并且支持事务行为,所以我们可以可靠地处理这些数据。 现在,我已经在我的研究中多次阅读了一个特定的论证,并且涉及到我们应该如何考虑REST中的事务,并且给出的示例是购物车,因为购物车隐含地具有隔离,因为购物车是你的。 然而,我不同意这个观点,首先,购物车的隔离仅仅是方便的,这不是一个交易隔离。如果我同时对我的购物车进行操作,而我的应用程序的某些部分正在读取数据从中? 我不希望我的应用程序的阅读部分看到“仍在交易中”的数据。 更不用说,并非所有的数据变化都有一个隐含的事务模型,多个服务上的事务处理肯定不会。 在我看来,事务需要发生,并且需要以使得实际的REST调用不知道事实的方式发生(添加到其余的有效负载是一个很大的否定,但添加标头是可以的)。 我已经阅读了一些关于如何通过REST创build事务模型的build议,并且一些正在编写的规范似乎是最近的。 有没有关于这个的真实想法? 不应该有比REST更多的东西,这样REST的简单性就可以用来抵御可靠的数据操作(“酸”交易)。 如果没有,我们是否真的想要赌注,并告诉服务开发者,如果他们想要在纯数据世界中进行交互,他们需要支持像肥皂这样可以说是单一的东西? 或者更糟的是尝试将自己的自定义事务支持构build到REST之类的东西中,使得每个服务都是非标准的并打破了REST的全部function? 在此先感谢您的任何想法。 编辑,添加简短的情况: 设想一个处理相册创build的客户表单,为了方便使用该相册,而不是要求用户给出艺术家资源的URI,他们可以从艺术家列表中select(最有可能从艺术家目录中获取) 。 为了便于使用,客户可以手动编写艺术家姓名,以便他们可以在发布场景中创build艺术家“内嵌”..客户端代码理解这一点,并且在发送请求创build相册之前,首先尝试确定如果艺术家已经存在,如果是的话,获得该艺术家的uri,否则创build艺术家,并获得艺术家uri。 然后,客户端代码继续创build相册,这是比平常更聪明的客户端,它不是坐​​在REST之上,“愚蠢”的发布,而是有一些交互处理纯粹的REST逻辑。 然而,在这种情况下,如果艺术家是首先创build的,那么保证艺术家不会被创build,除非专辑是创build的。 这不像交易所暗示的那样“关键”,但是它定义了客户端代码倾向于作为一个操作发生的一组工作(毕竟,它使得这看起来像对用户的单个操作)。 我在这个场景中看到的唯一指导就是让客户端在相册创build失败的情况下进行补偿操作,特别是打电话删除艺术家。 但这似乎有问题,因为客户假设艺术家是孤立的,尽可能不太可能,如果另一个客户已经“看到”该艺术家,并分配给它会发生什么? 这些是我对数据变化的担忧,虽然还有其他的差距(谁说艺术家不能在晚些时候被删除),那么这些行为是不透明的(即,行为不是自动的客户端,但用户特别要求的东西)。 我希望有助于阐明这个话题。

REST微服务间的事务?

比方说,我们有一个用户,电子钱包REST微服务和一个粘合在一起的API网关。 当Bob在我们的网站上注册时,我们的API网关需要通过用户微服务和钱包通过钱包微服务来创build用户。 下面是一些情况可能出错的情况: 用户Bob创build失败:没关系,我们只是将错误消息返回给Bob。 我们正在使用SQL事务,所以没有人在系统中看到Bob。 一切都很好:) 用户Bob已创build,但在创build电子钱包之前,我们的API网关硬件崩溃。 我们现在有一个用户没有钱包(不一致的数据)。 用户Bob已创build,并且在我们创build电子钱包时,HTTP连接将断开。 钱包创build可能已经成功,或者可能没有成功。 有什么解决scheme可以防止这种数据不一致的发生? 是否有模式允许交易跨越多个REST请求? 我已经阅读了关于这个问题上的两阶段提交维基百科页面,但我不知道如何在实践中应用它。 这个primefaces分布式事务:一个RESTfuldevise文件也似乎很有趣,虽然我还没有读过它。 另外,我知道REST可能不适合这个用例。 也许正确的方法来处理这种情况,完全放弃REST,并使用不同的通信协议,如消息队列系统? 还是应该在应用程序代码中执行一致性(例如,通过检测不一致性并修复这些不一致的后台作业,或者通过在“用户”模型上使用“创build”值,“创build”值等)具有“状态”属性?

ACID和数据库事务?

ACID和数据库事务之间有什么关系? ACID给数据库事务还是同样的事情? 有人可以启发这个话题。