JOTM

合集下载

Hibernate+Spring多数据库解决方案

Hibernate+Spring多数据库解决方案

Hibernate+Spring多数据库解决方案我以前在项目中的探索和实践,写出来与大家分享。

大家有其他好的方式,也欢迎分享。

环境:JDK 1.4.x , Hibernate 3.1, Spring 2.0.6, JBOSS4.0, 开发模式: Service + DAO我们项目中需要同时使用多个数据库. 但 Hibernate 不能直接支持,为此我们对比了网上网友的方案,自己做了一点探索。

1. Demo需求我们的项目使用一个全省的公共库加十多个地市库的架构。

本文主要说明原理,将需求简化为两库模型。

主库:User管里,主要是系统管理,鉴权等数据;订单库:Order 管理,存放订单等业务性数据。

2. 原理:1) Hibernate 的每个配置文件对应一个数据库,因此多库需要做多个配置文件。

本文以两个为例:主库 hibernate_sys.cfg.xml,订单库 hibernate_order.cfg.xml每个库,Hibernate 对应一个 sessionFactory 实例,因此Hibernate 下的多库处理,就是在多个 sessionFactory 之间做好路由。

2) sessionFactory 有个 sessionFactory.getClassMetadata(voClass) 方法,返回值不为空时,表示该 VO 类在该库中(hbm.xml文件配置在了对应的hibernate.cfg.xml中),该方法是数据路由的核心和关键所在。

因此, User.hbm.xml 配置在 hibernate_sys.cfg.xml ,Order数据位于配置到 hibernate_order.cfg.xml3)多库处理时,需要使用 XA 事务管理。

本例中使用 Jboss4.0 来做JTA事务管理;用JOTM,其他应用服务器原理相同。

3. 实现1)为做多 sessionFactory 实例的管理,设计 SessionFactoryManager 类,功能就是做数据路由,控制路由的核心是 sessionFactoryMap 属性,它按dbFlag=sessionFactory 的方式存储了多个库的引用。

JOnAS 中文文档

JOnAS 中文文档

Java开放应用程序服务器(JOnAS):J2EE TM平台本文主要描述了JOnAS J2EE平台:首先简短的介绍了J2EE概念以及ObjectWeb协会,然后介绍了JOnAS服务器架构及特性。

本文的结构如下:导论J2EESun TM J2EE规范,和与它相关的规范(EJB TM、JMS TM、...),一起定义了一个基于多层式架构来开发和部署分布式因特网Java TM服务器应用程序的结构跟接口。

这个规范企图促进和标准化应用程序组件的开发、部署以及组装;符合J2EE规范的组件将可部署在任意的J2EE平台上。

这样的应用程序通常是基于互联网并且含有交易处理、数据库导向的、多用户的、有安全性要求的和可扩充的以及可移植性的。

更精确的说,这个规范描述了二类信息:- 一是执行时期的环境,称为J2EE服务器,它提供了执行环境以及需要的系统服务,像交易处理服务、数据存取服务、Java消息服务(JMS)、安全性服务...。

- 二是有一些程序员指南和使用者指南解释如何开发、部署和使用应用程序组件。

应用程序组件不但可以独立于平台或是操作系统(因为是用Java编写的缘故),而且可以独立于J2EE平台。

一个典型的J2EE应用程序是由展示组件(presentation components)和企业组件(enterprise components)所构成。

展示组件也称之为"Web组件"(Servlets以及JSPs TM),它定义了应用程序的Web接口;企业组件,"Enterprise JavaBean"(EJB),它定义了应用程序的商业逻辑及应用程序数据。

J2EE服务器提供放置Web及企业组件的容器。

这些容器提供了对组件生命周期的管理和组件与J2EE服务器之间的接口。

J2EE提供的容器有两种:Web容器负责Servlet和JSP组件,而EJB容器则负责Enterprise JavaBean 组件。

Spring ibatis jta多数据源配置

Spring ibatis jta多数据源配置

Spring+iBatis+JOTM实现JTA事务JOTM是个开源的JTA事务管理组件,可以让程序脱离J2EE容器而获得分布式事务管理的能力。

测试过程如下:一、环境1、准备软件环境spring-framework-2.5.6.SEC01-with-dependencies.zipibatis-2.3.4ow2-jotm-dist-2.1.4-bin.tar.gzMySQL-5.1JDK1.52、创建数据库环境,注意数据库引擎为InnoDB,只有这样才能支持事务。

