JTA的含义及应用简介

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

  Java Transaction API(Java事务API) (JTA)Java Transaction API(Application Programming Interface)

什么是JTA Transaction?它有怎样的特点呢?JTA Transaction是指由J2EE Transaction manager去管理的事务。其最大的特点是调用UserTransaction接口的begin,commit和rollback方法来完成事务范围的界定,事务的提交和回滚。JTA Transaction可以实现同一事务对应不同的数据库,但是它仍然无法实现事务的嵌套。

分布式事务的规范由OMG的OTS所描述。

JTA是只是一组java接口用于描述,J2ee框架中事务管理器与应用程序,资源管理器,以及应用服务器之间的事务通讯。

它主要包括高层接口即面向应用程序的接口;XAResource接口即面向资源的接口;以及事务管理器的接口。值得注意的是JTA只提供了接口,没有具体的实现。

JTS是服务OTS的JTA的实现。简单的说JTS实现了JTA接口,并且符合OTS的规范。

资源管理器只要其提供给事务管理器的接口符合XA接口规范,就可以被事务管理器处理。

所以,JTA可以处理任何提供符合XA接口的资源。包括:数据库,JMS,商业对象等等

“Java 事务 API”(JTA)启用两阶段提交功能。当配置 WebSphere Application Server 以访问数据库时,可选择具有 JTA 能力的驱动程序。如果需要两阶段提交功能,则必须使用启用 JTA 的驱动程序。

只要您在事务中调用了多个数据库连接,就需要 JTA。只要您在事务中调用了多个数据库服务器,就需要两阶段提交。这些连接可以是相同的物理数据库服务器或多个数据库服务器。例如:

* 实体企业 Bean Entity1 在应用程序服务器 AppServer1 中部署。

* 实体企业 Bean Entity2 在应用程序服务器 AppServer1 中部署。

* 会话企业 Bean Session1 在应用程序服务器 AppServer1 中部署。

如果 Session1 对同一事务内的 Entity1 和 Entity2 调用了方法而这两个企业 Bean 正在使用不同的物理数据库连接,则必须对 Entity1 和 Entity2 使用的数据源启用 JTA。当从相同的数据源对象获取那些连接时,这也是成立的。这需要具有 JTA 能力的驱动程序以提交事务。

当事务涉及到多个进程时,JTA 也是必需的。例如,一个事务可能会涉及在多个应用程序服务器中部署的企业 Bean。

* 实体企业 Bean Entity1 在应用程序服务器 AppServer1 中部署。

* 实体企业 Bean Entity2 在应用程序服务器 AppServer2 中部署。

* 会话企业 Bean Session1 在应用程序服务器 AppServer1 中部署。

如果 Session1 对同一事务(此事务构成一个分布式事务)内的 Entity1 和 Entity2 调用了方法,则必须对 Entity1 和 Entity2 使用的数据源启用 JTA。

性能实现JTA 启用的连接与非 JTA 启用的连接执行情况不同。基于此原因,如果您的应用程序不需要 JTA,则最好使用非 JTA 启用的驱动程序。

其它信息有关 WebSphere Application Server 如何支持 JTA 的信息,参见 WebSphere Application Server 和 DB2 UDB iSeries 版的事务处理及其子主题。

转载于:https://my.oschina.net/crazyinsomnia/blog/2595

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/406404.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑表格日期怎么修改原有日期_为何电脑系统时间常出错或无法修改?怎么解决?...

简介电脑系统出现的问题可谓层出不穷,千奇百怪。这不,有朋友就遇到电脑系统时间无法修改或者修改后很快就出错的问题,而且有时候在修改时会出现“没有权限,无法更改”的类似信息。这是怎么回事呢?首先我们得知道问题产…

JS实现数组、对象去重的几种常用方式

JS实现数组、对象去重的几种常用方式

DOM--5 动态修改样式和层叠样式表

W3C DOM2 样式规范 CSSStyleSheet对象 表示所有css样式表,包括外部link和嵌入style的;通过document.styleSheets属性可以获得文档中CSSStyleSheet对象的列表;其中每个CSSStyleSheet都具有以下属性: type: 值始终是text/css;disabled: 布尔值&…

VC++ 深入详解 学习笔记(5) -- 修改窗口样式续

From: http://elton.iteye.com/blog/301503 之前说过, 修改窗口大小,窗口样式的方法。 这里说明一下修改窗口的图标,光标和背景的方法。 修改窗口大小,样式是在创建窗口的时候进行的,而修改图标,光标和背…

