使用ThreadLocal实现Java嵌套事务

  • 时间:
  • 浏览:1
  • 来源:uu快3分析_uu快3APP_计划

结果

到这里,统统人创建了一两个栈(Stack)

新建如下接口:

新建如下事务管理类:

tcp连接的嵌套事务

新建的事务嵌套在外层事务中。不可能 内层事务完成(不论是回滚或是提交),外层的事务就可否 进行回滚或提交,曾经的操作暂且会影响内层事务。首先关闭最内层的事务,并逐步移动到外层事务。

内层事务回滚,外层事务提交的具体情况:

统统人使用ThreadLocal管理栈的连接。

理解嵌套事务

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

测试底下的方式,提交内层事务,回滚外层事务。

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

测试

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

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

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

原文链接: javacodegeeks

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

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

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

使用简单的POJO实现

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

大多嵌套事务全部都不 通过EJB实现的,现在统统人尝试实现对POJO的嵌套事务。这里统统人使用了ThreadLocal的功能。