当前位置: 首页>>代码示例>>Java>>正文


Java LoadBalancingConnectionProxy.createConnectionForHost方法代码示例

本文整理汇总了Java中com.mysql.jdbc.LoadBalancingConnectionProxy.createConnectionForHost方法的典型用法代码示例。如果您正苦于以下问题:Java LoadBalancingConnectionProxy.createConnectionForHost方法的具体用法?Java LoadBalancingConnectionProxy.createConnectionForHost怎么用?Java LoadBalancingConnectionProxy.createConnectionForHost使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.mysql.jdbc.LoadBalancingConnectionProxy的用法示例。


在下文中一共展示了LoadBalancingConnectionProxy.createConnectionForHost方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: pickConnection

import com.mysql.jdbc.LoadBalancingConnectionProxy; //导入方法依赖的package包/类
@Override
public com.mysql.jdbc.ConnectionImpl pickConnection(LoadBalancingConnectionProxy proxy, List<String> configuredHosts,
        Map<String, ConnectionImpl> liveConnections, long[] responseTimes, int numRetries) throws SQLException {
    if (forcedFutureServer == null || forceFutureServerTimes == 0 || !configuredHosts.contains(forcedFutureServer)) {
        return super.pickConnection(proxy, configuredHosts, liveConnections, responseTimes, numRetries);
    }
    if (forceFutureServerTimes > 0) {
        forceFutureServerTimes--;
    }
    ConnectionImpl conn = liveConnections.get(forcedFutureServer);

    if (conn == null) {
        conn = proxy.createConnectionForHost(forcedFutureServer);

    }
    return conn;
}
 
开发者ID:mniepert,项目名称:TPKB,代码行数:18,代码来源:ConnectionRegressionTest.java

示例2: pickConnection

import com.mysql.jdbc.LoadBalancingConnectionProxy; //导入方法依赖的package包/类
public com.mysql.jdbc.ConnectionImpl pickConnection(
		LoadBalancingConnectionProxy proxy, List<String> configuredHosts,
		Map<String, ConnectionImpl> liveConnections, long[] responseTimes, int numRetries)
		throws SQLException {
	if (forcedFutureServer == null || forceFutureServerTimes == 0 || !configuredHosts.contains(forcedFutureServer)) {
		return super.pickConnection(proxy, configuredHosts,
				liveConnections, responseTimes, numRetries);
	}
	if (forceFutureServerTimes > 0) {
		forceFutureServerTimes--;
	}
	ConnectionImpl conn = liveConnections
			.get(forcedFutureServer);

	if (conn == null) {
		conn = proxy.createConnectionForHost(forcedFutureServer);

	}
	return conn;
}
 
开发者ID:hinsenchan,项目名称:fil_project_mgmt_app_v2,代码行数:21,代码来源:ConnectionRegressionTest.java

示例3: pickConnection

import com.mysql.jdbc.LoadBalancingConnectionProxy; //导入方法依赖的package包/类
@Override
public ConnectionImpl pickConnection(LoadBalancingConnectionProxy proxy, List<String> configuredHosts, Map<String, ConnectionImpl> liveConnections,
    long[] responseTimes, int numRetries) throws SQLException {
    int numHosts = configuredHosts.size();

    SQLException ex = null;

    List<String> whiteList = new ArrayList<String>(numHosts);
    whiteList.addAll(configuredHosts);

    Map<String, Long> blackList = proxy.getGlobalBlacklist();

    whiteList.removeAll(blackList.keySet());

    Map<String, Integer> whiteListMap = this.getArrayIndexMap(whiteList);

    for (int attempts = 0; attempts < numRetries;) {
        if (whiteList.size() == 0) {
            throw SQLError.createSQLException("No hosts configured", null);
        }

        String hostPortSpec = whiteList.get(0);     //Always take the first host

        ConnectionImpl conn = liveConnections.get(hostPortSpec);

        if (conn == null) {
            try {
                conn = proxy.createConnectionForHost(hostPortSpec);
            } catch (SQLException sqlEx) {
                ex = sqlEx;

                if (proxy.shouldExceptionTriggerFailover(sqlEx)) {

                    Integer whiteListIndex = whiteListMap.get(hostPortSpec);

                    // exclude this host from being picked again
                    if (whiteListIndex != null) {
                        whiteList.remove(whiteListIndex.intValue());
                        whiteListMap = this.getArrayIndexMap(whiteList);
                    }
                    proxy.addToGlobalBlacklist(hostPortSpec);

                    if (whiteList.size() == 0) {
                        attempts++;
                        try {
                            Thread.sleep(250);
                        } catch (InterruptedException e) {
                            s_logger.debug("[ignored] interupted while fail over in progres.");
                        }

                        // start fresh
                        whiteListMap = new HashMap<String, Integer>(numHosts);
                        whiteList.addAll(configuredHosts);
                        blackList = proxy.getGlobalBlacklist();

                        whiteList.removeAll(blackList.keySet());
                        whiteListMap = this.getArrayIndexMap(whiteList);
                    }

                    continue;
                }

                throw sqlEx;
            }
        }

        return conn;
    }

    if (ex != null) {
        throw ex;
    }

    return null; // we won't get here, compiler can't tell
}
 
开发者ID:apache,项目名称:cloudstack,代码行数:76,代码来源:StaticStrategy.java


注:本文中的com.mysql.jdbc.LoadBalancingConnectionProxy.createConnectionForHost方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。