Author: ivol37 at gmail.com
Date: Fri Jan 14 15:39:17 2011
New Revision: 651

Log:


Modified:
   sandbox/ivol/standalone-cassandra/src/org/amdatu/cassandra/Main.java

Modified: sandbox/ivol/standalone-cassandra/src/org/amdatu/cassandra/Main.java
==============================================================================
--- sandbox/ivol/standalone-cassandra/src/org/amdatu/cassandra/Main.java        
(original)
+++ sandbox/ivol/standalone-cassandra/src/org/amdatu/cassandra/Main.java        
Fri Jan 14 15:39:17 2011
@@ -103,13 +103,26 @@
         }
     }
 
-    private Cassandra.Client getClient() throws TTransportException {
+    private void getClient() throws TTransportException {
         System.out.println("Connecting Thrift to " + 
DatabaseDescriptor.getRpcAddress().getHostAddress() + ":" + 
DatabaseDescriptor.getRpcPort());
-        TTransport tr = new 
TSocket(DatabaseDescriptor.getRpcAddress().getHostAddress(), 
DatabaseDescriptor.getRpcPort());
-        TProtocol proto = new TBinaryProtocol(tr);
-        Cassandra.Client client = new Cassandra.Client(proto);
-        tr.open();
-        return client;
+        int retry = 0;
+        try {
+            TTransport tr = new 
TSocket(DatabaseDescriptor.getRpcAddress().getHostAddress(), 
DatabaseDescriptor.getRpcPort(), 3000);
+            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) {
+            }
+            System.out.println("Thrift connection cannot yet be established, 
retrying... (" + retry + ")");
+        }
     }
 
 

Reply via email to