0

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

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

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

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

4

1 回答 1

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,那么您将不得不手动处理它,可能通过将事务放在连接本身上,然后在操作成功后提交所有事务,这意味着为每个数据源保持连接打开的时间更长。

于 2011-04-12T15:35:48.443 回答