程序在访问有镜像的数据库和无镜像的数据库时,采用的链接超时时间算法不一样,因此会导致在在有镜像的数据库上设置了15 S的超时时间,而实际的超时时间仅为3.6 S,从而导致有镜像的数据库更容易超时。

在无镜像的数据库上,会使用配置的或默认的connect timeout.

在有镜像的数据库上,连接超时时间为:

RetryTime = PreviousRetryTime + ( 0.08 * TotalLoginTimeout )

假定你指定connection timeout 15 秒:

第一轮:连接主机,超时时间为总timeout的8% 即:15*8%=1.2秒 这时候如果连接没有成功,就试图连接备机,超时时间也是1.2秒。

第二轮:如果连接备机失败,这时候,客户端数据库接口再试图连接主机,超时时间设为 总timeout的16% 即:15*16%=2.4秒。 如果没有成功,就连接备机,超时时间也是2.4秒。

第三轮,超时时间是总timeout时间的24%。在后续的每轮中,连接尝试的重试时间会逐渐变大。前八次连接尝试的重试时间如下: 8%, 8%, 16%, 16%, 24%, 24%, 32%, 32%

对于15秒的timeout值,实际连接主机的最大timeout值是3.6秒! 如果前面3次连接(1.2秒,2.4秒,3.6秒)都不成功,那么15秒超时时间就到了,你程序就会报超时错误。要增加连接主机的真实timeout值,你只能增加总的connection timeout值。比如如果超时设为120秒,那么第一轮的重试时间是:120*8%=9.6秒。 即便如此,第一轮的尝试连接时间还是比非镜像数据库的缺省15秒timeout时间要短。

摘抄自http://blogs.msdn.com/b/apgcdsd/archive/2012/03/01/timeout.aspx

Mirror--程序访问镜像数据库的超时机制的更多相关文章

  1. PHP访问MySql数据库介绍

    在网站后台,经常要与数据库打交道.本文介绍如何使用XAMPP来管理MySql数据库及如何用PHP来访问MySql数据库. 一.使用XAMPP来管理MySql数据库 首先使用XAMPP打开MySql的管 ...

  2. Java程序中解决数据库超时与死锁

    Java程序中解决数据库超时与死锁 2011-06-07 11:09 佚名 帮考网 字号:T | T   Java程序中解决数据库超时与死锁,每个使用关系型数据库的程序都可能遇到数据死锁或不可用的情况 ...

  3. 在 Mac OS X 上创建的 .NET 命令行程序访问数据库 (使用Entity Framework 7 )

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  4. SQL Server Mirror 断开后,删除副本上镜像数据库

    一般而言,SQL Server 在数据库级别进行数据同步的方式主要有三种 1.日志传送:2.Mirror(镜像):3. AlwaysOn.复制订阅技术理解为表级别的同步,不归结为数据库级别的同步. 在 ...

  5. Netty 超时机制及心跳程序实现

    Netty 超时机制的介绍 Netty 的超时类型 IdleState 主要分为: ALL_IDLE : 一段时间内没有数据接收或者发送 READER_IDLE : 一段时间内没有数据接收 WRITE ...

  6. Java连接MySQL数据库。编写一个应用程序,在主类Test_4类中,通过JDBC访问stu数据库,显示t_student表中的内容(表结构见表1),显示效果自己设计。

    题目2:编写一个应用程序,在主类Test_4类中,通过JDBC访问stu数据库,显示t_student表中的内容(表结构见表1),显示效果自己设计.之后,可根据显示的内容进行某条记录的删除(以id为条 ...

  7. mysql数据库锁的机制-one

    锁概念 : 当高并发访问同一个资源时,可能会导致数据不一致,需要一种机制将用户访问数据的顺序进行规范化,以保证数据库数据的一致性.锁就是其中的一种机制. 举例 :以买火车票为例,火车票可面向广大消费者 ...

  8. 多阶段构建Golang程序Docker镜像

    Docker简介 Docker是基于Linux容器技术(LXC),使用Go语言实现的开源项目,诞生于2013年,遵循Apache2.0协议.Docker自开源后,受到广泛的关注和讨论. Docker在 ...

  9. 关于SQL Server 镜像数据库快照的创建及使用

    从SQL Server 2005 SP 起,SQL 开始支持数据库镜像.它的设计目的是试图为SQL Server 提供一个具有实时性数据同步的灾难恢复技术,即能够提供数据冗余备份,切换起来比较方便.每 ...

随机推荐

  1. 中文路径-接口路径url不能传输中文解决方案

    服务端:

  2. 3th January 2014

    I owe my girl so much, i want to pay her, i know this is impossible,but I still try hard.

  3. 改善C#程序的建议5:引用类型赋值为null与加速垃圾回收

    http://www.cnblogs.com/luminji/archive/2011/04/07/2007205.html 在标准的Dispose模式中(见前一篇博客“C#中标准Dispose模式的 ...

  4. org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 12 in XML document from

    org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 12 in XML document from ...

  5. Android NDK开发-1-环境搭建

    1.NDK介绍 Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Kit,因此又被Google称为“NDK”.众所周知,Android程序运行在Dal ...

  6. 经典 MapReduce框架(MRv1)

    在 MapReduce 框架中,作业执行受两种类型的进程控制: 一个称为 JobTracker 的主要进程,它协调在集群上运行的所有作业,分配要在 TaskTracker 上运行的 map 和 red ...

  7. LeetCode——Best Time to Buy and Sell Stock

    Description: Say you have an array for which the ith element is the price of a given stock on day i. ...

  8. Intel产品AMT本地及远程提权漏洞(CVE-2017-5689)复现 【转载自freebuf.com】

    零.绪论: 1.鸣谢freebuf的文章,主要是学习这个漏洞,文章地址: Intel产品AMT本地及远程提权漏洞(CVE-2017-5689)复现 2.在shadon上找了多个该漏洞尝试复现失败(评论 ...

  9. Windows域的相关操作

    一.windows域账户组操作: net group /domain #查看所有组 net group GROUP-NAME /domain #查看某一个组 net group GROUP-NAME ...

  10. 聊聊对APM的理解

    本文主要从以下几个列举对APM的认识: -什么是APM工具 -为什么要用APM工具,APM工具的价值在哪里: -什么样的APM工具适合于传统金融业: -如何用好APM工具:    -精准告警    - ...