文档章节

乱想:由JTA蔓延到EJB

奋斗到天明
 奋斗到天明
发布于 2015/08/27 17:53
字数 634
阅读 90
收藏 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
EJB提供的应用程序可移植性,抽象性以及由抽象性而提供的向后兼容性

首先,EJB不是人们想象中的样子:重量级。实际上,它的目标与“重量级”这三个字恰恰相反:轻量级。 意味着它的目标在于减轻企业级软件开发的任务。企业级开发的特点是什么呢?它的特点是:认...

刘小兵2014
2011/08/14
0
0
Apache TomEE 1.0 正式版发布

Apache TomEE 1.0 正式版发布了,该版本在启动时间上比上个 Beta 版本缩短了 1-3 倍。通过了完整的 Java EE 6 Web-Profile 认证。 Apache TomEE 是经过 J2EE 6 认证的 Tomcat 企业版本,Tom...

红薯
2012/05/01
1K
10
【科普】JavaEE的核心技术

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

花的鱼
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Netty 备录 (一)

入职新公司不久,修修补补1个月的bug,来了点实战性的技术---基于netty即时通信 还好之前对socket有所使用及了解,入手netty应该不是很难吧,好吧,的确有点难,刚看这玩意的时候,可能都不知道哪里...

_大侠__
昨天
4
0
Django简单介绍和用户访问流程

Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。 Django是一个开放源代码的Web应用框架,由Python写成。 Django遵守BSD版权,初...

枫叶云
昨天
7
0
EOS错误代码及中文释义

本文集汇总了EOS区块链常见错误代码及其含义,完整错误代码集请查看 EOS错误代码集 - 汇智网 EOS错误代码列表如下, <table class="table table-striped"> <thead> <tr><th>错误代码</th><t......

汇智网教程
昨天
2
0
Spring Cloud Stream消费失败后的处理策略(四):重新入队(RabbitMQ)

应用场景 之前我们已经通过《Spring Cloud Stream消费失败后的处理策略(一):自动重试》一文介绍了Spring Cloud Stream默认的消息重试功能。本文将介绍RabbitMQ的binder提供的另外一种重试...

程序猿DD
昨天
4
0
kiss原则

KISS 原则是用户体验的高层境界,简单地理解这句话,就是要把一个产品做得连白痴都会用,因而也被称为“懒人原则”。换句话说来,”简单就是美“。KISS 原则源于 David Mamet(大卫马梅)的电...

NB-One
昨天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部