×××常见问题原因与解决

服务器什么地方可能出现故障当客户端与某个ISP建立连接时(这种连接使用连接中的点对点协议--PPP--部分),ISP将为客户端分配一个IP地址、一个DNS服务器地址以及一个缺省网关。当客户端发起一个PPTP连接时,这项操作将创建第二个TCP/…

报错解析 [Vue warn]: You may have an infinite update loop in a component render function.

报错解析 [Vue warn]: You may have an infinite update loop in a component render function.

关于yield的一些资料

yield是一个语句不对应IL指定,编译后可以看到yield会变成一个IEnumerator(IEnumerable)实现. 参考: http://www.cnblogs.com/montaque/archive/2005/04/21/142844.html http://www.microsoft.com/china/msdn/library/langtool/vcsharp/CreElegCodAnymMeth.mspx?mfrtrue http:/…

改变窗口的外观和大小

From: http://blog.csdn.net/yoyobaibai/article/details/6044101 改变窗口的外观和大小需要在窗口创建以前改变。 所以我们可以在CMainFrame的 PreCreateWindow中改变CREATESTRUCT 结构体的值就行了。 E.G. BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) 改变窗口…

python评估不平衡数据集_Python Pandas:平衡不平衡的数据集(用于面板分析)

I know this might be easy to do. I can do it in Stata but Im trying to move to Python.I have a big dataset that its unbalance. It looks like this:And I need to get a dataset as follows:Any guidance its welcome. Thanks a lot!解决方案one way is to set year a…

Pixysoft.Framework.MemoryCache 开发实录

由于顾客的系统进场链接不稳定,导致很多业务无法操作,必须使用一个缓存算法。但是原先的思路,是豆瓣的分布式缓存算法,打算写的很大。但是实在显示需要,只能花2个阶段去写。第一阶段,实现本地的缓存&#x…

spring里的controller之间的跳转

未测试: this.getServletContext().getRequestDispatcher("/rentHouse.htm?methoddisplay").forward(request,response); return null;转载于:https://www.cnblogs.com/elhz/p/4274481.html

为CEDIT添加有颜色的边框

From: http://hi.baidu.com/dqf8/blog/item/56258ed62c658b2707088bb5.html 1、从CEDIT派生CMyEdit 2、添加代码: void CMyEdit::OnPaint() { CPaintDC dc(this); CPaintDC dc(this); // device context for painting // TODO: Add yo…

向后台接口传递FormData格式的数组对象

向后台接口传递FormData格式的数组对象 前端利用formData格式进行数据上传,前端formData 传值 和 json传值的区别?

学会使用ant design封装一个锚点组件

我是歌谣 放弃很容易 但是坚持一定很酷 封装一个锚点组件就是要知道一个父子组件的一个传值 很显然 父亲这边传过去一个数组 然后就可以进行循环遍历得到一个新的数值 这边注意 当我们进行一个map返回值得时候一定需要一个 ()或者return就可以实现了 这是…

java 在数组末尾添加元素_Java快问快答:用 ArrayList 还是 LinkedList?

问题&#xff1a;通常我会这么定义列表&#xff1a;List<String> names new ArrayList<>()names类型使用List接口&#xff0c;那么具体实现该如何选择。 什么时候应该用LinkedList替代ArrayList&#xff0c;反之亦然&#xff1f;这里大家可以关注一下我的个人专栏…

如何利用WGET覆写已存在的档案

如果你有用wget下載檔案&#xff0c;而且檔名都是一樣的話&#xff0c;如設定排程每天自動下載antivir的病毒碼&#xff0c;那麼你會發現&#xff0c;wget不會覆寫原本已經存在的檔案。而在他的說明文件中&#xff0c;似乎也沒有辦法在下載前先刪除已存在的檔案&#xff0c;只有…

vs2010的sdf文件和ipch文件夹

From: http://hi.baidu.com/vcdashi/blog/item/f25a3511afbf136bcb80c40e.html vs2010打开某个工程 &#xff0c;转换成功之后&#xff0c;在工程目录看见一个sdf文件和一个ipch文件夹&#xff0c;都超大&#xff08;起码几十M&#xff09;&#xff0c;我一个四百多k 的工程&a…

vue音视频播放器 vue-hls-player

vue音视频播放器 vue-hls-player