MySQL JDBC中autoReconnectForPools的用途

WBOY
发布: 2016-06-07 16:31:53
原创
3939 人浏览过

有一个这样的场景,2台mysql数据库同步,正常的情况下一般只会连接其中的一台,如果其中一台down掉以后,应用程序能自动连接到另外一台,这样的场景和我上一篇文章描述的有所不同,详见: 《MySQL JDBC 集群》 一文,前面提到的是轮询访问,现在是一直访问一

有一个这样的场景,2台mysql数据库同步,正常的情况下一般只会连接其中的一台,如果其中一台down掉以后,应用程序能自动连接到另外一台,这样的场景和我上一篇文章描述的有所不同,详见:《MySQL JDBC 集群》一文,前面提到的是轮询访问,现在是一直访问一台,直到另外一台down机以后将会自动切换到另外一台上去,当然实现这样的场景你的应用程序必须使用JDBC的数据库连接池才会有效。

其实MySQL关于集群 的 JDBC参数还有很多,下面这些参数是我从MySQL官方网站上杂录的一部分,提供大家参考,

High Availability and Clustering. 

Property Name Definition Default Value Since Version
自动重新连接 驱动程序是否应该尝试重新建立陈旧和/或失效的连接?如果启用,驱动程序将为在属于当前事务的陈旧或失效连接上发出的查询抛出异常,但会在新事务中的连接上发出下一个查询之前尝试重新连接。不建议使用此功能,因为当应用程序未正确处理 SQLException 时,它会产生与会话状态和数据一致性相关的副作用,并且仅设计为当您无法配置应用程序来处理由以下原因导致的 SQLException 时使用:正确地断开和陈旧的连接。或者,研究将 MySQL 服务器变量“wait_timeout”设置为某个较高的值,而不是默认的 8 小时。 1.1
autoReconnectForPools 使用适合连接池的重新连接策略(默认为“false”) 3.1.3
failOverReadOnly 在自动重新连接模式下进行故障转移时,是否应将连接设置为“只读”? 3.0.12
maxReconnects 如果 autoReconnect 为 true,则尝试重新连接的最大次数,默认为“3”。 3 1.1
reconnectAtTxEnd 如果 autoReconnect 设置为 true,驱动程序是否应该在每次事务结束时尝试重新连接? 3.0.10
重试全部向下 使用负载平衡时,驱动程序应在可用主机之间循环并尝试连接的次数。在周期之间,如果没有可用的服务器,驱动程序将暂停 250 毫秒。 120 5.1.6
初始超时 如果启用自动重新连接,则重新连接尝试之间等待的初始时间(以秒为单位,默认为“2”)。 2 1.1
roundRobinLoadBalance 当启用 autoReconnect,并且failoverReadonly 为 false 时,我们是否应该以循环方式选择要连接的主机? 3.1.2
queriesBeforeRetryMaster 故障转移时(使用多主机故障转移时)回退到主服务器之前发出的查询数。无论先满足哪个条件,“queriesBeforeRetryMaster”或“secondsBeforeRetryMaster”都会导致尝试重新连接到主服务器。默认为 50。 50 3.0.2
secondsBeforeRetryMaster 故障转移后,驱动程序应等待多长时间才能尝试 30 3.0.2
selfDestructOnPingMaxOperations =如果设置为非零值,则当连接的命令计数被调用时,驱动程序将报告关闭连接并报告失败。发送到服务器的值超过此值。 0 5.1.6
selfDestructOnPingSecondsLifetime 如果设置为非零值,当连接的生命周期超过此值时,驱动程序将报告关闭连接并在调用 Connection.ping() 或 Connection.isValid(int) 时报告失败. 0 5.1.6
资源ID 标识此数据源或连接所连接的资源的全局唯一名称,当驱动程序无法根据 URL 中使用的主机名确定此值时,用于 XAResource.isSameRM() 5.0.1

–结束–

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板