首页 新闻 会员 周边 捐助

wcf使用msmq的时候只要调用成功就要删除吗? 能不能手动写代码控制消息队列消息是否删除?

0
[已解决问题] 解决于 2019-07-21 00:57

wcf 中使用msmq,在获取到消息之后就会把消息从消息队列里删掉,

或者只能使用wcf的事务功能,使得到消息后对消息的处理和消息队列的获取在一个事务内(消息处理成功则自动删除,不成功则自动回滚)处理。

 

 

有没有办法 自己写代码控制消息队列是否删除???

 

我想接到消息后 自己判断需要不需要删除队列里的消息

koi的主页 koi | 初学一级 | 园豆:4
提问于:2015-11-12 18:32
< >
分享
最佳答案
0

分布式事务.

奖励园豆:5
吴瑞祥 | 高人七级 |园豆:29449 | 2015-11-12 18:44

什么分布式事务?  我不想在使用wcf和msmq结合的时候使用事务来控制,我想手写代码,在wcf接到msmq服务的队列消息后,我不想直接删除,想在执行需要执行的代码确定没错误之后再手动写代码删除,但是这一过程又不想使用事务来维持两边的统一性。    

koi | 园豆:4 (初学一级) | 2015-11-12 23:01

现在使用wcf的时候只能配置为事务才行,否则一接到msmq的消息后自动会把队列里的消息删除,这两种情况都不是我想要的

koi | 园豆:4 (初学一级) | 2015-11-12 23:02

我想接到消息后 自己判断需要不需要删除队列里的消息

koi | 园豆:4 (初学一级) | 2015-11-12 23:03

@koi: msmq有一个预读方法.读取后不会删除原来的消息.

吴瑞祥 | 园豆:29449 (高人七级) | 2015-11-13 09:33

@吴瑞祥: 但是我了解的wcf结合的 就只能那两种 1 接到就删除 2 事务

 不使用wcf的话  msmq有一个预读方法我是知道的。

koi | 园豆:4 (初学一级) | 2015-11-13 09:35

@koi: 那个方法不能在wcf里用?不可能吧...

吴瑞祥 | 园豆:29449 (高人七级) | 2015-11-13 09:38

@吴瑞祥: wcf 和msmq结合是直接配置的    wcf的终结点地址写上队列地址   1 不做多余配置的时候,默认是接收到了消息(访问到服务的方法) 消息就会马上删除(方法里面的处理是否成功不会管) 2 使用事务,队列是否删除与服务方法是否成功关联。     接收到方法后不马上删除的好像没有

koi | 园豆:4 (初学一级) | 2015-11-13 09:42

@koi: 我思路偏了...如果是这样.你直接把接收到的消息再发会队列里不就好了...

吴瑞祥 | 园豆:29449 (高人七级) | 2015-11-13 09:53

@吴瑞祥: 。。。 万一还没发回就报错了 , 那消息不就不见了。。

koi | 园豆:4 (初学一级) | 2015-11-13 09:55

@koi: 用finally啊

吴瑞祥 | 园豆:29449 (高人七级) | 2015-11-13 09:58

@吴瑞祥: 可我想做的事是  自己判断服务方法是否执行成功,成功则删除队列,不成功则不删除。。。

koi | 园豆:4 (初学一级) | 2015-11-13 10:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册