這兩天在試用IBatis.NET,結果看到分布式事務這一節,就動手寫了個測試。今天來做個測試記錄。
1、執行命令行: net start msdtc 。
檢查服務Distributed Transaction Coordinator是否開啟,同時在此服務上右鍵屬性->依存關系 檢查依存的服務是否開啟。
2、開始->管理->組件服務->我的電腦->右鍵屬性 各選項卡的設置
3、設置NetBIOS
4、在防火牆中允許135端口
5、在任務管理器中查看mstsc的PID,在cmd命令行中鍵入netstat.exe -aon 根據PID找到端口號,並把此端口加入防火牆允許中。
6、如下代碼執行成功:
using (TransactionScope ts = new TransactionScope())
{
ConfigureHandler ch1 = new ConfigureHandler(Config);
DomSqlMapBuilder mapperbuilder1 = new DomSqlMapBuilder();
ISqlMapper mapper3 = mapperbuilder1.ConfigureAndWatch(ch1);
mapper3.DataSource = new IBatisNet.Common.DataSource();
mapper3.DataSource.ConnectionString = "server=192.168.1.58;database=XXX;uid=XXX;pwd=XXX";
mapper3.DataSource.DbProvider = mapper.DataSource.DbProvider;
mapper3.DataSource.Name = "exam3";
mapper3.OpenConnection();
mapper3.Delete("delbyid3", "6");
mapper3.CloseConnection();
ConfigureHandler ch = new ConfigureHandler(Config);
DomSqlMapBuilder mapperbuilder = new DomSqlMapBuilder();
ISqlMapper mapper2 = mapperbuilder.ConfigureAndWatch(ch);
mapper2.DataSource = new IBatisNet.Common.DataSource();
mapper2.DataSource.ConnectionString = "server=192.168.1.28;database=XXXX;uid=XXX;pwd=XXX;";
mapper2.DataSource.DbProvider = mapper.DataSource.DbProvider;
mapper2.DataSource.Name = "exam";
mapper2.OpenConnection();
mapper2.Delete("delbyid", "4");
mapper2.CloseConnection();
ts.Complete();
}
注:以上環境配置可能有些不是必要的,但是時間有限,就沒有一一去掉后測試,僅作后來者參考。