代码之家  ›  专栏  ›  技术社区  ›  MattH

在事务中启动新进程

  •  0
  • MattH  · 技术社区  · 16 年前

    我必须在第三方应用程序中创建一个用户,该应用程序将其信息存储在SQL Server中,并且我还将有关此用户的信息存储在我们的应用程序数据库中,以及SQL Server中。

    我希望将这两个更新都包装在TransactionScope中,这样它们就可以成功或一起回滚。不幸的是,我创建用户的唯一方法是通过一个命令行实用程序,我当前正在运行一个进程。启动调用。我希望新的进程可能仍会加入到我的活动事务中,但情况似乎并非如此。

    事实上,这两个数据库都在同一台服务器上,但在不同的实例下。我的申请是用C为.NET 3.5编写的

    我是否做错了什么,或者是否有明确的方法让这个过程登记到事务中,或者我只需要手动回滚更改?

    2 回复  |  直到 16 年前
        1
  •  1
  •   pero    16 年前

    在分布式事务中登记命令行应用程序-不要认为这是可以做到的。

        2
  •  1
  •   Pieter Breed    16 年前

    回答您的问题:它们不能自动进入相同的事务范围。尝试先创建用户,这样,如果失败,您甚至不会在数据库中创建记录。

    如果用于创建用户的命令行进程返回错误代码,(public static int main()中的int检查并将其作为事务结果的一部分。0意味着成功,其他一切通常意味着失败。

    如果不创建错误代码。但是,stderr上的一些文本,重写stderr流,读取它的输出,并以这种方式进行检查。

    推荐文章