private List<String> testFailoverList(FailoverListComposite failoverList) {
List<String> failedServers = new ArrayList<String>(0);
if (failoverList != null) {
for (int i = 0; i < failoverList.size(); i++) {
ServerEntry server = failoverList.get(i);
Socket socket = null;
boolean connectError = true; // assume a failure will occur
try {
LOG.debug(AgentI18NResourceKeys.TEST_FAILOVER_LIST_ENTRY, server.address, server.port);
InetAddress inetAddress = InetAddress.getByName(server.address);
InetSocketAddress socketAddress = new InetSocketAddress(inetAddress, server.port);
socket = new Socket();
socket.setSoTimeout(5000);
socket.connect(socketAddress, 5000);
connectError = false; // we successfully connected to the server
} catch (UnknownHostException e) {
LOG.error(AgentI18NResourceKeys.FAILOVER_LIST_UNKNOWN_HOST, server.address);
} catch (Exception e) {
if (socket != null) {
try {
socket.close(); // just clean up our last socket connect attempt
} catch (Exception ignore) {
}
}
try {
LOG.debug(AgentI18NResourceKeys.TEST_FAILOVER_LIST_ENTRY, server.address, server.securePort);
InetAddress inetAddress = InetAddress.getByName(server.address);
InetSocketAddress socketAddress = new InetSocketAddress(inetAddress, server.securePort);
socket = new Socket();
socket.setSoTimeout(5000);
socket.connect(socketAddress, 5000);
connectError = false; // we successfully connected to the server
} catch (Exception e1) {
String err = ThrowableUtil.getAllMessages(e1);
LOG.warn(AgentI18NResourceKeys.FAILOVER_LIST_UNREACHABLE_HOST, server.address, server.port,
server.securePort, err);
}
} finally {
if (socket != null) {
try {
socket.close();
} catch (Exception e) {
}
}
if (connectError) {
failedServers.add(server.toString());
}
}
}
}