文档章节

乱想:由JTA蔓延到EJB

奋斗到天明
 奋斗到天明
发布于 2015/08/27 17:53
字数 634
阅读 87
收藏 2

最近一个项目服务端原来是用EJB + SSH 转到Play 1.x上,而且原框架是分布式部署,整个程序理论上可有N个节点,实际上最多有五个节点的调用。项目包括Delphi客户端,Java服务端,与Java数据中心。EJB就是运用在服务端与数据中心。在框架迁移的时候不免设计到远程调用的修改以及事务问题。 

这里不讨论具体的实现,而是关于JTA与EJB的概念。说实在的,从踏上Java这条道,以前还没有遇到过EJB,可能这与所从事的行业都是互联网公司有关吧。对EJB知之甚少。不过感觉很神秘,很笨重的,很古老的样子。 

这次迁移框架才不得不看看EJB相关的东西,不过一看就头痛。断断续续的看了一些东西,在改事务的时候,看到了JTA,其中产生了一个疑问,事务回滚时setRollBackOnly()与rollback()的应用场景的区别。可惜一直没有找到答案,只好回去看源码,在网上找JTA文章,不断刷搜索引擎,终于发现两篇好文章

JTA 深度历险 - 原理与实现 http://www.ibm.com/developerworks/cn/java/j-lo-jta/

EJB到底是什么,真的那么神秘吗??http://blog.csdn.net/jojo52013145/article/details/5783677

前者解析了JTA的原理,后者揭开了EJB神秘的面纱。EJB用大白话来说,就是“把你编写的软件中那些需要执行制定的任务的类,不放到客户端软件上了,而是给他打成包放到一个服务器上了”。回看现在修改的项目,正是符合这个概念!不就是将delphi中部分代码放到Java端了么…… 

EJB使用的技术是RMI(Remote Method Invocation),基于Java对象的序列化与RPC(Remote Procedure Call)。从EJB的部署来看,每个机器上放几个类,的确是分布式集群,但是网络开销是免不了,我感觉还不如做负载均衡的好…… 

不过EJB的分布式事务倒是挺省事,开一个UserTranaction,每个节点之间就不用单独考虑事务了。这也正式JTA的威力。 

在迁移项目的过程中,对应JTA,对于远程调用,只好用事务补偿的方法,对新增数据做Undo操作,对修改数据做Redo操作,另外调用也必须是幂等性。

© 著作权归作者所有

共有 人打赏支持
奋斗到天明
粉丝 18
博文 112
码字总数 82707
作品 0
昌平
程序员
【J2EE】之常用的接口和协议

前言 初接触J2EE,会遇到很多之前没有遇到过的术语,下面我们来简单地汇总一下这些接口和协议吧。 各大接口和协议详解 JDBC 1.定义:Java数据库连接 2.地位:用于Java应用程序连接数据库的标...

m18633778874
04/26
0
0
tomcat支持哪些j2ee技术!

j2ee的13种核心技术:JDBC, JNDI, EJBS, RMI, JSP, JAVA SERVLETS, XML, JMS, JAVA IDL, JTS, JTA, JAVAMAIL 和 JAF tomcat支持的有哪些呢? 我所知道的是 支持:JDBC,JSP,Java Servlet,XML,......

MrBoyce
05/14
0
0
【科普】JavaEE的核心技术

java的大方向就是JavaEE,JavaEE不仅仅是socket编程,具体包括13种核心技术。 JAVAEE的核心API与组件 JAVAEE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于W...

花的鱼
06/26
0
0
JavaEE的核心API与组件

JAVAEE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对JAVAEE中的13种技术规范进行简单的描述(限于篇幅,这里只进行简单的...

明理萝
08/06
0
0
J2EE中一些常用的名词【简】

web容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接更容器中的环境变量接口交互,不必关注其它系统问题。主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,W...

anlve
06/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

又一个centos文件顺序导致的问题

背景 新的centos似乎对于文件顺序做了特别的优化 和文件顺序出现的问题确实多了不少 centos7导致的spring循环依赖【实际上和这个问题不一样 不过由此衍生出的问题】 某应用放在新的系统开始报...

Mr_Qi
12分钟前
0
0
阿里云国际版香港CN2测评 月付9美元/30M带宽/1T流量

市面上很多家香港VPS服务商,一直都说阿里云国际版香港CN2线路好,延迟低,速度快,价格便宜流量还多,那么这个香港线路到底怎么样呢?本文从性能、延时、路由、速度方面来全方面测评一下阿里...

flyzy2005
55分钟前
0
0
撤销git commit --amend

it commit -amend之后想撤销 git reset HEAD@{1}

xiaomge
今天
0
0
有意思的TimeUnit

java.util.concurrent.TimeUnit 这个类,相信童鞋们都不陌生。它是一个enum: public enum TimeUnit 好吧,我一直把它当做一个枚举类来用。偶然看到还有别的用法,大吃一斤,原来 TimeUnit 并...

polly
今天
10
0
生成pyc

Python生成pyc文件 pyc文件是py文件编译后生成的字节码文件(byte code)。pyc文件经过python解释器最终会生成机器码运行。所以pyc文件是可以跨平台部署的,类似Java的.class文件。一般py文件改...

Mr_Tea伯奕
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部