使用WebService如何实现分布式事务

在 System.EnterpriseServices 名称空间中实现了COM+服务的相关类,其中就提供事务支持。
你可以在你的方法上加上TransactionAttribute特性标记,那个方法就支持事务了。
然后在那个方法中就可以用ContextUtil.SetComplete()和ContextUtil.SetAbort()方法分别表示事务的Commit和Rollback。
另外你还可以用AutoCompleteAttribute来标记一个支持事务的方法,那样当方法正常结束时,就会自动递交事务,否则如果出现异常将自动取消事务。

 

要做到Web Service 事务, 你可能需要使Web Service 实现两阶段提交, 这样的话, 可以在本地失败的时候, 回滚 Web Service 操作, 当然这样做你必须在事务和效率上作出取舍, 如果只是简单的类原子操作, 事务并非最佳选择, 象你所提到的这个操作, 如果只是单一的写本地和修改,而不涉及批量操作的, 可以在自己的本地事务中, 把WebService修改操作放到最后一步去做。。。

 

WebServices 的事务使用的是 COM+ 的事务。

[WebMethod(TransactionOption=TransactionOption.Required)]
[AutoComplete]
public String TestCom(){
SqlConnection conn = new SqlConnection("data source=(local);initial catalog=Northwind;user id=sa;password=sa;");
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "insert test select getDate()";

ContextUtil.EnableCommit();
                           
            conn.Open();
cmd.ExecuteNonQuery();

//ContextUtil.SetAbort();

conn.Close();
conn.Dispose();
return "更新成功!!!!";
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/439211.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Leetcode - 172】阶乘后的零(思维)

给定一个整数 n ,返回 n! 结果中尾随零的数量。 提示 n! n * (n - 1) * (n - 2) * ... * 3 * 2 * 1 示例 1: 输入:n 3 输出:0 解释:3! 6 ,不含尾随 0 示例 2: 输入:n 5 输出&…

linq、lambda、entity framework之间的关系

lambda: 一种匿名委托的精简版写法,明显的标志是>符号 entity framework(简称EF): 微软访问数据库的最快捷最成熟的框架(ORM),在EF出现以前有SqlHelper、NHibernate等访问数据库…

2022-08-20-网易笔试题

写在前面 题目收集来源自网络,前四题是开发岗的,后四题是算法岗的,因为代码无处提交,不一定正确,就不贴出来了,这里只写一下我的思路吧~欢迎大家一起讨论~~ 1、 思路:因为最大1e9&#xff0c…

TUN/TAP设备浅析(一) -- 原理浅析

TUN/TAP设备浅析 TUN设备 TUN 设备是一种虚拟网络设备,通过此设备,程序可以方便地模拟网络行为。TUN 模拟的是一个三层设备,也就是说,通过它可以处理来自网络层的数据,更通俗一点的说,通过它,我们可以处理 IP 数据包…

2022-08-21 星环科技-C++开发笔试

1、 思路:拓扑排序,不解释了 2、 思路: 本来以为他是一个图论问题,找最大环。 但其实对于这种情况,他是要输出0的,而不是9,所以他不是一个图论问题,他带有顺序性,这种可…

TUN/TAP设备浅析(二) -- TUN/TAP的编程

这篇文章想详细阐述一下有关于 TUN/TAP 设备的编程。 其实关于这两种设备的编程,基本上属于八股文,大家一般都这么干。 启动设备之前 有的linux 并没有将tun 模块编译到内核之中,所以,我们要做的第一件事情就是检查我们的系统是…

【算法练习题】位运算(贪心)

题目: 解题报告: 首先预备几个结论: 1、对于两个数a,b ,生成a&b和a|b,则一定对应一个常数c,使得生成的两个数分别是ac和a-c。 2、对于两个数a,b,生成a&b和a|b的前后,二进…

TUN/TAP设备浅析(三) -- TUN/TAP设备的应用

上一篇文章主要讲述了TUN/TAP设备的一些原理,你可能会好奇,TUN/TAP设备究竟有什么用处呢?所以这篇文章,我想用一些实际的例子来回答这个问题。 例子源自陈硕老师的博客,博文中关于TUN/TAP设备的使用非常典型&#xff…

【20220903-美团笔试】

参考:20220903美团笔试题解_笔经面经_牛客网 前两个签到题就不整理了 第三题: 给定一棵有n个节点的树,节点用1,2,…n编号。1号节点为树的根节点,每个节点上有一个用大写字母表示的标记。求每个 节点的子树中出现的字母标记种类…

云计算底层技术-虚拟网络设备(Bridge,VLAN)

openstack底层技术-各种虚拟网络设备一(Bridge,VLAN) openstack底层技术-各种虚拟网络设备二(tun/tap,veth) Linux BridgeBridge与netfilterVLAN VLAN设备原理及配置VLAN在openstack中的应用IBM网站上有一篇高质量文章Linux 上的基础网络设备详解。本文会参考文章部分内容&…

【Codeforce-911D】逆序对

题干: Problem - D - Codeforces 解题报告: 不难发现,假设n的倒序排列(n,n-1,...,3,2,1)的逆序对是x,则对n的任意一个逆序对数为y的排列做翻转,新生成的排列的逆序对数位x-y。 因此这题作为奇偶性,其实只…

【LeetCode-面试题 17.09 - medium】第 k 个数

力扣 解题报告: 法一:优先队列做bfs。 法二:看成三个有序链表,做三路归并即可。 注意这里归并,如果多个指针最小值,那么这些指针都需要

10分钟精通SharePoint-验证方式

简介 说到身份验证大家应该不陌生,访问任何平台或系统都需要身份验证,SharePoint也不例外,用户身份验证可根据身份验证提供程序验证用户的身份,身份验证提供程序包含用户平局切可以确认用户正确提交这些平均的目录或数据库。用于…

【18周-钻石】能量供应

思路: 总纲是贪心,按终点排序,然后优先往右边排能量塔。具体实现的时候需要单点更新,区间查询,所以用树状数组set维护一下,就OK了。 代码:(不知道为啥有一个样例RE了) …

【LeetCode-2421(hard)】好路径的数目

解题报告: 提供两种解法:1、并查集。2、启发式合并。3、树分治(点分治,但是校招应该不会问到这个难度吧,,不复习了就) 解题思路1: 两种思考方式可以想到这个解法。 1、【由特解到…

分布式事务解决方案框架(LCN)

事务概念 事务特性(ACID) 原子性(A) 所谓的原子性就是说,在整个事务中的所有操作,要么全部完成,要么全部不做,没有中间状态。对于事务在执行中发生错误,所有的操作都会被回滚,整个…

C#分布式事务解决方案-TransactionScope

引用一下别人的导读: 在实际开发工作中,执行一个事件,然后调用另一接口插入数据,如果处理逻辑出现异常,那么之前插入的数据将成为垃圾数据, 我们所希望的是能够在整个这个方法定义为一个事务,Tr…

【19周-星耀】FASTER!FASTER!FASTER!

题目: 解题报告: 看数据范围,应该是个n^3的dp。 但是刚开始觉得二维就可以写。 但是G了,因为无法根据定义的状态判断从[i]到[i1]的速度是多少。我这直接默认是d[i]了,但是显然不一定是。 然后感觉欸,我是…

[转载]使用消息队列实现分布式事务-公认较为理想的分布式事务解决方案

前阵子从支付宝转账1万块钱到余额宝,这是日常生活的一件普通小事,但作为互联网研发人员的职业病,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账户并没有增加1万,数据就会出现不一致状况了。 …

【LeetCode-6195. hard】对字母串可执行的最大删除数

题干:力扣 解题报告: 刚开始觉得直接贪心选有短则短,但是发现不行,不能贪心有短的可以操作的则选短的。 三个方式想到倒着递推。一是直接记住这个特例,正推还倒推不能互相转换的特例。 二是因为dp[i]代表前i个的最大次数&#x…