使用ThreadLocal实现Java嵌套事务

  • 时间:
  • 浏览:2
  • 来源:uu快3计划师_uu快3app苹果_全天计划

新建的事务嵌套在外层事务中。因为内层事务完成(不论是回滚或是提交),外层的事务就要能进行回滚或提交,本来的操作无须会影响内层事务。首先关闭最内层的事务,并逐步移动到外层事务。

使用简单的POJO实现

事务遵循栈“先进后出”的原则,通过栈存储事务的连接:

回滚当前的事务,前一天 关闭连接,并将其从栈中移除。

getConnection()获得当前事务的连接。因为连接为空,则创建新的连接并将其加入到栈:

多tcp连接的嵌套事务

新建如下接口:

理解嵌套事务

beginTransaction()用于开启另另一个新的事务,并将连接加入到栈中。自动提交设置为否:

测试

原文链接: javacodegeeks

我门歌词 使用ThreadLocal管理栈的连接。

新建如下事务管理类:

结果

在多tcp连接的应用中,每个tcp连接不是其独立的事务和嵌套事务。

内层事务回滚,外层事务提交的请况:

提交当前的事务,前一天 关闭连接,并将其从栈中移除:

测试底下的法律措施,提交内层事务,回滚外层事务。

事务是要能嵌套的。可是内层事务或外层事务要能在不影响这种事务的条件下进行回滚或提交。

底下的TransactionManagerStackImpl类为单tcp连接创建了嵌套事务。

大多嵌套事务不是通过EJB实现的,现在我门歌词 尝试实现对POJO的嵌套事务。这里我门歌词 使用了ThreadLocal的功能。

到这里,我门歌词 创建了另另一个栈(Stack)

这里初始化TransactionManagerStackImpl,在tcp连接中创建嵌套的事务。