当有多个连接可用时,无法处理Connections(DB或外部系统)的问题

时间:2011-04-12 15:25:36

标签: c# error-handling connection integration-testing ems

我对处理多个连接有疑问。这些连接可以是DB连接,SOA连接,EMS连接等......

假设我有1个数据库连接,我提取数据,我有2个EMS连接,它们都有不同的数据和独立。数据将发送到EMS并更新数据是否成功发送的状态。

1)如果数据库连接断开或者我们无法访问数据库时出现任何其他问题 2)任何1个EMS连接断开,应用程序应继续处理其他EMS连接。 3)如果我们能够向EMS发送数据但是无法更新数据库问题的数据库状态bcos会发生什么,我们假设对内存中的所有消息以及我们需要发送到EMS的内容是什么。 4)无法与1个EMS建立连接,但是其他的能够建立,因此应用程序应该处理该EMS消息。

这些是我必须处理的一些-ve测试用例。如果我有任何其他问题需要解决,请随时告诉我

1 个答案:

答案 0 :(得分:1)

与不同来源的多个连接,听起来像System.Transactions的一个很好的解决方案(如果EMS支持这个)。

尝试类似这样的事情,这样所有3个操作都会成功或失败作为一个工作单元。

        try
        {
            using (TransactionScope tran = new TransactionScope())
            {
                Method1Save(); //DB
                Method2Save(); //EMS1
                Method3Save(); //EMS2
                tran.Complete();
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show("Problem " + ex.ToString());
        }

如果EMS不支持TransactionScope,那么您必须手动处理它,可能是将事务放在连接本身上,然后在操作成功后提交所有事务,这意味着保持连接打开更长时间数据来源。