繁体   English   中英

多个连接可用时,如何处理连接问题(数据库或外部系统)

[英]How to handle issues with Connections cannot be made(either DB or external systems) when multiple connections are available

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

可以说我有1个数据库连接用于提取数据,而我有2个EMS连接具有不同的数据且独立。 数据将发送到EMS,并更新状态,无论数据是否成功发送。

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM