transactions相关内容

如何在 DDD 中管理域逻辑和事件之间的事务?

我正在研究 DDD 和事件源中的编程. 我看到一个示例,当调用域逻辑时(例如 Order.placeOrder()),它会发布一个事件(例如 OrderPlaced).并且该事件将作为事件存储发送到 MQ. 领域逻辑(Order.placeOrder())应该是一个原子API,如果使用Spring作为事务管理器,它应该有@Transactional注解.p> 现在我的问题是: ..

使用 perl 和 DBI 将一个非常大的表从一个 DB2 复制到另一个

我需要每天将一个非常大(数百万行)的表从一个 DB2 DB 复制到另一个 DB2 DB,并且我需要使用 perl 和 DBI. 有没有比从第一个 DB 中简单地 fetchrow_array 每一行并将它们一个接一个插入第二个 DB 更快的方法?这是我得到的: $sth1 = $udb1 ->准备($read_query);$sth1 ->执行();$sth1 ->bind_columns ..
发布时间:2022-01-14 22:33:52 其他开发

DB2 SQL 脚本:如何启动事务并在错误时回滚

我正在为 DB2 数据库 (V9.5) 实现一个 SQL 脚本,以便添加列和重新组织数据.我想从 linux 命令行执行脚本: $ db2 -vstf migration.sql migration.sql 中的所有语句都应该包装在事务中.如果一条语句失败,则必须回滚所有先前的更改.我怎样才能做到这一点?我尝试使用 START TRANSACTION 但 DB2 在这种情况下返回语法错误. ..
发布时间:2022-01-14 22:32:45 其他开发

如何只更新 DB2 中的一条记录?

在 DB2 中,我需要做一个 SELECT FROM UPDATE,将更新 + 选择放在一个事务中. 但我需要确保每笔交易只更新一条记录. 熟悉 MySQL 的 LIMIT 子句更新选项 限制可更新的行数 我在 DB2 的 UPDATE 参考 但没有成功. 如何在 DB2 中实现类似的功能? 编辑: 在我的场景中,我必须根据要求提供 1000 个优惠券代码.我只需要 ..
发布时间:2022-01-14 22:29:59 数据库

NHibernate - 为什么 Delete() 调用无法删除但通过 HQL 删除有效?

考虑到以下代码块,为什么调用 HQL 有效但调用 delete() 无效?作为背景,我在 IBM.Data.DB2.Iseries 驱动程序上使用 NHibernate.来了解一下,AS400 上的日志功能已关闭,因此我无法使用事务.我不是 AS400 管理员或对此一无所知,所以我不知道关闭日志(不打开交易)是否会导致此问题.如果我调用 Delete() 或其他 NHibernate 函数,我是否 ..
发布时间:2022-01-14 22:07:36 其他开发

Google App Engine Datastore,在更新几秒钟之前返回

所以我的数据存储区中有需要更新的值.我正在使用事务,如下所示.提交更新后,我将结果发送回客户端,让他们知道更新已经完成.然后,客户端发送另一个请求以获取更新的项目列表.据我所知,所有代码都正确执行,没有抛出任何错误,最终我得到了按预期显示的更新请求. 我的问题是即使在提交之后有时也会在更新显示在返回列表中之前几秒钟.如果只是延迟,那将是糟糕的,但比这更糟糕.该列表在此时间段内返回不正确/未更 ..
发布时间:2022-01-13 13:51:23 其他开发

是否可以在 MongoDB 之上实现多版本并发控制(MVCC)?

MongoDB 对我来说是一个很棒的数据库.但是,在某些情况下,我确实需要原子多文档事务.例如,在帐户之间转移东西(如金钱或声誉),这需要完全成功或完全失败. 我想知道是否可以通过实现多版本并发控制模式的库与 MongoDB 进行交互. 在表演方面会有多糟糕?使用混合方法是否可能且有利可图,仅在必要时使用“mongo-mvcc"库,而在仅处理单个文档时使用传统的数据库连接,或者这会破坏 ..
发布时间:2022-01-13 13:37:08 其他开发

如何在 Spring 中重新启动死锁/锁定超时事务?

在使用 Spring 时,在死锁或锁定超时异常时实现事务重启的最佳实践是什么(特别是 Spring 推荐的方法:声明性事务)? 谢谢, 阿萨夫 解决方案 我觉得 Spring 本身应该对这个问题有一个很好的答案(至少以文档的形式,或者某种重试拦截器).唉,它没有. 可能处理重试的最佳方式(如果您想继续“声明性"地处理事物)是编写您自己的拦截器实现,该实现将自动重试事务配置 ..
发布时间:2022-01-13 10:38:13 Java开发

@Transactional 注解属于哪里?

您应该将 @Transactional 放在 DAO 类和/或其方法中,还是最好注释使用 DAO 对象调用的服务类?或者注释两个“层​​"有意义吗? 解决方案 我认为事务属于服务层.它了解工作单元和用例.如果您将多个 DAO 注入到需要在单个事务中协同工作的服务中,那么这是正确的答案. ..
发布时间:2022-01-13 09:39:02 Java开发

库存系统:基于交易或存储数量,用触发器更新?

您将如何为 RDBMS 中的库存管理系统设计数据模型? 你会: 存储每次购买和使用情况,并使用 SUM() 和 GROUP BY 即时计算仓库数量? 同1,但每天合并数量,使用前一天的值? 数量作为 Int 字段,通过应用层更新? 同 3,但使用 DB 触发器? 基于交易的库存系统在捕获的细节水平方面似乎更胜一筹,但要正确实施却更难.性能会随着时间的推移而下降. 基于 ..

如何在 C# 中保存文件和在 DB 中插入记录之间创建事务范围

我有一个问题,用于保存文件并在 TransactionScope 中的 DB 中插入记录;意味着保存文件和插入记录,必须一起依赖=或两者或都不依赖.有人可以帮帮我吗? 解决方案 try{//启动数据库事务//保存到数据库代码//保存到文件代码//提交数据库事务}抓住{//回滚数据库事务} 请注意 DB 的顺序应该是第一个然后保存到文件. ..
发布时间:2022-01-09 13:02:53 C#/.NET

PHP/MySQL - “开始...提交"不工作

我正在寻找一种在单个查询中将数据插入两个数据库表的方法,这样如果一个失败,则不会保存(我不想要孤立的数据).我遇到了一个 Stack Overflow 问题,该问题向我展示了如何使用 BEGIN...COMMIT 来完成此操作,但它根本不起作用. 这是我设置的查询: $query = "开始;INSERT INTO content_subpages (title, url_referer) ..
发布时间:2022-01-09 12:58:56 PHP

Sql Server 2005 - 如果不存在则插入

互联网上有很多关于这个常见“问题"的信息. 解决方案如: IF NOT EXISTS() BEGIN INSERT INTO (...) END 在我看来不是线程安全的,你可能会同意. 但是你能确认把exist放到一个单选的where子句中就可以解决sql引擎中最高并发的问题吗?够了吗? 插入表格(列)选择第 1 列、第 2 列、第 3 列where not exists (se ..
发布时间:2022-01-09 12:58:46 数据库

SQL Server - 存储过程中的嵌套事务

假设情况是这样的: [存储过程 1]开始开始交易...执行 sp 2犯罪结尾 现在,如果 SP 2 - 无论出于何种原因回滚,SP 1 - 是提交、回滚还是抛出异常? 谢谢. 解决方案 SQL Server 中没有自治事务.您可能会看到 @@TRANCOUNT 增加超过 1,但回滚会影响整个事情. EDIT 要求指向文档.不知道哪个主题明确记录了这一点,但我可以在行动中向 ..
发布时间:2022-01-07 13:42:50 其他开发

JBoss TreeCache 作为二级 Hibernate 缓存的并发策略配置

我使用的是 JBoss EAP 4.3. 我目前正在研究使用内置 JBoss TreeCache 作为 Hibernate 的二级缓存时的并发策略的不同选项.我已经对其进行了设置,并且通过查看日志验证了缓存是否正常工作,但我不确定真正使用了哪种并发策略以及它是如何工作的. 对于每个实体,我可以在 @Cache 注释中设置以下“使用"值之一:NONE、READ_ONLY、NONSTRIC ..

如何使用 BMT 将客户端 UserTransaction 传播到无状态会话 bean

这个使用 CMT 的场景有效: 带有 CMT 的无状态会话 bean,一种用 @TransactionAttribute(TransactionAttributeType.MANDATORY) 注释的方法.在此方法中,使用 XA 数据源和普通 JDBC 将记录写入 RDBMS. 独立客户端(单独的 JVM,命令行 Java 应用程序)正在从应用程序服务器(通过 JNDI 查找)获取 U ..