CREATE DATABASE IF NOT EXISTS testdb_a DEFAULT CHARACTER SET utf8;USE testdb_a;DROP TABLE IF EXISTS tab_a;CREATE TABLE tab_a (id bigint(20) NOT NULL,name varchar(60) DEFAULT NULL,address varchar(120) DEFAULT NULL,PRIMARY KEY (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8;CREATE DATABASE IF NOT EXISTS testdb_b DEFAULT CHARACTER SET utf8;USE testdb_b;DROP TABLE IF EXISTS tab_b;CREATE TABLE tab_b (id bigint(20) NOT NULL,name varchar(60) DEFAULT NULL,address varchar(120) DEFAULT NULL,PRIMARY KEY (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8;二、建立项目testJOTM1、建立项目后,准备依赖的类库,结构如下:│spring-aop.jar│spring-beans.jar│spring-context-support.jar│spring-context.jar│spring-core.jar│spring-jdbc.jar│spring-jms.jar│spring-orm.jar│spring-test.jar│spring-tx.jar│spring-web.jar│spring-webmvc-portlet.jar│spring-webmvc-struts.jar│spring-webmvc.jar│aspectjrt.jar│aspectjweaver.jar│cglib-nodep-2.1_3.jar│asm-2.2.3.jar│log4j-1.2.15.jar│asm-commons-2.2.3.jar│asm-util-2.2.3.jar│aopalliance.jar│mysql-connector-java-5.1.6-bin.jar│├─ibatis│ibatis-2.3.4.726.jar│sql-map-2.dtd│sql-map-config-2.dtd│├─jotm│license.txt│xapool.jar│jotm-core.jar│jotm-standalone.jar│jotm-jms.jar│jotm-datasource.jar│ow2-jta-1.1-spec.jar│jotm-client.jar│├─jakarta-commons│commons-attributes-api.jar│commons-attributes-compiler.jar│commons-beanutils.jar│commons-codec.jar│commons-collections.jar│commons-dbcp.jar│commons-digester.jar│commons-discovery.jar│commons-fileupload.jar│commons-httpclient.jar│commons-io.jar│commons-lang.jar│commons-logging.jar│commons-pool.jar│commons-validator.jar│├─junit│junit-3.8.2.jar│junit-4.4.jar│license.txt│└─log4jlog4j-1.2.15.jar2、根据表建立entity和SQLMappublic class TabA implements Serializable {private Long id;private String name;private String address;//省略getter/setterpublic class TabB implements Serializable {private Long id;private String name;private String address;//省略getter/setterTabA.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMap PUBLIC "-////DTD SQL Map 2.0//EN" "/dtd/sql-map-2.dtd" ><!-- 表名:tab_a --><sqlMap namespace="tab_a"><typeAlias alias="TabA" type="vasoft.stu.jtom.entity.TabA"/><resultMap id="result_base" class="TabA"><result property="id" column="id"/><result property="name" column="name"/><result property="address" column="address"/></resultMap><!-- 添加--><insert id="insert" parameterClass="TabA">insert into tab_a(id,name,address) values (#id#,#name#,#address#)<selectKey keyProperty="id" resultClass="long">select LAST_INSERT_ID()</selectKey></insert><!-- 更新--><update id="update" parameterClass="TabA">update tab_a setid = #id#,name = #name#,address = #address#where id = #id#</update><!-- 删除--><delete id="deleteById" parameterClass="long">delete from tab_awhere id = #value#</delete><!-- 根据ID获取--><select id="findById" parameterClass="long" resultMap="tab_a.result_base">select *from tab_awhere id = #value#</select></sqlMap>TabB.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMap PUBLIC "-////DTD SQL Map 2.0//EN" "/dtd/sql-map-2.dtd" ><!-- 表名:tab_b --><sqlMap namespace="tab_b"><typeAlias alias="TabB" type="vasoft.stu.jtom.entity.TabB"/><resultMap id="result_base" class="TabB"><result property="id" column="id"/><result property="name" column="name"/><result property="address" column="address"/></resultMap><!-- 添加--><insert id="insert" parameterClass="TabB">insert into tab_b(id,name,address) values (#id#,#name#,#address#)<selectKey keyProperty="id" resultClass="long">select LAST_INSERT_ID()</selectKey></insert><!-- 更新--><update id="update" parameterClass="TabB">update tab_b setid = #id#,name = #name#,address = #address#where id = #id#</update><!-- 删除--><delete id="deleteById" parameterClass="long">delete from tab_bwhere id = #value#</delete><!-- 根据ID获取--><select id="findById" parameterClass="long" resultMap="tab_b.result_base"> select *from tab_bwhere id = #value#</select></sqlMap>/*** TabADAO** @author leizhimin 2009-6-25 12:39:19*/public interface TabADAO {/*** 保存一个TabA对象** @param tabA TabA对象* @return 返回保存后的对象*/TabA saveTabA(TabA tabA);/*** 更新一个TabA** @param tabA TabA对象* @return 返回更新后的对象*/TabA updateTabA(TabA tabA);/*** 删除指定标识的一个TabA** @param id TabA标识*/void deleteTabAById(Long id);/*** 获取指定标识的TabA** @param id TabA标识* @return 所查询到的TabA*/TabA findTabAById(Long id);}/*** TabADAO** @author leizhimin 2009-6-25 12:43:55*/public class TabADAOImpl extends SqlMapClientDaoSupport implements TabADAO {/*** 保存一个TabA对象** @param tabA TabA对象* @return 返回保存后的对象*/public TabA saveTabA(TabA tabA) {Long id = (Long) getSqlMapClientTemplate().insert("tab_a.insert", tabA);tabA.setId(id);return tabA;}/*** 更新一个TabA** @param tabA TabA对象* @return 返回更新后的对象*/public TabA updateTabA(TabA tabA) {getSqlMapClientTemplate().update("tab_a.update", tabA);return tabA;}/*** 删除指定标识的一个TabA** @param id TabA标识*/public void deleteTabAById(Long id) {getSqlMapClientTemplate().delete("tab_a.deleteById",id);}/*** 获取指定标识的TabA** @param id TabA标识* @return 所查询到的TabA*/public TabA findTabAById(Long id) {return (TabA) getSqlMapClientTemplate().queryForObject("tab_a.findById",id);}}B的DAO和A类似,就不写了。

Ofbiz的启动过程

Ofbiz的启动过程
22656[ GenericDispatcher.java:85 :INFO ] [LocalDispatcher] : Created Dispatcher for: workeffort
22687[ ControlServlet.java:74 :INFO ] [ControlServlet.init] Loading Control Servlet mounted on path F:\eclipse\workspace\hrplannew\components\workeffort\webapp\workeffort
34、 Log.java:302:INFO ] Started WebApplicationContext[/partymgr,Open For Business - Party Manager]
35、 ContextFilter.java:300:INFO ] [ContextFilter.init] Getting Entity Engine Delegator with delegator name default
20265[ ConfigXMLReader.java:329:INFO ] RequestMap Created: (102) records.
20296[ ConfigXMLReader.java:481:INFO ] ViewMap Created: (32) records.
21、 ServiceEcaUtil.java:134:INFO ] Loaded 3 Service ECA definitions from file:/F:/eclipse/workspace/hrplannew/components/workeffort/servicedef/secas.xml

三聚磷酸钠溶液稳定性研究

三聚磷酸钠溶液稳定性研究
袅 1 3 三 聚 磷 酸 钠 {0 lmol/L)在 不 同 温 度 下 的 pH 值
2 结 果 与 讨 论 从 表 1—1可 知 :三 聚磷 酸 钠 溶 液 及 经 煮
沸 后 再 拎 至 室 温 的 三 聚 磷 酸 钠 溶 液 的 pH 值 未 发 生 明 显 改 变 ;综 合 表 1—1及 表 1—2可 知 :不 同实 验 条 件 下 的 三 聚 磷 酸 钠 溶 液 与 硝 酸银 溶 液 反 应 后 均 产 生 自 色 沉 淀 。 从 表 1一
高 等 函授 学 报 (自然科 学 版 ) Journal of Higher Correspondence Education(Natural Scienc ̄ )
V0I.15 No 1 Febrtu ̄ry 2002
将 0.1mol/L 的 三 聚 磷 酸 钠 溶 液 加 热 , 并 在 不 同 温 度 下 用 pHS一3C型 酸 度 计 测 定 它 的 pH 值 。pH 值 微 有 升 高 ,这 是 因 为 水 分 子 能够 电离 ,而 且 水 的 电离 是 吸热 反 应 ,温 度 升 高 ,Kw 增 大 (4)。实 验 结 果 见 表 1—3。
在磷酸盐系列中三聚磷酸钠对苎麻脱胶的煮炼效果要优于焦磷酸钠六偏磷酸钠及磷酸钠因为三聚磷酸钠不但能缩短苎麻脱胶的煮炼时间还能提高煮炼麻产品的质量和白度
维普资讯
第 15卷 第 1期 2002年 2月
高等 函授 学 报 (自然 科学 版 ) Jotmml of Highel"Cm瑚 p0nden胱 Education(Natural Sciences)
3可知 :三 聚磷 酸 钠 溶 液 在 加 热 过 程 中 pH 值 改 变 很 小 。实 验 结 果 表 明 :三 聚 磷 酸 钠 在 水 溶 液 中 加 热 或 在 加 热 煮 沸 的 条 件 都 不会 与 水 发 生 反 应 生 成 磷 酸 ,因 此 ,三 聚 磷 酸 钠 在 水 溶 液 中 是 稳 定 的 。这 是 因 为 三 聚 磷 酸 根 阴 离子 的 体 积 比 磷 酸 根 阴 离 子 的 体 积 大 ,从 而 导 致

应用服务器的配置

应用服务器的配置

应用服务器的配置很简单,前提是,你要找到应用工具。

兰州网站建设将通过本文为大家讲述利用Web工具平台(WTP)从Eclipse IDE向应用服务器部署LCDSnr: 应用服务器的配置很简单,前提是,你要找到应用工具。

兰州网站建设将通过本文为大家讲述利用Web工具平台(WTP)从Eclipse IDE向应用服务器部署LCDS,这种方法将使应用服务器的配置变得简单。

而通过通过Servers视图,即可实现通过Window | Show | Other | Servers命令。

如果在新建Flex项目向导期间配置的Apache Tomcat 5.5服务器没有显示,就需要通过以下这些说明使用Servers视图注册它:1.(1) 右击Servers视图,选择New | Server命令。

2.(2) 指定以下设置:服务器主机名称:localhost。

选择服务器类型:Apache | Tomcat v5.5 Server(或更新版本)。

服务器名称:Tomcat5.5 for LCDS Example(或其他描述性名称)。

(3) 单击Next按钮。

(4) 从可用项目中选择LCDSExample。

(5) 单击Add按钮,然后单击Finish按钮。

现在Servers视图应该能显示Tomcat 5.5 for LCDSExample项。

如果展开它,LCDSExample项目应该是可见的。

从该视图中,使用该视图顶部的控件或右击上下文菜单,服务器可以在正常模式下或调试模式下被启动和终止。

无论服务器何时启动,都将会部署LCDS应用程序。

当发生变更后,可以检测这些变更,并且重新部署应用程序,但是有时,兰州网站建设最好先手动终止并启动应用服务器,以确保正在运行的是最新版本的应用程序。

安装事务管理器由于Apache Tomcat是一个servlet容器而不是一个完备的J2EE应用服务器,因此它没有包含一个事务管理器。

由于DMS是事务型的,因此有必要手动配置事务管理器。

交行笔试题

交行笔试题

[部试题,请勿外泄]公司名称: 姓名:邮箱地址: 手机号码:本试题涉及的技术堆栈.开源产品.类库,如非特别指出版本,其版本为一. 选择题(每题2分,共60分)下列各题A).B).C).D)或E)多个选项中,至少有一个选项是正确的,请将正确的选项的标记写在题干后的括号内.第一部分:Java基础1. 为了区分重载多态中的同名的不同方法,要求.A. 采用不同额形式参数列表B. 返回值类型不同C. 调用使用类名或对象名作前缀D. 参数名不同注:Overload :方法重载,同一类中,方法名相同,参数不同。

