本文整理汇总了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;
}
示例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;
}
示例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
}