c# - 当有多个连接可用时,无法处理连接问题(数据库或外部系统)

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

我对处理多个连接有疑问。这些连接可以是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,则可能必须手动处理它,方法可能是将事务放在连接本身上,然后在操作成功后提交所有事务,这意味着使每个数据源的连接打开时间更长。

关于c# - 当有多个连接可用时,无法处理连接问题(数据库或外部系统),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5637684/

相关文章:

c# - 每次调用随机数方法返回相同的数字

c# - AudioClip 在 Trigger 上只播放一次

c# - 适当的形式应用程序设计

redis - 创建的 Redis 连接过多,未使用空闲连接

java - 数据源与简单连接数据库

c# - Find 和 FindAsync 之间的区别

php - 在不更改 php.ini 的情况下输出 PHP 错误的 STDERR

vba - excel中没有依赖的单元格的 "cell.dependents.count"处理错误

php - 如何在 PHP 中获取有用的错误消息?

java - org.apache.http.client.HttpClient - 每个请求一个?