- 浏览: 3438781 次
- 性别:
- 来自: 珠海
文章分类
- 全部博客 (1633)
- Java (250)
- Android&HTML5 (111)
- Struts (10)
- Spring (236)
- Hibernate&MyBatis (115)
- SSH (49)
- jQuery插件收集 (55)
- Javascript (145)
- PHP (77)
- REST&WebService (18)
- BIRT (27)
- .NET (7)
- Database (105)
- 设计模式 (16)
- 自动化和测试 (19)
- Maven&Ant (43)
- 工作流 (36)
- 开源应用 (156)
- 其他 (16)
- 前台&美工 (119)
- 工作积累 (0)
- OS&Docker (83)
- Python&爬虫 (28)
- 工具软件 (157)
- 问题收集 (61)
- OFbiz (6)
- noSQL (12)
最新评论
-
HEZR曾嶸:
你好博主,这个不是很理解,能解释一下嘛//左边+1,上边+1, ...
java 两字符串相似度计算算法 -
天使建站:
写得不错,可以看这里,和这里的这篇文章一起看,有 ...
jquery 遍历对象、数组、集合 -
xue88ming:
很有用,谢谢
@PathVariable映射出现错误: Name for argument type -
jnjeC:
厉害,困扰了我很久
MyBatis排序时使用order by 动态参数时需要注意,用$而不是# -
TopLongMan:
非常好,很实用啊。。
PostgreSQL递归查询实现树状结构查询
http://blog.csdn.net/taxuexunmei414923794/article/details/7673246
选择哪种transaction manager?
在单数据源情况下,JDBC,Hibernate,ibatis等自带的 transaction manager已能用于处理事务。
但当设计多种数据源的事务处理时,上面的transaction manager就没法用了。这个时候可选事务管理组件有:Bitronixhttp://docs.codehaus.org/display/BTM,SimpleJTAhttp://simplejta.sourceforge.net/,Tyrex (dead?)http://jotm.objectweb.org/, JOTM (used in Jonas)http://jencks.codehaus.org/Transaction+Manager,GeronimoTM/Jencks (used in Geronimo)http://jencks.codehaus.org/Transaction+Manager,JBossTS (used in JBoss)http://www.jboss.org/jbosstm/ and Atomikoshttp://www.atomikos.com/. 其中Atomikos 被大多数人所推荐。
参考:http://stackoverflow.com/questions/2978207/atomikos-vs-jotm-vs-bitronix-vs
一个使用Bitronix的applicationContext.xml
一个使用Atomikos的applicationContext.xml
选择哪种transaction manager?
在单数据源情况下,JDBC,Hibernate,ibatis等自带的 transaction manager已能用于处理事务。
但当设计多种数据源的事务处理时,上面的transaction manager就没法用了。这个时候可选事务管理组件有:Bitronixhttp://docs.codehaus.org/display/BTM,SimpleJTAhttp://simplejta.sourceforge.net/,Tyrex (dead?)http://jotm.objectweb.org/, JOTM (used in Jonas)http://jencks.codehaus.org/Transaction+Manager,GeronimoTM/Jencks (used in Geronimo)http://jencks.codehaus.org/Transaction+Manager,JBossTS (used in JBoss)http://www.jboss.org/jbosstm/ and Atomikoshttp://www.atomikos.com/. 其中Atomikos 被大多数人所推荐。
参考:http://stackoverflow.com/questions/2978207/atomikos-vs-jotm-vs-bitronix-vs
一个使用Bitronix的applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd" default-autowire="byName" default-lazy-init="true"> <context:annotation-config/> <context:component-scan base-package="org.jbpm.dao"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Repository"/> </context:component-scan> <context:component-scan base-package="org.jbpm.service"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/> </context:component-scan> <!-- =================================================================== --> <!-- AOP: Configuration and Aspects --> <!-- =================================================================== --> <aop:config> <aop:advisor id="managerTx" advice-ref="txAdvice" pointcut="execution(* *..service.*Manager.*(..))" order="0"/> </aop:config> <tx:advice id="txAdvice"> <tx:attributes> <!-- Read-only commented out to make things easier for end-users --> <!-- http://issues.appfuse.org/browse/APF-556 --> <!--tx:method name="get*" read-only="true"/--> <!--<tx:method name="save*" propagation="REQUIRES_NEW"/>--> <!--<tx:method name="update*" propagation="REQUIRES_NEW"/>--> <!--<tx:method name="remove*" propagation="REQUIRES_NEW"/>--> <!--<tx:method name="get*" read-only="true"/>--> <!--<tx:method name="list*" read-only="true"/>--> <tx:method name="*"/> </tx:attributes> </tx:advice> <!-- Enable @Transactional support --> <!--<tx:annotation-driven/>--> <!-- Enable @AspectJ support --> <aop:aspectj-autoproxy/> <!-- Enable @Configured support --> <!--<aop:spring-configured/>--> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:jdbc.properties</value> </list> </property> </bean> <bean id="basicdataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="${jdbc.driverClassName}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean> <bean id="xadataSource" class="bitronix.tm.resource.jdbc.PoolingDataSource" init-method="init" destroy-method="close"> <property name="className" value="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" /> <property name="uniqueName" value="jdbc/testDS1" /> <property name="minPoolSize" value="1" /> <property name="maxPoolSize" value="5" /> <property name="allowLocalTransactions" value="true" /> <property name="driverProperties"> <props> <prop key="URL">${jdbc.url}</prop> <prop key="user">${jdbc.username}</prop> <prop key="password">${jdbc.password}</prop> </props> </property> </bean> <bean id="txManager" class="org.springframework.transaction.jta.JtaTransactionManager"> <property name="transactionManager" ref="bitronixTransactionManager" /> <property name="userTransaction" ref="bitronixTransactionManager" /> </bean> <bean id="bitronixTransactionManager" factory-method="getTransactionManager" class="bitronix.tm.TransactionManagerServices" depends-on="xadataSource,txManager" destroy-method="shutdown" /> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource" ref="basicdataSource"/> <property name="persistenceUnitName" value="leaveJPA"/> <property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml" /> <property name="jpaVendorAdapter"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> <property name="databasePlatform" value="org.hibernate.dialect.MySQL5InnoDBDialect" /> <property name="showSql" value="true" /> <property name="generateDdl" value="false" /> </bean> </property> </bean> <bean id="entityManagerFactoryJbpmPersistanceJpa" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource" ref="xadataSource" /> <property name="persistenceUnitName" value="org.jbpm.persistence.jpa" /> <property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml" /> <property name="jpaVendorAdapter"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> <property name="databasePlatform" value="org.hibernate.dialect.MySQL5InnoDBDialect" /> <property name="showSql" value="true" /> <property name="generateDdl" value="false" /> </bean> </property> </bean> <bean id="entityManagerFactoryJbpmTask" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource" ref="basicdataSource" /> <property name="persistenceUnitName" value="org.jbpm.task" /> <property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml" /> <property name="jpaVendorAdapter"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> <property name="databasePlatform" value="org.hibernate.dialect.MySQL5InnoDBDialect" /> <property name="showSql" value="true" /> <property name="generateDdl" value="false" /> </bean> </property> </bean> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactory"/> </bean> <bean id="jpaTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactoryJbpmPersistanceJpa"/> </bean> <bean id="taskTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactoryJbpmTask"/> </bean> <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"/> <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/> <!--<bean id="md5PasswordEncoder" class="org.springframework.security.authentication.encoding.Md5PasswordEncoder"/>--> </beans>
一个使用Atomikos的applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd"> <!-- active component annotations like @Service,@Repository,@Component --> <context:component-scan base-package="cmei.mysql" > <!-- <context:include-filter type="regex" expression=".dao.*"/>--> </context:component-scan> <aop:aspectj-autoproxy/> <!-- active annotations like @autowired, @required,... in java class,have to add xmlns:context to beans header--> <!-- <context:annotation-config/> removed after using context:component-scan--> <!--step1:dataSource from connection pool, must use atomikos data source --> <bean id="dataSource11" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init" destroy-method="close"> <property name="xaDataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" /> <property name="uniqueResourceName" value="mysql/test_transaction"></property> <property name="poolSize" value="10"></property> <property name="xaProperties"> <props> <prop key="url">jdbc:mysql://localhost:3306/test_transaction</prop> <prop key="user">root</prop> <prop key="password"></prop> </props> </property> </bean> <bean id="dataSource22" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init" destroy-method="close"> <property name="xaDataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" /> <property name="uniqueResourceName" value="mysql/test_transaction2"></property> <property name="poolSize" value="10"></property> <property name="xaProperties"> <props> <prop key="url">jdbc:mysql://localhost:3306/test_transaction2</prop> <prop key="user">root</prop> <prop key="password"></prop> </props> </property> </bean> <!-- step2:sql session:mybatis --> <bean id="sqlSessionFactory1" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource11" /> <property name="mapperLocations" value="/mappers/*.xml" /> <property name="typeAliasesPackage" value="cmei.mysql.dao" /> </bean> <bean id="sqlSessionFactory2" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource22" /> <property name="mapperLocations" value="/mappers/*.xml" /> <property name="typeAliasesPackage" value="cmei.mysql.dao" /> </bean> <!-- step 3:config different daos and service--> <bean id="accountDAO1" class="cmei.mysql.dao.AccountDAO"> <property name="sqlSessionFactory" ref="sqlSessionFactory1"></property> </bean> <bean id="accountDAO2" class="cmei.mysql.dao.AccountDAO"> <property name="sqlSessionFactory" ref="sqlSessionFactory2"></property> </bean> <bean id="accountService" class="cmei.mysql.dao.AccountService"> <property name="accountDAO1" ref="accountDAO1"></property> <property name="accountDAO2" ref="accountDAO2"></property> </bean> <!-- step4:config transactionManager atomikos --> <bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager" init-method="init" destroy-method="close"> <property name="forceShutdown" value="true"/> </bean> <bean id="atomikoUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp"> <property name="transactionTimeout" value="300"></property> </bean> <!-- step5:config spring JTA transactionManager --> <bean id="springTransactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"> <property name="transactionManager" ref="atomikosTransactionManager"></property> <property name="userTransaction" ref="atomikoUserTransaction"></property> </bean> <!-- step6:config aop --> <tx:annotation-driven transaction-manager="springTransactionManager" proxy-target-class="true" /> <tx:advice id="txAdvice" transaction-manager="springTransactionManager"> <tx:attributes> <tx:method name="update*" rollback-for="Exception"/> <tx:method name="*" read-only="true" rollback-for="Exception"/> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut expression="execution(* cmei.mysql.dao.AccountService.transfer(..))" id="serviceOperation"/> <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceOperation"/> </aop:config> </beans>
发表评论
-
全局唯一ID设计方案
2016-06-28 09:42 1237在分布式系统中,经常需要使用全局唯一ID查找对应的数据。产生这 ... -
MYSQL中取当前周/月/季/年的第一天与最后一天
2016-06-27 17:34 3014http://my.oschina.net/zx0211/bl ... -
按周,按月,按日,按小时分组统计数据
2016-06-27 17:07 3286http://my.oschina.net/mjRao/blo ... -
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句区别
2016-06-27 16:27 1029http://my.oschina.net/MiniBu/bl ... -
分布式存储系统GlusterFS安装配置
2016-06-27 14:51 1040http://navyaijm.blog.51cto.com/ ... -
分布式查询 presto 入门安装使用
2016-06-24 15:44 2512http://my.oschina.net/chengxiao ... -
CitusDB logo基于 PostgreSQL 的集群数据库 CitusDB
2016-06-20 11:43 1092http://www.oschina.net/p/citusd ... -
跟我学习dubbo
2016-06-17 15:20 1080跟我学习dubbo-目录 http://bluereader. ... -
JavaMelody监控web服务器
2016-06-17 14:20 1188JavaMelody监控web服务器 http://my.os ... -
freemarker使用记录
2016-06-08 16:24 1320freeMarker语法 http://uule.iteye. ... -
freemarker判断是否为空
2016-06-08 16:03 2http://www.oschina.net/code/sni ... -
ehcache 分布式支持
2016-06-05 22:26 1110原文 http://my.oschina.net/glenxu ... -
MYSQL级联查询,包括向上向下的级联
2016-05-31 11:47 2252http://my.oschina.net/u/178116/ ... -
Intellij IDEA插件开发入门
2016-05-26 11:42 2897原文: http://blog.csdn.net/dc_726 ... -
阿里巴巴Druid数据源的配置与使用
2016-05-24 17:42 1555http://my.oschina.net/wjme/blog ... -
spring配置事物的方式:注解和aop配置
2016-05-14 00:26 4116参考: Spring AOP中pointcut express ... -
分布式任务调度组件 Uncode-Schedule
2016-05-13 14:47 2296http://www.oschina.net/p/uncode ... -
写个mybatis的拦截插件,实现将所有执行的sql写入文件里
2016-05-12 15:59 5118原文 http://3131854.blog.51cto.co ... -
Mybatis分库分表扩展插件
2016-05-12 15:47 1635http://fangjialong.iteye.com/bl ... -
spring+mybatis+atomikos 实现JTA事务
2016-05-11 22:00 5539sping配置多个数据源 不同用户操作不同数据库 http:/ ...
相关推荐
jbpm4jbpm5是关于jbpm流程管理框架的专题,涵盖了jbpm4和jbpm5两个主要版本。jbpm是一个开源的工作流管理系统,用于帮助开发者实现业务流程自动化。以下是基于给定文件的信息,深入解析jbpm4和jbpm5的知识点: 1. *...
jbpm5是一款非常著名的工作流管理...通过对这些源代码的分析和学习,开发者不仅可以掌握工作流管理的基本原理,还能深入了解如何利用jbpm5构建实际的业务流程管理系统,同时提升在Java、Maven、GWT和BPMN2领域的技能。
jbpm4.1和jbPM5是两个不同版本的Java Business Process Management(业务流程管理)框架,主要用于构建和管理业务流程。jbPM是Talend公司的一个开源项目,它提供了全面的工作流和业务流程管理解决方案,深受Java...
**jbpm5环境配置** jbpm5是一款开源的工作流管理系统,它提供...总之,jbpm5是一个功能强大的工作流管理系统,通过合理的环境配置和深入理解其用户手册,开发者能够有效地利用jbpm5来设计、实施和管理复杂的业务流程。
JBPM5提供了基于Web的管理控制台,用于监控和管理流程实例。通过该控制台,管理员可以启动、停止流程实例,查看流程执行状态等。 #### 十、监视 流程监控是确保流程高效稳定运行的关键环节。JBPM5提供了流程监听器...
JBPM采购申请系统源代码+全套流程+JBPM的详细介绍2.zip JBPM采购申请系统源代码+全套流程+JBPM的详细介绍2.zip JBPM采购申请系统源代码+全套流程+JBPM的详细介绍2.zip JBPM采购申请系统源代码+全套流程+JBPM的详细...
- **4.3.4 使用jotm配置tomcat数据源以支持JTA**: 通过Jotm配置Tomcat的数据源,以支持分布式事务。 - **4.3.5 Jbpm相关配置文件更新**: 更新JBPM相关的配置文件,如persistence.xml、jbpm.cfg.xml等。 - **4.3.6 ...
6. 集成与扩展:探索jBPM5与企业服务总线(Enterprise Service Bus,简称ESB)、数据持久层和第三方系统的集成方案。 7. 测试与优化:提供jBPM5应用的测试策略,以及如何根据业务需求优化流程性能。 8. 安全性:...
JBPM5是一个开源的工作流管理系统,它提供了全面的业务流程管理和工作流解决方案。这个项目是一个基于Web的JBPM5.2实例,特别设计用于在Apache Tomcat服务器上运行。理解这个应用的关键在于熟悉JBPM5的核心功能以及...
- **配置jbPM5**: 设置数据源、事务管理器等核心配置,准备流程定义的部署。 - **配置SSH框架**: 配置Spring的bean定义、Struts2的action配置以及Hibernate的实体映射。 - **编写业务逻辑**: 实现Struts2的动作类...
JBPM5是一款开源的工作流管理系统,它提供了一整套流程定义、执行和管理的工具。JBPM支持BPMN2.0标准,允许开发者用图形化方式设计流程,并提供了动态流程实例的创建、监控和控制。JBPM5的主要组件包括流程定义...
jBPM5 是一个开源的工作流和业务流程管理(BPM)框架,专注于灵活、可扩展且与Java平台紧密结合的解决方案。这个用户手册旨在为用户提供全面的指南,涵盖从安装、建模、部署到执行和监控整个业务流程生命周期的各个...
jBPM5是一款开源的工作流和业务流程管理(BPM)框架,基于Java语言,由JBoss提供支持。它提供了一套全面的工具和服务,用于设计、执行和监控业务流程。本文将详细介绍jBPM5的安装步骤,包括必要的前置条件、安装过程...
jBPM5是一个灵活且功能强大的业务流程管理平台,它允许用户定义、执行和管理业务流程。它不仅包括核心的流程执行引擎,还提供了丰富的工具集,如Eclipse插件和Web设计器,用于流程建模和监控。 1.2 **概览** jBPM5...
通过上述总结可以看出,JBPM5不仅提供了强大的业务流程管理能力,还具备丰富的工具集和支持,适用于多种应用场景。无论是初学者还是资深开发者都能从中找到适合自己的内容,从而更好地利用JBPM5来解决实际问题。
JBPM5(JBoss Business Process Management)是Red Hat公司推出的一款开源工作流管理系统,它允许开发者设计、部署和执行业务流程。在JBPM5中,插件的安装是扩展系统功能的重要手段,能够帮助用户实现特定的需求,如...
JBPM5是一个开源的工作流和业务规则管理系统,它提供了一整套工具和服务,用于设计、执行和管理业务流程。这个例子旨在帮助开发者理解如何将JBPM5集成到基于Spring和Hibernate的Web应用中。 在项目描述中提到,它...
总的来说,这篇文章将为读者提供一个全面的视角,理解jBPM的历史发展,以及在面对新的流程管理需求时,如何选择和利用jBPM5和Activiti5。通过源码分析,可以帮助开发者更深入地掌握这两个工具的内在机制,提高他们在...
`jbpm.hibernate.cfg.xml`是Hibernate的配置文件,它定义了数据源、数据库连接信息(URL、用户名、密码)、事务管理策略、缓存设置以及实体类映射等。正确配置这个文件对确保数据库操作的效率和数据一致性至关重要。...