[rhq] Branch 'release/jon3.1.x' - modules/enterprise

mazz mazz at fedoraproject.org
Fri Aug 3 14:37:07 UTC 2012


 modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java |   32 +++++++---
 modules/enterprise/agent/src/main/resources/agent-configuration.xml            |    5 -
 2 files changed, 27 insertions(+), 10 deletions(-)

New commits:
commit aa5577b053712ed037afcaceddbb67b9c597fb20
Author: John Mazzitelli <mazz at redhat.com>
Date:   Mon Jun 4 15:46:23 2012 -0400

    [BZ 810124] fix the failover list test so it doesn't wait too long for each port test to fail.

diff --git a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java
index f471929..cc761e4 100644
--- a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java
+++ b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java
@@ -36,6 +36,7 @@ import java.io.StreamTokenizer;
 import java.lang.management.ManagementFactory;
 import java.lang.reflect.Method;
 import java.net.InetAddress;
+import java.net.InetSocketAddress;
 import java.net.Socket;
 import java.net.URL;
 import java.net.UnknownHostException;
@@ -2691,17 +2692,33 @@ public class AgentMain {
             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);
-                    socket = new Socket(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 (IOException e) {
+                } catch (Exception e) {
+                    if (socket != null) {
+                        try {
+                            socket.close(); // just clean up our last socket connect attempt
+                        } catch (Exception ignore) {
+                        }
+                    }
                     try {
-                        socket = new Socket(server.address, server.securePort);
-                    } catch (UnknownHostException e1) {
-                        LOG.error(AgentI18NResourceKeys.FAILOVER_LIST_UNKNOWN_HOST, server.address);
-                    } catch (IOException e1) {
+                        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);
@@ -2712,7 +2729,8 @@ public class AgentMain {
                             socket.close();
                         } catch (Exception e) {
                         }
-                    } else {
+                    }
+                    if (connectError) {
                         failedServers.add(server.toString());
                     }
                 }
diff --git a/modules/enterprise/agent/src/main/resources/agent-configuration.xml b/modules/enterprise/agent/src/main/resources/agent-configuration.xml
index a5fe60d..6de61ac 100644
--- a/modules/enterprise/agent/src/main/resources/agent-configuration.xml
+++ b/modules/enterprise/agent/src/main/resources/agent-configuration.xml
@@ -192,10 +192,9 @@ commands named "config", "setconfig" and "setup" and the command line options
                endpoints found in the agent's failover list. This helps
                provide a mechanism to quickly detect problems with the
                public endpoints configured for all RHQ Servers.
+               The default is false.
                -->
-               <!--
-               <entry key="rhq.agent.test-failover-list-at-startup" value="false" />
-               -->
+               <entry key="rhq.agent.test-failover-list-at-startup" value="true" />
 
                <!--
                _______________________________________________________________




More information about the rhq-commits mailing list