动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.留言板.
.带你步入J2EE殿堂:最易懂的J2EE.
.JCP失去活力Java.net能否取而代之.
.在Java中处理日志记录.
.野马的性格 Java SE 6.0新特性体.
.java日记:学习java一年体会2.
.Java Servlet 编程及应用之八.
.Java应用中的反模式开发介绍.
.安全的基础----学习java安全之前.
.教您如何成为 EJB 专家详解系列连.
.在桌面应用中使用JAVA DB.
.JAVA规则 开发篇.
.改写equals的时候遵守约定.
.Java,Beans 和 关系数据库 的 镜.
.java中文件长度的转换.
.对象“友好的”访问.
.Web服务部署内幕.
.利用JAVA API函数实现数据的压缩.
.java 方法.
.对 Robocode 的创始人 Mat Nelso.

事务:在控制之中吗?--附一些高深内容

发表日期:2008-1-5 |



  BEA的WebLogic Platform 8.1的发布引起了行业分析家和IT从业者的极大热情,他们熟悉到它的潜力使J2EE平台的强大功能为更多的开发人员所使用。这使得J2EE架构师可以做它最擅长的工作--体系设计和技术问题的解决,同时答应"普通"开发人员使用由专家设计的体系结构,这些开发人员迄今为止还被限制于构建部门级的应用程序,因为他们缺少体系结构,从而缺乏可伸缩性来支持过去常使用的易用工具来生成的应用程序。
  
  WebLogic Platform的两个要害特征可以把高级业务开发人员和高级J2EE架构师的职责分开--BEA WebLogic Workshop的运行时(runtime),它利用高级体系结构命令对资深业务人员施加影响;Workshop开发环境,它答应开发者通过一致的图形抽象与环境相互作用,只有在需要表达业务规则而不是组装应用程序时才转变为代码行。IDE同样有帮助架构师的特性--它们可以产生骨架式的应用程序环境,植入标准组件等,并可以把这一环境以模板的形式向其他开发者发布,这使得业务程序员可以通过预先打包的方式和自动的方式快速启动工程(重要的是,这是一个与开发标准及其他开发工程一致的快速启动)。
  运行时框架的要害部分是控件体系结构--控件提供了封装业务逻辑的方法。业务开发者可以编写业务规则,使用控件以组件的形式提供业务规则,或者封装某些资源所需的复杂逻辑和基础结构。J2EE架构师可以实现这一"硬核心管道化(plumbing)"并把它包装在控件中,这样应用程序开发者就可以很轻易地像使用他们自己的逻辑那样地使用控件。这也解决了大型开发部门经常碰到的另一问题--J2EE编码者编写了许多非常优秀的基础结构,但因为业务开发者不知道如何去使用它,所以它们只能被其他J2EE专家所使用。
  从总体上来说,以J2EE开发者的角度来看,他们开始尽量避免做沉闷的、易错的剪切和粘贴工作--让我们做这些工作吧,它只不过是形成前端的另一个struts,或者只不过是另一个代码摘录来在JNDI查找JMS队列并通过它发送消息,没有人愿意干这种事。从非J2EE开发者的角度来说,用之前存在的组件组装有用的应用程序(比如以一种新的方法组合现有子系统的另一套Web页面)就变为可能,而这并不需要通过挑灯夜战来学习J2EE知识。
  
  事务:您失去了计划吗?
  对于事务我们究竟要做什么?什么都不需要,它只是背景。假如不讨论它,我又怎么写文章?它是什么?哦……
  
  事务、Workshop和控件
  控件只是简单的有注释的Java对象--这些注释提供了答应控件用户在高于通常的J2EE接口的抽象级工作的能力。当部署控件(实际上可能是多个控件的组合)时,注释对生成运行时联结(它是真正被部署的部分)起推动作用。与其他任何Java对象一样,控件从调用者中继续了事务上下文。因为控件没有远程接口的概念(至少当前的版本没有),所以调用者通常是由包含在EJB中的WebLogic Workshop生成的轻重量级控件容器。假如您查看与这个(WebLogic Workshop治理的)EJB关联的部署描述符,就会看到它有"容器"的事务策略--这样控件的事务上下文可以由EJB容器使用JTA提供,就像该控件是您编写的并从EJB代码调用的简单陈旧的Java对象。
  Workshop中最接近远程接口的事务是Web服务--它很轻易得到控件并把控件表现为Web服务(潜在的和对话Web服务),而不仅仅是一些鼠标的单击,这样剩下的问题就是……
  
  什么是Workshop Web Service的默认事务行为?
  当对Web服务方法进行调用时,从消息到达调用的联接已经通过大量J2EE(这完全取决于您在注释里的声明)机制完成,最后到达具有容器治理事务的EJB中。在执行方法期间, JTA事务将会运行。
  假如方法成功,事务会进行提交。假如方法失败(抛出Exception),事务将会回滚。就是这么简单。
  回忆这一点,即使WebLogic Workshop Web服务是可会话的(假如注释是这么说)。会话状态保存在数据库的表中,这一持久状态是如何与任何应用程序治理的持久状态关联的呢?它们包含在同一事务的上下文中。这样假如您的方法失败了,就似乎这段会话从来没有发生过。精细自动的行为事务是受欢迎的。这对部署意味着,在默认情况下,对话状态通过cgDataSource数据源保存。假如您的应用程序状态保存在别的地方,您可能会得到错误提示:不能通过事务影响数据源,因为它已经影响了作为cgDataSource底层的cgPool。您可以通过两种方法来修正该错误:要么更改cgPool来使用xa的数据库访问并得到两阶段的提交,要么让会话状态和应用程序状态通过相同的连接池保留在同一数据库实例中(Workshop的jws-config.properties文件从WorkShop角度进行控制)来避免两阶段的提交需要。
  假如一个Workshop Web服务调用另一个Web服务,在事务的上下文不会被传播,这样被调用的服务将根据我刚才概述的规则来运行它自己新的事务。假如您希望失败的服务调用回滚到调用者的事务,请重新向该架构抛出异常。假如想不管Web服务调用的失败来保存调用者(包括应用程序和会话)的状态,则可以捕捉到异常但不重新抛出。
  当然,现在应用的是事务的通常规则。假如您想保存一些数据(比如审计记录)而不考虑事务最终的结果,则您需要用到TransactionManager对象,在调用之前挂起事务,并在稍后进行恢复。对非J2EE的高手来说这是很常见的,因为这会使该对象成为J2EE架构设计师应该实现并提供给应用程序开发人员作为预先构建的控件。
  
  要害是,它没关系!
  最后的几百字对于许多应用程序开发者来说有些高深(至少是接近于高深)。而这就是要害。假如J2EE架构设计师理解了这些内容,并且当他们在做应用程序开发时把模板和开发方针一起使用时想到了这些内容,那么应用程序的开发人员就不需要担心--框架代表他们做正确的事情,它们也会很快地开发出更多应用程序,与没有指引正确方向的框架和模板相比,这些应用程序的行为更具有一致性。这意味着IT部门在下一次业务需求再次调整的紧急关头可以面带微笑并说没问题,而不是嘀咕着更新自己的简历。
上一篇:Java程序的性能优化StringBuffer与Vector 人气:724
下一篇:Java.until.Map,Set,List的资料整理 人气:1160
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-10 企业网站智能管理系统(TZIMS) v6
2008-10-10 拓文asp.net网站内容管理系统 v6
2008-10-10 动网论坛PHP版 v2.0++ Build 081
2008-10-10 免费时代CMS v5.0
2008-10-10 wodig第四季中文DIGG社区 v4.1 b
2008-10-10 老Y文章管理系统 v2.2 bulid 081
2008-10-10 魔法盒动感相册 ASP+SQL版 v2.0
2008-10-10 Asoft签到管理系统 v3.0 Pack1
2008-10-10 哥特人音乐网潮流留言本 v1.1
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成