Override :方法覆盖,子类重新实现了父类的方法。

方法覆盖的约束条件,子类的方法的名称、参数签名、返回类型一致。

子类不能缩小父类访问权限,但可以扩大父类的访问权限。

子类不能抛出比父类更多的异常。

2. 当已经创建Socket对象s来连接到远程服务器,下列哪个是最合适的方法来立即从socket读取ASCII数据?A. InputStream in=s.getInputStream();B. DataInputStram in=new DataInputStream(s.getInputStream());C. ByteArrayInputStream in=new ByteArrayInputStream(s.getInputStream());D. BufferedReader in=new BufferedReader(new InputStreamReader(s.getInputStream()));E. BufferedReader in=new BufferedReader (new InputStreamReader(s.getInputStream()),‘8859-1’);3下列关于final,finally,finalize的区别,说法错误的是A.final修饰符(关键字)如果一个类被声明为final,意味着它不能仔派生出新的子类,不能作为父类被继承,因此一个类不能即被声明为abstract的,又被声明为final的.B.将变量或方法声明为final,可保证它们在使用中不能改变.被声明为final的变量必须在声明是给定初值,而在以后的引用中只能读取,不能修改.被声明为final的方法也同样只能使用,不能重载.C.Java技术允许使用fianlize()方法在垃圾搜集器将对象从内存中清除出去之前做必要的清理工作.这个方法会立即调用System.gc()或Runtime.getRuntime()对应的native方法进行垃圾回收.它是在Object类中定义的,因此所有的类都继承了它.D.fianlly在异常处理是提供fianlly块来执行任何清除操作.如果抛出一个异常,那么相匹配的catch子句就会执行,然后控制就会进入finally块(如果有的话).4.下列关于Java的一些基础语法说法错误的是A.Anonymous Inner Class(匿名内部类)可以extends(继承)其他类,也可以implementsinterface(接口)B.静态内部类(Inner Class)意味着1)创建一个static内部类的对象,不需要一个外部的类对象,2)不能从一个static内部类的一个对象访问一个外部类对象C.abstract的method不能同时是static,不能同时是native,也不能同时是synchronizedD.构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载OverloadClass A{A(){}A(int a){}}Class B extends A{B(){}B(int a){}}New B()5.下面哪些是过滤器FilterInputStream的子类.A.DataInputStramB.DataOutStreamC.PrintStreamD.BufferedOutputStream6.关于以下程序代码的说明正确的是1.class HasStatic{2. private static int x=100;3. public static void main(String args[]){4. HasStatic hs1=new HasStatic();5. hs1.x++;6. HasStatic hs2=new HasStatic();7. hs2.x++;8. hs1=new HasStatic();9. hs1.x++;10. HasStatic.x--;11. System.out.println("x="+x);12. }13. }A.5行不能通过编译,因为引用了私有静态变量B.10行不能通过编译,因为x是私有静态变量C.程序通过编译,输出结果为:x=103D.程序通过编译.输出结果为:x=102第二部分:SPRING应用7.关于Spring的说法正确的是A.spring是一个轻量级的Java EE的框架集合,核心内容是一个IoC模式的实现B.依赖注入(DI)的目标是在代码之外管理程序组建间的依赖关系C.AOP减少了对代码的直接侵入性,有助于提高系统的可维护性D.依赖注入即是"面向借口的编程,它是面替代面向对象技术的有效手段8.Spring事务的说法错误的是A.Spring提供了统一的事务管理抽象,它将本地事务模型.编程事务模型和声明式事务模型统一在同一个框架下B.本地事务并非面向Transaction,而是面向Connection的,Spring对于本地事务支持的实现中使用了ThreadLocalC.Spring支持的传播级别一共6种,包括PROPAGATION_REQUIRED,PROPAGATION_SUPPORT,PROPAGATION_MANDATOR,PROPAGATION_REQUI RES_NEW,PROPAGATION_REQUIRES_NEW,PROPAGATION_NEVERD.Spring事务支持各种JTA事务管理器实现,如JOTM,OC4J,WebLogic JTS, WebSphere JTS 等9.Spring的依赖注入说法错误的是A.@Autowired默认按照byType自动注入,而@Resource默认按byName自动注入B.要开启@Autowired,一种方式是配置AutowiredAnnotationBeanPostProcessor Bean,另外一种方式是使用<context:annotation-config/>C.<context:annotationconfig/>将隐式地向Spring容器注册AutowiredAnnotationBeanPostProcessor,CommonAnnotationBeanPostProcessor,Persiste nceAnnotationBeanPostProcessor以及requiredAnnotationBeanPostProcessor这4个BeanPostProcessor,因此回去扫描诸如@Component,@Controller,@Entity等注解D.对于@Component的启用,可以使用<context:component-scan/>,这个配置并不开启@Autowired自动注入/dqatsh/article/details/3478000/developerworks/cn/java/j-lo-spring25-ioc/10.一下关于事务的描述中,正确的是A.Spring的应用中,如果这些相互嵌套调用的方法工作在不同的线程中,不同线程下的事物方法工作也可以在同一事务中B.Spring在TransactionDefinition中定义了5个隔离级别ISOLATIISOLATION_READ_COMMITTEDON_DEFAULT,ISOLATION_DEFAULT,ISOLATION_READ_COMM ITTEDC.Spring的应用中当且仅当抛出RuntimeException及其子类时,才回滚,无法配置当checked抛出异常时回滚D.Spring声明式事务控制粒度最小可以达到代码块级别11.Autowired提供了一下哪几种方式A.byNameB.byTypeC.constructorD.autodect12.Spring提供的Bean的作用域包括A.SinglegtonB.prototypeC.requestD.session13.下列属于Spring的通知类型的为A.MethodBeforeAdviceB.ThrowAdviceC.MethodAfterAdviceD.AfterReturningAdviceMethodBeforeAdvice(前置通知)AfterReturningAdvice(后置通知)MethodInterceptor(环绕通知)异常通知(ThrowsAdvice) 引入通知14.通过Spring,可以使用声明式事物.其中关于事物的回滚说法正确的是 CA.Spring框架的事务基础架构代码默认的只在抛出异常时标识事务回滚B.Spring框架的事物基础架构代码默认的抛出任何异常都标识事物回滚C.通过配置XML文件,可以指定当抛出一个checked exception时事物回滚15.在Spring事物的传播性中,一个方法调用另外一个方法.若两个方法需要运行在不同的事务中,使用哪个事务的传播属性 BA.RequiredB.RequriesNewC.NestedD.Never第三部分:WEB MVC相关16.下列Spring MVC与Structs说法正确的是A.Spring MVC 要充当Controller角色的Handler,必须实现Controller接口B.对URL进行映射时,URL必须以.do为后缀名C.Spring MVC和Structs的请求分发器dispatcher都是集成Servlet,其中框架的核心控制类为DispatcherServletD.如果要使用Spring MVC 与前台Flex通信,数据格式使用JSON,可以使用Spring自带的MappingjacksonServlet17.某project使用如下的web.xml片段来配置Spring MVC:<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:config/applicationContext*.xml</param-value></context-param><listener><listener-class>org.springframwork.web.context.ContextLoaderListener</listener-class></listener><listener><listener-class>org.springframework.web.util.IntrospectorCleanupListener</liste ner-class></listener><servlet><sevlet-name>springmvc1</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class ></servlet><servlet><servlet-name>springmvc2</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class ></servlet>下面说法正确的是A. 对于springmvc1和springmvc2的默认配置为WEB-INF/springmvc1-servlet.xml和WEB-INF/springmvc2-servlet.xmlB. Springmvc1和springmvc2共用config/applicationContext*.xml定义的根应用上下文C.springmvc1和springnvc2两命名空间的内应用上下文无法共用D.如果不希望定义多个HandlerMapping并实现chained,可以开启detectAllHandlerMapping选项E.注册IntrospectorCleanupListener监听器是为了避免由于Introspector可能引起的内存泄露18.要将Structs和Spring集成,可以使用下列那几种方式A.使用ContextLoaderPlugin,配置DelegatingRequestProcessorB.使用ContextLoaderPlugin,配置DelegatingActionProxyC.使用ActionSuopportD.在Action中自己创建JavaBean的对象,并调用方法19.关于Spring MVC核心组件说法正确的是A.Spring Web MVC的核心组件有DispatcherServlet, HandlerMapping ,HandlerAdaptor, ViewResolver, HandlerExceptionResolver等B.HandlerAdaptor是Spring MVC集成其他MVC框架的关键组件,他可以实现把Handler的调用委托给其他MVC框架C.DispatcherServlet本身作为核心分发器,充当前端控制器的角色D.HandlerInterceptor可以做到在handler执行后但视图渲染前,以及视图渲染后进行拦截,而HandlerExceptionResolver则是在视图渲染后处理异常20.以下哪些说法是正确的A.Structs中,每个HTTP请求,Structs框架会创建一个单独的HelloAction实例B.对于每个请求访问HelloAction的HTTP请求,Structs框架会创建一个单独的HelloAction实例C.Spring MVC中,Controller bean的scope一般是singleton,而不是request ,因此对于Controller实例最好是无状态的D.Spring MVC中负责分发请求的是DispatcherServlet,而Structs中负责分发请求的是ActionServlet21.把静态文本放在Resource Bundle中,而不是直接在JSP文件中包含这些静态文件,有点不包括A.提高可维护性B.提高可重用性C.支持国际化D.提高运行速度22.Structs中,下面哪些任务不是RequestProcessor完成的A.把资源文件信息读入到内存中B.如果需要的话,创建ActionForm实例,组装数据,冰进行表单验证C.找到匹配的Action实例,调用其execute()方法D.把请求转发到Action的execute()方法返回的ActionForward代表的组件第四部分:持久框架相关23.下列关于iBatis的描述错误的是A.相比于Hibernate,iBatis更容易进行sql的细粒度的优化B.使用iBatis使用queryForList(...)查询结果集为List时,如果实际没有查到任何一行数据,那么该方法返回nullC.iBatis自身不带有数据库物理分页的实现D.Spring对iBatis的整合,主要是用到了Callback模式和Template模式,主要的类有SqlMapClientDaoSupport,工厂bean则是SqlMapClientFactoryBean24.iBatis的描述错误的是A.iBatis 3.0.x不提供对JPA的支持,Hibernate从2.x版本开始便提供对JPA的支持B.iBatis 3.0 Sql Mapper配置文件中允许使用OGNL表达式来写动态SQLC.iBatis 配置中resultMap中定义的列,如果多于实际查询的列数,则会运行报错D.iBatis 配置提供namespace是为了避免名字污染25.下列关于JPA和Hibernate的说法正确的是A.JPA中实体生命周期状态主要有:新建态(New Create),受管态(Managed),游离态(detached)和删除态(removal)B.JPA实体关系主要有:OneToOne, OneToMany, ManyToOne, ManyToMany.并且从方向上可以分为单向关联和双向关联C.JPA中entity manager的API方法getReference(...),detach(...),相应的Hibernate 中相似功能的方法为load(...),evict(...)D.JPA规范中要求的主键生成策略包括:AUTO,IDENTITY,TABLE,SEQUENCE,UUID第五部分;应用集成26.下列关于webservice描述错误的是A.为了保证数据的可靠性,在企业应用中多使用Web service over JMS,而非Web service over HTTP, 但使用Web serviceoverJMS时无法保证事务B.Spring提供了很方便的Web Service整合,提供对axis2和xfire良好的支持C.Http invoke 服务时Spring提供的基于http协议远程服务,通过java的序列化机制 ,可以通过防火墙.有别于标准的Web ServiceD.JAX-WS是新的Java Web Service API,其主要是为了代替旧式的JAX-RPC API27.下列关于Spring Integration说法正确的是A.Spring Integration是Spring提供的面向企业EAI的轻量级ESB框架,其实现主要遵循企业集成模式B.开源领域其他的ESB实现,主要有Mule,基于JBI的ServiceMixC.Spring Integration的核心组件包括Message, Message Channel,Message EndpointD.Spring Integration提供类型多样的Endpoint,诸如Transformer,Filter,Router均是不同类型的Endpoint第六部分:中间件以及系统环境28.关于WebSphere Application Server(以下简称WAS)说法正确的是A.WAS中关于管理/逻辑概念主要有:Cell,Node,Cluster,而执行体(executable)概念:Node Agent,(Application)Server,配置/运行时环境概念则是ProfileB.在standalone配置下,一个node只能有一个serverC.在network deploy配置下,多个node可以federate到一个中央的deploy manager上运行管理,此时这些node被称为受管节点(managed nodes),其中每个node上运行着node agentD.Node可以配置成跨多台计算机29.关于WebSphere MQ(以下简称MQ)说法正确的是A.MQ的核心概念主要有;Queue Manager,Queue(分为多种类型,如local,remote),ChannelB.MQ提供JMS API的实现,其次还提供专用的消息队列API(MQI)C.在WAS6.0中,可以配置起提供的SiBus来与MQ交互信息D.某管理员想知道MQ的侦听状态,它使用runmqsc打开管理控制台输入命令:display lsstatus(*)30.关于AIX上常用命令示例说法错误的是A.改变文件权限:chmod g+x testB.查看系统资源占用:topas,glanceC.查看网络端口占用:netstate -an|grep 9080D.查看进程;ps -ef|grep java第七部分问答题(共40分)1.简要概述AOP(Aspect Oriented Programming,面向切面编程)的机制.(5分)2.对持久层框架(IBatis,Hibernate二选一)进行简单的描述,分析其优缺点(5分)3.描述HTTP Session机制,详细说明其创建,使用,销毁的生命周期,可以辅以时序图(Sequebce Diagram),数据流图(Data Flow Diagram)等(10分)4.设计一个批处理系统,目标是从海量日志中分析应用系统运行状况.(20分)前提假设:1.每日生成的log数据在100G以上,且分散在多台物理设备上;2.日志文件名称和内容格式固定,所需要的数据都可以在日志中提取到.要求:1.每日数据必须在次日8点前处理完毕;2.分析成果包括交易性能.交易统计,安全记录,异常统计,并作持久化保存;3.在Java范畴内,工具,框架,架构不限,操作系统,硬件,网络限制在合理范围.二维数组求出每行的最小值并在这些最小值中找出最大值import java.util.*;/*** 输入的字符串,判断是否是数字* 是数字,返回1* 不是数字,返回0* @author Shelfy**/。

