Some more observations :: a) CAS11 and CAS12 are down, CAS21 and CAS22 up. If I connect via the driver to the cluster using only CAS21 and CAS22 as contact-points, even then the exception occurs.
b) CAS11 down, CAS12 up, CAS21 and CAS22 up. If I connect via the driver to the cluster using only CAS21 and CAS22 as contact-points, then connection goes fine. c) CAS11 up, CAS12 down, CAS21 and CAS22 up. If I connect via the driver to the cluster using only CAS21 and CAS22 as contact-points, then connection goes fine. Seems the java-driver is kinda always requiring either one of CAS11 or CAS12 to be up (although the expectation is that the driver must work fine if ANY of the 4 nodes is up). Thoughts, experts !? :) On Sat, Oct 24, 2015 at 9:40 PM, Ajay Garg <ajaygargn...@gmail.com> wrote: > Ideas please, on what I may be doing wrong? > > On Sat, Oct 24, 2015 at 5:48 PM, Ajay Garg <ajaygargn...@gmail.com> wrote: > >> Hi All. >> >> I have been doing extensive testing, and replication works fine, even if >> any permuatation of CAS11, CAS12, CAS21, CAS22 are downed and brought up. >> Syncing always takes place (obviously, as long as continuous-downtime-value >> does not exceed *max_hint_window_in_ms*). >> >> >> However, things behave weird when I try connecting via DataStax >> Java-Driver. >> I always add the nodes to the cluster in the order :: >> >> CAS11, CAS12, CAS21, CAS22 >> >> during "cluster.connect" method. >> >> >> Now, following happens :: >> >> a) >> If CAS11 goes down, data is persisted fine (presumably first in CAS12, >> and later replicated to CAS21 and CAS22). >> >> b) >> If CAS11 and CAS12 go down, data is NOT persisted. >> Instead the following exceptions are observed in the Java-Driver :: >> >> >> ################################################################################## >> Exception in thread "main" >> com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) >> tried for query failed (no host was tried) >> at >> com.datastax.driver.core.exceptions.NoHostAvailableException.copy(NoHostAvailableException.java:65) >> at >> com.datastax.driver.core.DefaultResultSetFuture.extractCauseFromExecutionException(DefaultResultSetFuture.java:258) >> at com.datastax.driver.core.Cluster.connect(Cluster.java:267) >> at com.example.cassandra.SimpleClient.connect(SimpleClient.java:43) >> at >> com.example.cassandra.SimpleClientTest.setUp(SimpleClientTest.java:50) >> at >> com.example.cassandra.SimpleClientTest.main(SimpleClientTest.java:86) >> Caused by: com.datastax.driver.core.exceptions.NoHostAvailableException: >> All host(s) tried for query failed (no host was tried) >> at >> com.datastax.driver.core.RequestHandler.sendRequest(RequestHandler.java:103) >> at >> com.datastax.driver.core.SessionManager.execute(SessionManager.java:446) >> at >> com.datastax.driver.core.SessionManager.executeQuery(SessionManager.java:482) >> at >> com.datastax.driver.core.SessionManager.executeAsync(SessionManager.java:88) >> at >> com.datastax.driver.core.AbstractSession.executeAsync(AbstractSession.java:60) >> at com.datastax.driver.core.Cluster.connect(Cluster.java:260) >> ... 3 more >> >> ################################################################################### >> >> >> I have already tried :: >> >> 1) >> Increasing driver-read-timeout from 12 seconds to 30 seconds. >> >> 2) >> Increasing driver-connect-timeout from 5 seconds to 30 seconds. >> >> 3) >> I have also confirmed that each of the 4 nodes are telnet-able over ports >> 9042 and 9160 each. >> >> >> Definitely seems to be some driver-issue, since >> data-persistence/replication works perfect (with any permutation) if >> data-persistence is done via "cqlsh". >> >> >> Kindly provide some pointers. >> Ultimately, it is the Java-driver that will be used in production, so it >> is imperative that data-persistence/replication happens for any downing of >> any permutation of node(s). >> >> >> Thanks and Regards, >> Ajay >> > > > > -- > Regards, > Ajay > -- Regards, Ajay