文档章节

乱想:由JTA蔓延到EJB

奋斗到天明
 奋斗到天明
发布于 2015/08/27 17:53
字数 634
阅读 88
收藏 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
昌平
程序员
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
【J2EE】之常用的接口和协议

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

m18633778874
04/26
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

没有更多内容

加载失败,请刷新页面

加载更多

负载均衡的解决方案有哪些

负载均衡器服务可满足大型组织的需求,支持所有数据中心和跨数据中心高可靠性场景。 本地负载均衡,通过附带或者未附带持久性覆盖选项,Incapsula支持各种负载均衡算法,以优化服务器之间的流...

上树的熊
10分钟前
0
0
Java实现在线打开word文档加盖印章/盖章/签名功能

前言: 我们知道,大型一点的OA办公系统都会有很多在线处理office办公文档的需求。其中有一点也基本绕不开,那就是为文档盖章或添加手写签名来保护文档,让被盖章的文档不再被编辑。 在Java中...

山里的红杏
17分钟前
3
0
js控制输入正负数,小数点后保留两位

//限制数字function clearNoNum(obj){ //修复第一个字符是小数点 的情况. if(obj.value !=''&& obj.value.substr(0,1) == '.'){ obj.value=""; } obj.value ...

一直在成长的程序猿
20分钟前
1
0
动态代理

具体场景 为了使代理类与被代理类对第三方有相同的函数,代理类与被代理类一般实现一个公共的interface,定义如下 public interface Subject { void rent(); void hello(String s)...

wuyiyi
24分钟前
0
0
时间字段

我们看看这几个数据库中(mysql、oracle和sqlserver)如何表示时间 mysql数据库:它们分别是 date、datetime、time、timestamp和year。date :“yyyy-mm-dd”格式表示的日期值 time :“hh:...

DemonsI
25分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部