两个SQL服务器之间的EAP 6的数据源容错配置负载均衡?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个SQL服务器之间的EAP 6的数据源容错配置负载均衡?相关的知识,希望对你有一定的参考价值。
环境:Jboss的EAP 6.4我在我的独立,ha.xml以下数据源配置
<datasource jndi-name="java:jboss/datasources/localPrimaryDS" pool-name="IntegrationDS1" enabled="true" use-java-context="true" statistics-enabled="true">
<connection-url>jdbc:sqlserver://primarySqlServer;databaseName=HalfFat|jdbc:sqlserver://secondarySqlServer;databaseName=HalfFat</connection-url>
<driver>mssql</driver>
<url-delimiter>|</url-delimiter>
<pool>
<min-pool-size>5</min-pool-size>
<max-pool-size>100</max-pool-size>
<prefill>true</prefill>
<use-strict-min>true</use-strict-min>
<flush-strategy>IdleConnections</flush-strategy>
</pool>
<security>
<user-name>user</user-name>
<password>psswd</password>
</security>
<validation>
<validate-on-match>true</validate-on-match>
<background-validation>false</background-validation>
<background-validation-millis>60000</background-validation-millis>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker"></valid-connection-checker>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLExceptionSorter"></exception-sorter>
</validation>
</datasource>
观察:当两个SQL服务器存在时,应用程序获得专用从主SQL Server实例的JDBC连接。当我暂停/禁止主SQL Server中,在应用程序级别我观察到断开的连接被破坏/新的连接被从次级SQL Server实例获得。所有预期。然而,我发现两个连接的组合,如果我恢复/重新启用主SQL Server实例。
问:这是有点不期望的行为,我希望在它没有该应用程序使用的连接,从辅助数据库保持。有什么我可以在数据源配置禁用此“负载平衡”的行为?
谢谢
答案
原来,<use-strict-min>true</use-strict-min>
is是什么原因造成的问题。据redhat,使用时严格分钟设置为true,空闲连接扫描不会标记为关闭已经达成任何进一步的连接,一旦分池大小(在使用+可用连接)。因此,我认为,还有从没有标记为关闭和取消暂停SQL服务器将使那些再次连接不清洁可用的主数据库的一些连接。
以上是关于两个SQL服务器之间的EAP 6的数据源容错配置负载均衡?的主要内容,如果未能解决你的问题,请参考以下文章
在 Eclipse Luna 中配置 jboss-eap-6.4 服务器时分配正确的主目录时出错
Jboss eap 6.4 https 配置监听端口 8443 失败
石英 2.2.1+jboss EAP 6.4 ClassNotFoundException oracle.sql.BLOB