标签: transactions

TransactionScope和多线程

我想知道在处理多线程时如何以正确的方式使用TransactionScope类?

我们在主线程中创建了一个新的作用域,然后我们生成了几个工作线程,并且我们希望它们参与主作用域,因此,例如,如果作用域永远不会完成,则会在每个作者上调用回滚.

我在内部使用ThreadStaticAttribute阅读了有关TransactionScope的内容,这使得上述不可能/非常困难 - 有人可以验证这两种方式吗?如果我们以同步方式运行代码,那么回滚就可以工作,即内部事务能够参与主事务,但是如果我们切换到线程执行则不行.

谢谢

.net multithreading transactions

42
推荐指数
2
解决办法
1万
查看次数

SQL Server如何处理存储过程中与事务相关的语句?

假设我有一个由几个单独的SELECT,INSERT,UPDATE和DELETE语句组成的存储过程.没有明确的BEGIN TRANS/COMMIT TRANS/ROLLBACK TRANS逻辑.

SQL Server如何以事务方式处理此存储过程?每个语句都会有隐式连接吗?或者存储过程会有一个事务吗?

另外,我怎么能使用T-SQL和/或SQL Server Management Studio自行找到它?

谢谢!

sql sql-server stored-procedures transactions

42
推荐指数
1
解决办法
2万
查看次数

PHP-MySQL-如何安全地增加MySQL整数字段?

我想使用php和mysql安全地增加一个字段值.

  1. 我必须使用哪种类型的表/字段?

  2. 我必须使用最低版本的MySQL吗?

  3. MySQL的这个安全事务的sql代码是什么?

php mysql counter transactions

41
推荐指数
2
解决办法
5万
查看次数

@Transactional @PostConstruct方法

我想在我的应用程序的开头读取文本数据夹具(CSV文件)并将其放入我的数据库中.

为此,我使用初始化方法(@PostConstruct注释)创建了一个PopulationService.

我也希望它们在一个事务中执行,因此我在同一个方法上添加了@Transactional.

但是,似乎忽略了@Transactional:在我的低级DAO方法中启动/停止事务.

我需要手动管理交易吗?

spring transactions

41
推荐指数
4
解决办法
2万
查看次数

流水线与redis中的事务

当我们在Redis中使用事务时,它基本上管道事务中的所有命令.当触发EXEC时,所有命令一起执行,从而始终保持多个命令的原子性.

流水线不一样吗?

流水线和交易如何不同?另外,为什么Redis的单线程性质不足?为什么我们明确需要流水线/事务?

transactions pipelining redis

41
推荐指数
1
解决办法
2万
查看次数

Spring Boot中的@EnableTransactionManagement

Spring Boot需要@EnableTransactionManagement吗?我做了一些研究.有些人说你不需要它,因为Spring Boot已经启用它,其他人说你必须明确地使用它.所以怎么回事?

transactions spring-boot

41
推荐指数
5
解决办法
6万
查看次数

Atomikos vs JOTM vs Bitronix vs?

我是JTA的新手,也是基础交易经理.谁能解释每一个的优点/缺点?随意添加我没有在标题中列出的其他人.

此外,主要的应用程序服务器(WebSphere,JBoss,Glassfish)是否拥有自己的JTA兼容事务管理器?在这些环境中,您是否仍会使用这些第三方实施?

java transactions jta java-ee

40
推荐指数
2
解决办法
2万
查看次数

有没有比使用TransactionSynchronizationManager.isActualTransactionActive()更好的方法来检测Spring数据库事务是否处于活动状态?

我有一些遗留代码,我现在正试图在Spring下重用.这段代码深深地嵌套在其他代码中,因此重新设计并不常用,在许多情况下都会调用,其中只有一些是通过Spring实现的.我想做的是使用Spring事务,如果已经启动了; 否则,继续使用现有(传统)数据库连接机制.我们的第一个想法是让我们的遗产类成为一个bean并使用注入TransactionPlatformManager,但似乎没有任何方法与我们的情况密切相关.一些研究表明Spring有一个叫做TransactionSynchronizationManager静态方法的类isActualTransactionActive().我的测试表明这种方法是检测Spring事务是否处于活动状态的可靠方法:

  • 当通过没有@Transactional注释的Spring服务调用时,它返回false
  • 当通过Spring服务调用时@Transactional,它返回true
  • 在我称为现有方式的遗留方法中,它返回false

我的问题:有没有更好的方法来检测交易是否有效?

spring transactions

40
推荐指数
1
解决办法
1万
查看次数

我可以从SqlConnection对象获取对待处理事务的引用吗?

假设某人(除了我)编写以下代码并将其编译为程序集:

using (SqlConnection conn = new SqlConnection(connString)) 
{
    conn.Open();
    using (var transaction = conn.BeginTransaction())
    {
        /* Update something in the database */
        /* Then call any registered OnUpdate handlers */
        InvokeOnUpdate(conn);

        transaction.Commit();
    }
}
Run Code Online (Sandbox Code Playgroud)

对InvokeOnUpdate(IDbConnection conn)的调用调用了一个我可以实现并注册的事件处理程序.因此,在这个处理程序中,我将引用IDbConnection对象,但我不会引用挂起的事务.我有什么办法可以控制交易吗?在我的OnUpdate处理程序中,我想执行类似于以下内容的操作:

private void MyOnUpdateHandler(IDbConnection conn) 
{
    var cmd = conn.CreateCommand();
    cmd.CommandText = someSQLString;
    cmd.CommandType = CommandType.Text;

    cmd.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud)

但是,对cmd.ExecuteNonQuery()的调用会抛出InvalidOperationException,抱怨它

"当分配给命令的连接处于挂起的本地事务中时,ExecuteNonQuery要求命令具有事务.该命令的Transaction属性尚未初始化".

我可以以任何方式使用挂起的事务登记我的SqlCommand cmd吗?我可以从IDbConnection对象中检索对待处理事务的引用(如果需要,我很乐意使用反射)?

.net c# sql-server ado.net transactions

38
推荐指数
2
解决办法
2万
查看次数

在事务中的select语句和在它之外的select语句之间是否存在差异

默认的READ COMMITTED隔离级别是否以某种方式使select语句在事务内部的行为与不在事务中的行为不同?

我正在使用MSSQL.

sql sql-server select transactions

38
推荐指数
2
解决办法
2万
查看次数