国土资源电子政务系统方案

国土资源电子政务系统方案

解决方案-交大博通电子政务平台博通电子政务平台,是为了快速构建电子政务应用系统而设计的,由构建平台和运行平台组成,集成了MIS数据应用和GIS数据应用的管理,真正实现网上并联智能化审批和图文一体化。

通过构建平台,可轻松地实现对数据结构、界面展现、业务逻辑、工作流程、组织机构、权限分配等方面的修改,并可对业务规则进行显性的调整,以适应新的业务需求。

1.技术架构电子政务平台为标准3层技术架构,即客户交互层、应用服务层、数据存储层。

系统整合了多种高级开发语言,发挥其各自最大优势,形成的一套完整、严谨、安全、灵活的业务服务设计和运行平台。

服务端采用Java语言开发的J2EE体系结构,通过SOAP、WebService等多种通讯协议对外提供API服务;客户端核心模块采用.Net研发,为用户提供优秀人机交互操作界面,并满足批量数据运算处理和各种复杂规则的前置校验,结合Html、Flex等中轻量Web客户端满足用户信息发布等需求。

图形服务采用先进的ArcGISServer,为用户提供高效、稳定地图形展现、分析、打印等业务操作。

服务端采用JAVA语言开发,支持跨平台、跨数据库的多种部署要求,能够全面满足多变的IT基础设施。

