Author: ivol37 at gmail.com
Date: Fri Jan 14 14:02:06 2011
New Revision: 632

Log:
[AMDATU-266] Added retries for Thrift connection

Modified:
   
trunk/amdatu-cassandra/cassandra-application/src/main/java/org/amdatu/cassandra/application/service/CassandraDaemonServiceImpl.java

Modified: 
trunk/amdatu-cassandra/cassandra-application/src/main/java/org/amdatu/cassandra/application/service/CassandraDaemonServiceImpl.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-application/src/main/java/org/amdatu/cassandra/application/service/CassandraDaemonServiceImpl.java
 (original)
+++ 
trunk/amdatu-cassandra/cassandra-application/src/main/java/org/amdatu/cassandra/application/service/CassandraDaemonServiceImpl.java
 Fri Jan 14 14:02:06 2011
@@ -294,12 +294,25 @@
      * @throws TTransportException
      */
     private void testThriftConnection() throws TTransportException {
-        String thrift = m_configuration.getRPCAddress() + ":" + 
m_configuration.getRPCPort();
-        m_logService.log(LogService.LOG_INFO, "Establishing Thrift connection 
to the Cassandra Daemon on " + thrift);
-        TTransport tr = new TSocket(m_configuration.getRPCAddress(), 
m_configuration.getRPCPort(), THRIFT_TIMEOUT);
-        TProtocol proto = new TBinaryProtocol(tr);
-        new Cassandra.Client(proto);
-        tr.open();
+        int retry = 0;
+        try {
+            String thrift = m_configuration.getRPCAddress() + ":" + 
m_configuration.getRPCPort();
+            m_logService.log(LogService.LOG_INFO, "Establishing Thrift 
connection to the Cassandra Daemon on " + thrift);
+            TTransport tr = new TSocket(m_configuration.getRPCAddress(), 
m_configuration.getRPCPort(), THRIFT_TIMEOUT);
+            TProtocol proto = new TBinaryProtocol(tr);
+            new Cassandra.Client(proto);
+            tr.open();
+        } catch (TTransportException e) {
+            retry++;
+            if (retry >= 3) {
+                throw e;
+            }
+            try {
+                Thread.sleep(3000);
+            }
+            catch (InterruptedException e1) {
+            }
+        }
         m_logService.log(LogService.LOG_INFO, "Thrift connection established 
successfully");
     }
 

Reply via email to