none
问个问题:关于Biztalk异常处理问题-希望大家指点 RRS feed

  • 问题

  •  

    我在biztalk中将数据利用webservice推送到2个不同的系统当中,如果一个系统成功另一个系统没有成功。

    我该如何使这两个系统的数据同步呢。除了删除成功系统的数据。谢谢大家。

    2008年9月17日 11:15

答案

  •  Biztalknet 写:

     

    大概是这样的

    首先进行数据库操作(数据库1) -->进入biztalk-->1.推送数据(数据库2)

                                                                             2.推送数据(数据库3)

    问题

    如果推送到数据库2异常,那么数据库1数据库3怎么处理,谢谢也是用补偿么。

     
    看你的流程,如果数据库2都没完成,流程就会抛出异常,数据库3应该不会被执行。
    如果数据库2执行完后,到数据库3时抛出异常,则数据库2那部分需要补偿。
     
    另外,关于补偿推荐一篇文章:biztalk 2006 事务补偿模型[翻译]
    2008年9月19日 6:12

全部回复

  • 快来人啊
    2008年9月18日 2:37
  •  

    这个可以利用BizTalk流程里的"补偿"来实现,至于具体的逻辑自己去设计吧...

    2008年9月18日 8:07
  •  

    谢谢,关键是我的数据在推送之前还有一步数据库操作,而且这部操作是不在Biztalk里做的,如果异常怎么办。
    2008年9月19日 1:59
  •  

    大概是这样的

    首先进行数据库操作(数据库1) -->进入biztalk-->1.推送数据(数据库2)

                                                                             2.推送数据(数据库3)

    问题

    如果推送到数据库2异常,那么数据库1数据库3怎么处理,谢谢也是用补偿么。

    2008年9月19日 2:23
  •  Biztalknet 写:

     

    大概是这样的

    首先进行数据库操作(数据库1) -->进入biztalk-->1.推送数据(数据库2)

                                                                             2.推送数据(数据库3)

    问题

    如果推送到数据库2异常,那么数据库1数据库3怎么处理,谢谢也是用补偿么。

     
    看你的流程,如果数据库2都没完成,流程就会抛出异常,数据库3应该不会被执行。
    如果数据库2执行完后,到数据库3时抛出异常,则数据库2那部分需要补偿。
     
    另外,关于补偿推荐一篇文章:biztalk 2006 事务补偿模型[翻译]
    2008年9月19日 6:12
  • 好的我先看一下先。

    2008年9月21日 2:41
  •  Secle 写:

     

    这个可以利用BizTalk流程里的"补偿"来实现,至于具体的逻辑自己去设计吧...

     

    事务作用域,加补偿,加异常处理应该能实现

    2008年9月22日 10:23