spring.net 分布式事务 实现方式 多数据库并发访问下 服务层 事务管理 .net下事务管理
来源:互联网 发布:wps vba编程实战教程 编辑:程序博客网 时间:2024/06/07 11:31
首先要强调太强大了,微软虽然提供了scope来支持分布式事务,但是,只是对sql server支持的很好,system.data.oracleclient不支持分布式事务,今天有时间测试了下spring.net的多数据库同步事务,成功了,感谢spring.net,做的很好,现在将我的配置文件及server层代码copy如下:
1、配置文件
1、配置文件
<?xml version="1.0" encoding="utf-8" ?><objects xmlns="http://www.springframework.net" xmlns:aop = "http://www.springframework.net/aop" xmlns:db="http://www.springframework.net/database" xmlns:tx="http://www.springframework.net/tx"><!--spring.net的事务管理器 但是要用到spring.net自身dao实现--><db:provider id="dbProvider" provider="System.Data.SqlClient" connectionString="server=192.168.1.82;database=HLJ_InfoManager;user id=sa;password=sa;Pooling=true;Min Pool Size=10;Max Pool Size=50;Connection Lifetime=30;Connection Timeout=30;"/><!--spring.net访问oracle的配置方法 --><db:provider id="dbProviderOracle" provider="System.Data.OracleClient" connectionString="Data Source=ORA99;User ID=pda;Password=pda;"/> <!--如果spring.net对其它数据库的支持不太好的话,可以考虑用odbc这种通用的数据库连接方式 --><!--adoTemplate--><object id="adoTemplate" type="Spring.Data.Core.AdoTemplate, Spring.Data"><property name="DbProvider" ref="dbProvider"/><property name="DataReaderWrapperType" value="Spring.Data.Support.NullMappingDataReader, Spring.Data"/></object><object id="adoTemplateOracle" type="Spring.Data.Core.AdoTemplate, Spring.Data"><property name="DbProvider" ref="dbProviderOracle"/><property name="DataReaderWrapperType" value="Spring.Data.Support.NullMappingDataReader, Spring.Data"/></object><!--事务管理器--><object id="transactionManager" type="Spring.Data.Core.AdoPlatformTransactionManager, Spring.Data"> <property name="DbProvider" ref="dbProvider"/></object><object id="transactionManagerOracle" type="Spring.Data.Core.AdoPlatformTransactionManager, Spring.Data"><property name="DbProvider" ref="dbProviderOracle"/></object><!--fun list--><object id="IUserFun" type="com.gs.im.bl.system.impl.UserFunImpl, com.gs.im.bl"><property name="AdoTemplate" ref="adoTemplate"/><property name="AdoTemplateOracle" ref="adoTemplateOracle"/></object><!--自定义驱动方式(根据方法的名字判断事务的类型)--><tx:advice id="txAdvice" transaction-manager="transactionManager"><!-- the transactional semantics...--><tx:attributes><!-- all methods starting with 'get' are read-only --><tx:method name="Get*" read-only="true"/><!-- other methods use the default transaction settings (see below) --><tx:method name="Do*"/></tx:attributes></tx:advice><tx:advice id="txAdvice1" transaction-manager="transactionManagerOracle"><!-- the transactional semantics...--><tx:attributes><!-- all methods starting with 'get' are read-only --><tx:method name="Get*" read-only="true"/><!-- other methods use the default transaction settings (see below) --><tx:method name="Do*"/></tx:attributes></tx:advice><object id="serviceOperation" type="Spring.Aop.Support.SdkRegularExpressionMethodPointcut, Spring.Aop"><property name="pattern" value="com.gs.im.bl.*"/></object><aop:config><aop:advisor pointcut-ref="serviceOperation" advice-ref="txAdvice"/><aop:advisor pointcut-ref="serviceOperation" advice-ref="txAdvice1"/></aop:config></objects>2、server层代码的写法,本样是在server层配置的事务管理public void DoAdd() { Base_UsersDao base_UsersDao = this.GetDao<Base_UsersDao>(); Base_Users user = new Base_Users { LogName = "张三", UserName = "张三疯" }; // 向sqlserver 插入数据() this.AdoTemplate.ExecuteNonQuery(CommandType.Text, "insert into base_users (logname, username) values ('张三', '张三疯')"); //向oracle插入数据 this.AdoTemplateOracle.ExecuteNonQuery(CommandType.Text, "insert into base_users (logname, username) values ('张三', '张三疯')"); throw new ApplicationException("同时更新oracle跟sql server数据库spring.net的事务起不起作用呢?");}
备注,实际中server层会去调用不同的dao对象去操作数据库的。
- spring.net 分布式事务 实现方式 多数据库并发访问下 服务层 事务管理 .net下事务管理
- Spring中实现多数据源事务管理
- Spring中实现多数据源事务管理
- Spring 使用注解方式进行事务管理 /==/ Spring分布式事务实现
- spring多数据源的配置(分布式事务管理)
- atomikos实现多数据源支持分布式事务管理(spring、tomcat、JTA)
- spring 事务管理实现方式
- Spring事务管理方式实现
- 使用JOTM实现分布式事务管理(多数据源)
- (ZT)使用JOTM实现分布式事务管理(多数据源)
- 使用JOTM实现分布式事务管理(多数据源)
- 使用JOTM实现分布式事务管理(多数据源)
- 使用JOTM实现分布式事务管理(多数据源)
- 使用JOTM实现分布式事务管理(多数据源)
- 使用JOTM实现分布式事务管理(多数据源)
- atomikos实现多数据源支持分布式事务管理
- JOTM分布式事务管理(多数据源)配置
- JOTM分布式事务管理(多数据源)配置
- 回收站与表空间利用率
- 分页存储过程
- c#的DateTime.Now函数详解
- iphone多线程的使用
- 翻译稿
- spring.net 分布式事务 实现方式 多数据库并发访问下 服务层 事务管理 .net下事务管理
- 半小时让你成为EXCEL高手
- 网页特效
- vmware server 2.0 安装出现 Error 1718. File was rejected by digital signature policy
- net自动化测试之道基于反射的UI自动化测试—设置Form属性
- java的堆栈机制与String对象
- 获取 逐帧动画 当前帧索引
- Oracle SGA (内存控制)
- 从数据库中获取浏览器书签信息(Android Browser开发)