采用行业标准技术的WebAPP,支持单点或集群部署。

核心功能包括:1. 数据集成管理服务:通过数据集成管理服务,可以整合信息孤岛、合理利用现有企业资源。

使用JDBC访问各类关系型数据库,采用JOTM(Java Open Transaction Manager)实现分布式事务处理管理,结合JTA(Java Transaction API)保证多数据源的数据完整性、一致性。

2. 文档管理服务:解决用户对企业各类电子文档统一管理的需求,提升用户质量体系。

3. 空间地理服务:集成ArcGis服务,为用户提供空间数据管理、地图浏览、空间地理信息查询等服务。

4. 组织机构服务:完善的组织机构模型,满足用户的部门、岗位、人员及权限分级授权的需求。

佐敦淑女北欧之家产品说明书

佐敦淑女北欧之家产品说明书

淑女北欧之家JOTUN RHEO-TECH科技注入黄金比例质感因子,打造优雅润泽「3D」质感。

第二代小红罐质感「家」倍,让墙面丰盈细滑更润泽。

JOTUN RHEO-TECH 科技打造优雅润泽「3D」质感:漆膜丰盈细滑更润泽灵动饱满的颜色:精准色彩表现健康环保:不人为添加APEO,甲醛,重金属。

VOC等有害物质低释放。

纯净水配方。

净味配方:在施工时及施工后气味极低。

适用于内墙表面腻子,石膏板,混凝土,砖块等。

颜色根据色卡,可由佐敦调色系统(内饰系列)加工。

体积固体含量37.5± 2体积%理论3 L包装规格< 1 克/升 (理论值)备注小心处置使用前充分搅拌喷洒 : 推荐辊涂 : 推荐刷涂 : 推荐喷嘴孔径0.021–0.027"喷涂扇面夹角65–80°喷嘴压力140 - 190 kg/cm² (2100 psi)涂布率取决于施工时的漆膜厚度,施工纹理,表面孔隙率,不完整度,温度以及损耗。

理论1012-平方米/升平方米/升漆膜厚度会有不同,此处为平均厚度。

湿膜79109-微米干膜3040微米-微米微米水涂料在充分搅拌后便可使用. 如需稀释,最多可添加5%的水。

底材的温度应不低于10摄氏度,且要高于空气露点温度3摄氏度,需在底材附近测试温度和相对湿度。

要求通风环境良好。

封闭区域内要保证干燥充分。

干燥时间取决于空气流通条件,温度,漆膜厚度,施工道数。

并且会受相应的影响。

表格中给出的数据是基于:良好通风环境(暴露于户外或空气自由流通)普通漆膜厚度在惰性底材上面的一道涂层所给数据仅作为指导。

