- 浏览: 214626 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
a66756675:
...
tomcat:tomcat的OutOfMemoryError解决 -
ooo456mmm:
说的对,如果用Mina框架来处理,要简单很多了
NIO socket服务器注意的几点. -
long_ltoy:
这样的话,看上去是代替了session,但这不和session ...
在JSP中使用JAVABEAN代替Session -
linzx0212:
关注下,不错……
tomcat:tomcat的OutOfMemoryError解决 -
liudeh_009:
总结得很好
NIO socket服务器注意的几点.
package juan.orm.datasource.impl; import java.util.Properties; import javax.sql.DataSource; import juan.exception.JRuntimeException; import juan.orm.datasource.IDataSource; import org.enhydra.jdbc.pool.StandardXAPoolDataSource; import org.enhydra.jdbc.standard.StandardXADataSource; import org.objectweb.jotm.Current; public class XapoolDataSourceImpl implements IDataSource { private String name=null; public DataSource getDataSource() { Properties prop = new Properties(); try { prop.load(ClassLoader.getSystemResourceAsStream("xapool.properties")); } catch (Exception e) { System.err.println("problem to load properties."); e.printStackTrace(); } String login = prop.getProperty("login"); String password = prop.getProperty("password"); String url = prop.getProperty("url"); String driver = prop.getProperty("driver"); String maxActive = prop.getProperty("maxActive"); String maxIdle = prop.getProperty("maxIdle"); StandardXADataSource xads = new StandardXADataSource(); StandardXAPoolDataSource spds = new StandardXAPoolDataSource(); try { xads.setUrl(url); xads.setDriverName(driver); xads.setUser(login); xads.setPassword(password); xads.setTransactionManager(Current.getCurrent()); xads.setDebug(true); // second, we create the pool of connection with the previous object spds.setMaxSize(Integer.parseInt(maxActive)); spds.setMinSize(Integer.parseInt(maxIdle)); spds.setUser(login); spds.setPassword(password); spds.setDataSourceName(getName()); spds.setDataSource(xads); spds.setTransactionManager(Current.getCurrent()); spds.setDebug(true); } catch (Exception e) { e.printStackTrace(); throw new JRuntimeException(e); } return spds; } public String getName() { return name; } public void setName(String name) { this.name=name; } }
package juan.transaction; import javax.transaction.HeuristicMixedException; import javax.transaction.HeuristicRollbackException; import javax.transaction.NotSupportedException; import javax.transaction.RollbackException; import javax.transaction.SystemException; import javax.transaction.UserTransaction; import juan.exception.JRuntimeException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.objectweb.jotm.Jotm; import org.objectweb.transaction.jta.TMService; /** * * @author liuth * @version 1.0 * Created on 2003-2-20 */ public class JOTMTransaction implements ITransaction { private static final Log logger = LogFactory.getLog(JOTMTransaction.class); private UserTransaction tx; private TMService jotm = null; public void initial(){ try { if(jotm==null) jotm = new Jotm(true, false); if(tx==null) tx = jotm.getUserTransaction(); } catch (Exception ne) { logger.error(ne); throw new JRuntimeException(ne); } } public void initial(String jndi){ try { if(jotm==null) jotm = new Jotm(true, false); if(tx==null) tx = jotm.getUserTransaction(); } catch (Exception ne) { logger.error(ne); throw new JRuntimeException(ne); } } public void begin() { try { tx.begin(); } catch (SystemException se) { logger.error(se); throw new JRuntimeException(se); } catch (NotSupportedException nse) { logger.error(nse); throw new JRuntimeException(nse); } } public void commit() { try { tx.commit(); } catch (SystemException se) { logger.error(se); throw new JRuntimeException(se); } catch (HeuristicRollbackException hre) { logger.error(hre); throw new JRuntimeException(hre); } catch (HeuristicMixedException hme) { logger.error(hme); throw new JRuntimeException(hme); } catch (RollbackException re) { logger.error(re); throw new JRuntimeException(re); }finally{ close(); } } public void rollback() { try { tx.rollback(); } catch (SystemException se) { logger.error(se); throw new JRuntimeException(se); }finally{ close(); } } private void close(){ if(jotm!=null){ jotm.stop(); } } }
发表评论
-
Java字典:如何从程序员升级到架构师.
2012-03-24 23:32 0最近好多同学问学习java ... -
一个Java程序员应该掌握的10项技能
2011-12-08 12:56 9061、语法:必须比较熟 ... -
自定义log4j中的DailyRollingFileAppender
2011-03-11 22:47 4057需求: 日志内容是自定义的。例如,登录信息记录到一个日志文 ... -
google 测试
2010-05-11 16:32 779在Google,测试有一个721的原则:70%的测试工作在底层 ... -
项目测试风险总结
2009-12-01 11:38 992随着项目规模的扩大,项目的复杂性也逐渐增加,在项目中做好风险控 ... -
性能测试总结之性能监控篇
2009-12-01 11:35 1586在性能测试的整个流程当中,监控起着至关重要的作用。因为在性 ... -
如何编写高质量的Java代码
2009-10-14 09:17 1174如何编写高质量的Java代码: 1、 养成良好的习惯及 ... -
一直在用的类注释
2009-10-10 09:17 697/** * @Filename: ${file_na ... -
rapid-framework 连接 oracle时的一个bug
2009-04-28 17:40 2179在连接oracle数据库时报错: Exception ... -
NIO socket服务器注意的几点.
2008-12-06 17:36 4356当你看到这篇文 ... -
jsp分页
2004-06-23 04:26 889******************************* ... -
解决jsp中乱码问题
2004-06-23 04:28 731数据库存储最好用8859_1的格式,所以存入数据库的时候进行一 ... -
使用类文件的数据库连接方法
2004-06-23 04:34 629******************************* ... -
jsp中文显示问题
2004-06-23 04:40 54510:30 2003-11-29 InberGong整理&l ... -
不用数据源直接连sqlserver数据库(jsp,中文)
2004-06-23 04:43 852//////////////整理InberGong10:22 ... -
WINDOWS 2000 环境下JAVA环境配置
2004-06-23 04:44 945//////////////整理InberGong10:22 ... -
Java 学习方法浅谈(http://www.javaeye.com站长Robbin著)
2004-07-01 02:51 677Java本身是一种设计的非 ... -
解决java中文问题的一些资源
2004-07-01 02:54 753解决java中文问题的一些资源 我收集了一些这方面的文章, 希 ... -
JAVA程序桥联数据库
2004-07-02 12:11 803/****************************** ... -
(java: jdbc:odbc 应用)客户偿还贷款
2004-07-03 02:46 816(中文)要求:每当客户偿还某贷款金额时,他所取得的贷款材料与佘 ...
相关推荐
本示例"spring3.0+struts2.0+mybatis3.2+jta+xapool配置文件"就是一个典型的Java企业级应用的集成框架,用于实现数据持久层、业务逻辑层以及控制层的整合。以下将详细介绍这些组件及其配置要点。 **Spring 3.0** 是...
不过需要注意,现代的Java Web开发更多倾向于使用Spring Boot和Spring MVC,它们提供了更简洁的配置和自动化特性,降低了框架集成的复杂性。尽管如此,理解SSH框架的原理对于深入学习Java Web开发仍然是有价值的。
本篇文章将深入探讨如何在Spring框架中结合Mybatis和Atomikos进行分布式事务管理的配置与集成。Atomikos是一款强大的开源事务处理系统,它支持JTA(Java Transaction API),可以为我们的应用程序提供分布式事务解决...
Spring框架则为应用提供了高级抽象,简化了事务配置和管理。XAPool连接池则确保了高效的数据访问,降低了数据库资源的消耗。 在实际应用中,开发者首先需要将jotm-2.0.10.gz解压缩,然后将解压得到的JOTM jar 文件...
Spring框架技术是Java开发中的核心框架之一,它提供了丰富的功能,包括依赖注入、面向切面编程(AOP)、数据访问、事务管理等。在Spring中,事务管理是其重要特性,尤其对于大型分布式系统,JTA(Java Transaction ...
5. **Atomikos集成**:集成Atomikos到Spring项目中,需要配置`UserTransaction`和`XAPool`,以及相应的`TransactionManager`。然后,可以通过Spring的`jee:jta-transaction-manager`来声明一个JTA事务管理器,这样就...
在IT行业中,Spring框架是Java开发中的一个关键组件,它为构建企业级应用程序提供了广泛的功能。其中,Spring的分布式事务管理是其核心特性之一,它允许开发者在分布式系统环境中处理复杂的事务逻辑。本篇将深入探讨...
1. 配置Atomikos:在Spring配置文件中引入Atomikos的相关依赖,配置两个UserTransaction和XAPool,分别对应两个数据源。 2. 定义数据源:为每个数据库创建一个DataSource bean,并配置相应的数据库连接信息。 3. ...
Spring框架提供了强大的事务管理功能,使得开发者可以方便地在不依赖特定应用服务器(如JBoss)的情况下,实现在轻量级容器(如Tomcat)上的全局(分布式、容器)事务管理。本项目就是针对这一需求,展示了如何在...
4. **MyBatis**:MyBatis 是一个轻量级的持久层框架,它允许开发者将SQL语句直接写在XML配置文件或者注解中,提供灵活的映射机制,简化了数据访问层的开发。在分布式事务中,MyBatis 可以作为数据访问组件,配合...
JOTM可以在Spring框架中无缝集成,通过Spring的PlatformTransactionManager接口来配置和使用。 **Spring 配置JTA和JOTM** 在Spring中使用JTA和JOTM,首先需要在项目中引入JOTM的依赖。接着,你需要配置Spring的`...
AtomikosDataSource是基于Atomikos实现的XAPool,可以协调跨多个数据源的ACID(原子性、一致性、隔离性和持久性)事务。在Spring中集成Atomikos,可以实现全局的分布式事务管理,确保在分布式环境下的数据一致性。 ...
标题提到的“数据库连接池以及hibernate对各种连接池的整合”是指在Java应用中,特别是使用Hibernate作为持久层框架时,如何集成和配置不同的数据库连接池技术。以下是一些主要的开源数据库连接池及其特点: 1. **...
- `xapool.jar`: 一个连接池实现。 - `howl.jar`: 日志记录工具。 - `commons-cli-1.0.jar`: Apache Commons CLI工具包,用于解析命令行参数。 - `connector-1_5.jar`: 连接器实现库。 #### 二、Tomcat中的JNDI配置...
2. 配置事务管理器:在应用服务器或Spring框架等环境中,设置JOTM作为默认的事务管理器。这通常需要在配置文件(如`server.xml`或`applicationContext.xml`)中指定JOTM的相关属性。 3. 创建事务:通过JTA接口,如`...
此外,还有多种连接池工具如Apache Commons DBCP、ObjectWeb的XAPool,以及事务管理器如ObjectWeb的JOTM等。本文将重点介绍如何使用Spring框架中的JDBC支持和iBATIS来构建DAO(Data Access Object)层。 #### 二、...