【问题标题】:.net Mirrored databases and connection pools.net 镜像数据库和连接池
【发布时间】:2014-01-16 08:17:51
【问题描述】:

我有兴趣在我的连接字符串中使用 .net Principal/Mirror 数据库。

我想问,如果发生故障转移,池连接会发生什么情况? 他们被终止了吗?

【问题讨论】:

    标签: .net database connection-pooling


    【解决方案1】:

    为了让您详细了解发生的情况,请阅读此处

    简而言之,在连接字符串中添加故障转移伙伴后,驱动程序和 SQL Server 就会发生奇迹。这意味着驱动程序确保您的应用程序指向正确的数据库,并且 SQL Server 确保在成为主数据库之前,将队列挂起的任何事务写入镜像(在故障转移时成为主数据库)。

    这并不能保证数据已完全保存,您仍需要对代码执行某些操作并将所有内容包含在事务中,以便在流程未完成时回滚。

    【讨论】:

    • 链接一没有提到池化。链接二很有启发性,但在飞行中的交易不在池中。第三个链接提示我添加赏金。场景 #5 意味着连接池和镜像不能混合使用,这没有任何意义。
    • 是的,我同意驱动程序应该足够聪明以根据当前主体和镜像重置信息是没有意义的。无论如何处理这个是通过一个 try catch 块并尝试再次连接,这会重置缓存并获得一个新池。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    • 2014-04-09
    相关资源
    最近更新 更多