实际的干燥时间和复涂前时间也许更长或更短,这取决于环境温度、膜厚、通风、下层油漆系统、早期搬运要求和机械力等1. 建议给出的数据适用于相同类型涂料的覆涂.2. 多道涂层施工时,干燥时间受数量、顺序及之前涂装漆层的厚度的影响.相对湿度(RH) 50%硬干12 h 6 小时 1 小时干燥后复涂,最短间隔4 小时2 小时1 小时底材温度10 ℃23 °C40 °C 底材需要保持完整,干净,整洁,干燥,表面没有灰尘,油脂,水泥等。

在一个事务中包含多个数据源

在一个事务中包含多个数据源
init-method="init" destroy-method=!-when close is called, should we force transactions to terminate or not?
--> <property name="forceShutdown">
xmlns:xsi="/2001/XMLSchema-instance" xmlns:aop="http://www.springfra /schema/aop"
xmlns:context="/schema/context" xmlns:tx="/schema/tx" xsi:schemaLocation="/schema/beans http://www.springframew /schema/beans/spring-beans-2.5.xsd
/schema/tx /schema/tx/spring-tx-2.5.xsd">
<tx:annotation-driven />
<bean id="DS1" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init" destroy-method="close"> <property name="uniqueResourceName"> <value>DB1</value> </property>

分布式业务的异常解决思路

分布式业务的异常解决思路

分布式业务的异常解决思路传统意义上的事务被定义在数据层⾯,它是指⼀组原⼦操作,这组原⼦操作必须按照既定的顺序全部执⾏成功。

如果某⼀个或者多个原⼦操作失败,则回退所有之前的原⼦操作到原来的状态。

事务的特点主要有四个:原⼦性( Atomicity )、⼀致性( Consistency )、隔离性( Isolation )和持久性( Durability )。

⼀个标准的事务必须同时满⾜这四个特性,否则就⽆法保持业务数据的正确性⼀⼀并且在 SQL 规范中也明确定义了这些特性的实现标准,例如它定义了四类事务隔离级别: Read Uncommitted (读未提交〉、 Read Committed (读⼰提交)、Repeatable Read(可重复读)和 Serializable (可串⾏化〉。

传统业务环境下这些原⼦数据操作都在同⼀个数据库实例上完成,⽽随着企业中各系统的复杂度增加,就可能会出现事务跨两个或者多个系统数据库实例的情况,后⼀种事务处理机制就是常说的分布式事务。

1.分布式事务与两阶段提交协议(2PC)--作⽤于系统数据层两阶段提交协议( 2PC )。

简单来说这个协议中提到两个阶段是指准备阶段和提交阶段它的实现⼀般需要⼀个事务协调者来统⼀所有⼯作,协调者⾸先向参与事务动作的各个数据节点提交准备请求(也叫检查请求),并等待所有参与此事务的数据节点返回确认信息。

当各个数据节点收到这个准备请求后就会检查⾃⼰是否有条件执⾏⾃⼰负责的处理部分,并且执⾏但不提交各⾃负责的这部分数据操作。

这是⼀个同步过程,在收到所有节点确认信息之前协调者都不会发出下⼀步的执⾏指令,各个节点被锁定/预占的资源也不会被释放⼀⼀因为各数据节点的处理过程都未正式提交。

如果在这个过程中任何⼀个数据节点返回了“不可⽤”或者等待超时,那么协调者就会向各个参与事务动作的处理节点发出“回液”指令,各个处理节点就会回滚/释放资源,并将回滚结果回馈给协调者;如果协调者收到所有处理节点“准备好”/“同意”的信号,那么就会进⼊第⼆个阶段⼀⼀通知各个处理节点“提交” 。

jojo英语单词

jojo英语单词

jojo英语单词English:Jojo refers to the character Jotaro Kujo from the popular manga and anime series "Jojo's Bizarre Adventure" created by Hirohiko Araki. The series follows the adventures of the Joestar family and their battles against various supernatural enemies using their unique inherited abilities known as Stands. Jojo is known for its distinctive art style, dramatic poses, and intense battles filled with clever strategies and unique powers. Jotaro Kujo, the protagonist of the third arc, Stardust Crusaders, is known for his iconic catchphrase "Yare Yare Daze" and his Stand, Star Platinum, which is incredibly powerful and possesses superhuman strength, speed, and precision. The Jojo series has gained a massive following worldwide, with fans drawn to its over-the-top characters, complex storylines, and creative battles that often defy logic and conventional storytelling.Translated content:Jojo指的是由荒木飞吕彦创作的流行漫画和动画系列《JOJO的奇妙冒险》中的人物乔塔罗·库乔。

凝血酶的酶切位点

凝血酶的酶切位点

凝血酶的酶切位点概述凝血酶是一种重要的酶,它在血液凝固过程中起着至关重要的作用。

凝血酶可以将溶解在血浆中的纤维蛋白原转化为纤维蛋白,从而促进血液凝固。

了解凝血酶的酶切位点对于研究和理解凝血机制具有重要意义。

凝血酶的结构凝血酶是一种复杂的蛋白质,由多个组成部分组合而成。

它主要由两个亚单位组成:A亚单位和B亚单位。

A亚单位是一个非常大的多肽链,由259个氨基酸残基组成。

它包含了一个活性位点,能够与纤维蛋白原结合并催化其转化为纤维蛋白。

B亚单位是一个较小的多肽链,由73个氨基酸残基组成。

B亚单位通过与A亚单位形成非共价键连接在一起。

凝血酶的活性位点凝血酶的活性位点是指在凝血酶分子中能够与纤维蛋白原结合并催化其转化的特定区域。

活性位点的位置对于凝血酶的功能至关重要。

凝血酶的活性位点位于A亚单位中,具体来说是在A亚单位的C末端。

该区域包含了一段序列为Gly-His-Arg的氨基酸残基。

这个序列被称为“肽键切割位点”,因为它是凝血酶将纤维蛋白原切割成纤维蛋白的关键。

凝血酶的酶切作用凝血酶通过对纤维蛋白原进行切割,将其转化为纤维蛋白,从而促进血液凝固过程。

具体来说,凝血酶通过以下步骤完成其酶切作用:1.凝血因子Xa(FXa)和凝血因子Va(FVa)相互作用,形成复合物。

2.复合物能够将FXa转化为活性形式。

3.活性的FXa与FVa复合物进一步催化纤维蛋白原转化为纤维蛋白。

凝血酶的酶切作用是血液凝固过程中的关键步骤之一。

它能够将溶解在血浆中的纤维蛋白原转化为纤维蛋白,从而形成血栓。

凝血酶的调控为了保持正常的血液凝固平衡,凝血酶的活性需要得到严格调控。

这种调控主要通过抗凝系统来实现。

抗凝系统包括多种抗凝因子和抗凝蛋白,它们能够抑制凝血酶的活性。

其中最重要的是抗凝酶III(AT-III)和组织因子路径抑制物(TFPI)。

AT-III能够与FXa和FIIa(即凝血酶本身)形成复合物,从而抑制它们的活性。

TFPI则通过与FXa和FVIIa(即组织因子复合物)形成复合物来抑制它们的活性。

OFBiz-manual-zh

OFBiz-manual-zh

新朗华ERP系统简明用户手册北京朗华世纪科技发展有限公司2006年11月北京朗华世纪科技发展有限公司新朗华ERP系统简明用户手册版权声明:新朗华ERP系统是北京朗华世纪科技发展有限公司在中国推广Apache OFBiz(简称OFBiz)项目所用的中文名称。

本文档内容主要译自OFBiz网站的OFBiz Basic Production Setup Guide。

本文档采用LGPL版权协议,北京朗华世纪保留本翻译的版权。

目录1.编写本文档的目标2.安装OFBiz时需要收集的信息3.常用术语和信息OFBiz管理程序OFBiz的其它术语4.安装步骤环境搭建安装OFBiz安装数据库加载种子数据配置OFBiz■缓存设置■调试工具设置■安全设置■URL和端口设置■端口、缺省值■SSL证书设置■货币、本地语言设置■电子邮件服务器设置■安装一个根Web应用运行OFBiz性能监控和优化5.业务安装过程公司公用信息设置■公司联系方式场所(仓库/仓储)设置站点设置店铺设置■店铺设置■店铺角色设置■促销设置■产品目录设置■站点设置■营业税设置■店铺货运设置∙UPS在线费率估算∙UPS XPCI整合∙USPS在线费率估算■店铺支付设置∙支付处理详单∙PayPal支付设置∙CyberSource支付设置■电子邮件设置■网上调查设置■通用设置替代目录、种类和产品设置■目录设置■种类设置■产品设置∙添加新产品内容∙添加产品价格6.POS机设置步骤编写本文档的目标在成为企业信息自动化的优秀开发框架和平台的同时,OFBiz还提供了许多不需要大量定制即可使用的杰出应用。

然而,毕竟这是一个企业级软件,所以它包含了非常多的配置选项、设置和数据结构,需要你在一定程度上掌握。

本文档的目的是帮助你在实际的电子商务应用中安装OFBiz。

这里不会涉及讨论、决策或配置选项,而仅仅是OFBiz实际应用中所必需的那些基本设置的概述。

有关安装的更详细的信息参见Undersun咨询公司提供的OFBiz―配置、部署和维护‖文档。

jojo单词 -回复

jojo单词 -回复

jojo单词-回复什么是jojo单词?“jojo单词”是指在日本动画作品《JoJo的奇妙冒险》中频繁出现的一些特殊的英语单词。

这些单词在剧情中通常以大写字母显示,并伴随着响亮的声音效果。

虽然这些单词在剧情中扮演重要的角色,但它们在现实世界中的真实意义却是非常模糊的。

因此,对于一些乐迷和粉丝来说,解开这些单词的谜题成为了一项有趣的挑战。

本文将会分析《JoJo的奇妙冒险》中出现的一些常见jojo单词,并且试图解释它们在剧情中的含义。

第一个值得关注的jojo单词是“ORAORA”。

在《JoJo的奇妙冒险》中,主人公乔纳森·乔斯达的标志性攻击技能即以这个单词命名。

每当乔纳森发出这个声音时,他会用拳头对敌人进行连续的攻击。

虽然“ORA”这个单词在现实生活中无任何实际含义,但在剧情中它代表着乔纳森的正义与力量。

通过挥舞拳头并发出这个声音,乔纳森向敌人展示了他的决心和战斗精神。

另一个常见的jojo单词是“MUDA”。

这个单词通常由乔斯达家族的敌对角色迪奥·布兰度发出。

与乔纳森不同,迪奥用“MUDA”来表达他的邪恶和征服欲。

每当迪奥喊出这个单词时,他会用各种方式打击乔纳森,试图击败他并夺得力量。

虽然“MUDA”在日语中的意思是“无用”,但它在《JoJo的奇妙冒险》中代表着迪奥对乔纳森的不屈不挠的反抗。

除了“ORAORA”和“MUDA”之外,还有其他一些常见的jojo单词也在剧情中频繁出现。

例如,“ZA WARUDO”(世界),这是另一位迪奥的对手乔斯达·乔斯塔的口头禅。

当乔斯塔使用他的特殊能力暂停时间时,他喊出“ZA WARUDO”的声音,并且常常伴有屏幕上的字幕。

这个jojo 单词暗示了乔斯塔对时间的控制力,并展示了他战胜强敌的能力。

值得一提的是,《JoJo的奇妙冒险》的作者荒木飞吕彦在创作这些jojo单词时并没有严谨地考虑它们的意义。

相反,他更关注于营造一种视觉和音效上的冲击力。

达克罗和久美特之欧阳结创编

达克罗和久美特之欧阳结创编

久美特(Geomet)是由一种由日本达克乐沙坶罗克倡导的表面处理技术,在达克罗表面防锈的技术基础上,经过长年的共同研究和开发,研制出完全无铬表面处理新技术久美特(Geomet) 久美特处理被膜外观呈金属亚光色,其构造形式是由重叠的多层金属薄片通过特殊无机黏结结合在一起久美特(Geomet)的特征: 1.不用担心污染环境: 使用水溶性溶液做到完全无铬化封闭式加工系统 2.盐水喷雾试验以及周期性重复试验条件下具有非常出色的耐腐蚀性3.出色的耐热耐腐蚀性4.具备防止和铝制材料发生非同金属间接触性腐蚀的效果5.具有很好的附着性6.不会出现氢脆现象7.能处理各种金属8.久美特处理后可以进行表面喷涂9.在世界超过500条生产县上实际使用,可以在达克罗处理系统基础上进行改造(有浸泡离心旋转法和喷涂方式)达克罗和久美特对比: 1. 久美特耐腐蚀性没达克罗的好2. 久美特不含铬,达克罗含铬,即久美特是环保的,达克乐非环保的交美特—取代达克罗的表面处理新技术随着物质文明的不断进步,人们对生存环境的质量要求越来越高。

保护和改善生态环境,实现经济社会的可持续发展,已经成为大多数国家拟定新世纪发展战略的重要价值取向。

1999年6月,欧洲通过一项有关报废汽车及其配件的监管条例。

此项名为“End of Life Vehicle Directive (EOLVD)”的法规,将于2006年正式生效。

条例的4.2及6.3条限制使用有害的物质如铅、汞、镉及六价铬,规定每辆汽车的铬(Cr6+)含量不超过2克。

这项条例的出台,对汽车零部件的表面处理提出了更高的环保要求,使得目前在汽车制造行业大量采用的达克罗涂层技术面临严峻的挑战。

关于达克罗(Dacromet)Dacromet起源于20世纪60年代末的美国,当时被誉为世界表面处理行业具有划时代意义的革命性产物。

Dacromet涂层以其高抗蚀、无氢脆、涂层薄的特点著称于世,广泛应用于汽车、建筑、铁路、电力、桥梁、隧道、电器、军工等许多行业。

第一精英——JUMPMAN ELITE 1

第一精英——JUMPMAN ELITE 1

第一精英——JUMPMAN ELITE 1
崇皓;聂征(图)
【期刊名称】《中国服装(北京)》
【年(卷),期】2009(000)006
【摘要】JORDAN BRAND发展至今,已经无法让人单单从概念上来描述它,那些会被人永远传颂的历史、地位以及影响力现在看来已经属于老生常谈。

客观地说,从AIRJORDANXX3以后.JORDANBRAND已进入了个全新的肘代。

在这个新
纪元里,也许AIRJORDAN已经不再是主角,而是由JORDANTEAM鞋款接过历史的接力棒。

“精英”一词往往是同“万里挑一”划等号,在目前这个新老交替的时代,2009年最重要的一双JORDAN TEAM—JUMPMAN ELITE 1带给了我们
新世代的第一缕曙光。

【总页数】4页(P26-29)
【作者】崇皓;聂征(图)
【作者单位】无
【正文语种】中文
【中图分类】TN946.5
【相关文献】
1.NIKE BASKETBALL ELITE SERIES 只为精英而生 [J], PolePole
2.赵婉秋同学获得第30届ELITE世界精英模特大赛中国区总冠军 [J],
3.精英传奇 IC-H3 Elite [J],
4.精英来袭!赛睿西伯利亚Elite耳机评测 [J], 苏三
5.西伯利亚Elite重磅登场赛睿再创神话打造精英范 [J],
因版权原因,仅展示原文概要,查看原文内容请购买。

分布式事务技术荟萃PPT文档共26页

分布式事务技术荟萃PPT文档共26页
2.前台实时收到返回失败的信息,而链上每个节点都有其监听 器在实时监听自己的消息队列,一旦有消息,将根据需要(实 时或者非实时)进行处理即回滚前期的事务,但对于前台是透 明的。
3.Message设计,需要查询到本次链的轨迹,即在链尾或者链 叶子节点能查询到该链的各个节点。可以通过唯一的事务ID并 且每经过一节点设置其节点位置。Message可以存到数据库或 者文件或者其他方式。 单向链: 开卡队列Message:【事务ID:2012081401,位置:100 …】
自定义程序实现
MQ
MQ方式即补偿事务方式。 原理:在需要回滚的事务链中,一旦某个节点出现异常,该节 点之前节点事务根据需要灵活进行回滚,在出现异常的节点发 消息给前面相关的各个节点Queue通知其回滚本次事务。
MQ 场景一:单向
MQ 场景二:分支
MQ
处理流程: 1.一旦某节点事务失败,那么将返回失败消息给前台界面或者 HHT,同时发消息给链前面的节点
分布式事务技术荟萃
11、获得的成功越大,就越令人高兴 。野心 是使人 勤奋的 原因, 节制使 人枯萎 。 12、不问收获,只问耕耘。如同种树 ,先有 根茎, 再有枝 叶,尔 后花实 ,好好 劳动, 不要想 太多, 那样只 会使人 胆孝懒 惰,因 为不实 践,甚 至不接 触社会 ,难道 你是野 人。(名 言网) 13、不怕,不悔(虽然只有四个字,但 常看常 新。 14、我在心里默默地为每一个人祝福 。我爱 自己, 我用清 洁与节 制来珍 惜我的 身体, 我用智 慧和知 识充实 我的头 脑。 15、这世上的一切都借希望而完成。 农夫不 会播下 一粒玉 米,如 果他不 曾希望 它长成 种籽; 单身汉 不会娶 妻,如 果他不 曾希望 有小孩 ;商人 或手艺 人不会 工作, 如果他 不曾希 望因此 而有收 益。-- 马钉路 德。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
<tx:annotation-driven transaction-manager="txManager" />
</beans>
我配置了两个oracle的数据源。两个数据源都交给JOTM来管理。同时有两个service:Dao1ServiceImpl\Dao2ServiceImpl分别操作两个数据源的表。为这两个service添加事务
this.jdbcTemplate = jdbcTemplate;
}
public void add() {
String str = "insert into t_staff(PK_ID,NAME,STAFF_TYPE,IS_DISABLE) values(2,'wyb','客服','0')";
两个service实现如下:
package com.test;
import org.springframework.jdbc.core.JdbcTemplate;
public class Dao1ServiceImpl implements IDao1Service {
</bean>
<bean id="postTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="postDS" />
<bean class="org.enhydra.jdbc.standard.StandardXADataSource"
destroy-method="shutdown">
<property name="transactionManager" ref="jotm" />
<bean id="postDS" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource"
destroy-method="shutdown">
<property name="dataSource">
</bean>
</property>
<property name="user" value="crm20120224" />
<property name="password" value="crm" />
<bean id="txManager" class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="userTransaction" ref="jotm" />
</bean>
<bean id="postDao" class="com.test.Dao2ServiceImpl">
<property name="jdbcTemplate" ref="postTemplate" />
</bean>
return dao2Service;
}
public void setDao2Service(IDao2Service dao2Service) {
this.dao2Service = dao2Service;
<property name="driverName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@192.168.7.223:1521:ORCL" />
</bean>
<bean id="topicDS"
class="org.enhydra.jdbc.pool.StandardXAPoolDataSource"
destroy-method="shutdown">
<property name="dataSource">
/schema/beans /schema/beans/spring-beans-2.5.xsd
/schema/tx /schema/tx/spring-tx-2.5.xsd
这是我的文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="/schema/beans"
xmlns:xsi="/2001/XMLSchema-instance"
public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
</bean>
<bean id="topicTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="topicDS" />
首先,下载jar包,我的项目用的jar包如下:
基本上就是spring、JOTM以及oracle驱动jar包。
其次:引入carol.properties log4j.properties两个配置文件,这些文件可以再下载的JOTM的conf目录里找到。同时,新建一个spring的配置文件,用来初始化数据源之类的。
jdbcTemplate.update(str);
int i=5/0;
dao2Service.add();
}
}
package com.test;
JOTM分布式事务管理(多数据源)配置
项目接近尾声,老大让我们几个研究一些新技术,以便为将来项目的扩展做打算,我被分配到JOTM这一块。说实话,自己对分布式事务也不了解,至于JTA,只是了解概念。
至于什么是JOTM、JOTM有什么用,大EMO。这个demo是用spring和jotm实现,数据库采用的oracle.本文只做简单的配置介绍,以及实现基本的同步回滚、提交效果。
xmlns:aop="/schema/aop"
xmlns:tx="/schema/tx"
xsi:schemaLocation="
</bean>
</property>
<property name="user" value="crmg1" />
<property name="password" value="crmg" />
</b/aop/spring-aop-2.5.xsd">
<bean id="jotm" class="org.springframework.transaction.jta.JotmFactoryBean" />
import org.springframework.jdbc.core.JdbcTemplate;
public class Dao2ServiceImpl implements IDao2Service {
private JdbcTemplate jdbcTemplate;
<bean class="org.enhydra.jdbc.standard.StandardXADataSource"
destroy-method="shutdown">
<property name="transactionManager" ref="jotm" />
<property name="driverName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@192.168.7.223:1521:ORCL" />
private JdbcTemplate jdbcTemplate;
private IDao2Service dao2Service;
public IDao2Service getDao2Service() {
相关文档
最新文档