Support Article
DDS queries to data center fail with NoHostAvailableException
SA-74511
Summary
Decision Data Store queries to one of the two data centers fail with NoHostAvailableException.
Error Messages
ERROR - x.y.z: com.pega.pegarules.pub.PRRuntimeError
com.pega.pegarules.pub.PRRuntimeError: PRRuntimeError
at com.pega.pegarules.session.internal.mgmt.base.ThreadRunner.runActivitiesAlt(ThreadRunner.java:712)
at com.pega.pegarules.session.internal.mgmt.PRThreadImpl.runActivitiesAlt(PRThreadImpl.java:465)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.pega.pegarules.pub.PRRuntimeException: Exception during data set execution
at com.pegarules.generated.dataset.ra_action_accountsbdp_6e745915dc5e304972da588f9c48d8c1.perform(ra_action_accountsbdp_6e745915dc5e304972da588f9c48d8c1.java:127)
at com.pega.pegarules.session.internal.mgmt.Executable.doAction(Executable.java:3358)
Caused by: 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:84)
at com.pega.dsm.dnode.impl.stream.DataObservableImpl.subscribe(DataObservableImpl.java:53)
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.reportNoMoreHosts(RequestHandler.java:217)
at com.datastax.driver.core.RequestHandler.access$1000(RequestHandler.java:44)
at com.datastax.driver.core.RequestHandler$SpeculativeExecution.sendRequest(RequestHandler.java:276)
at com.datastax.driver.core.RequestHandler.startNewExecution(RequestHandler.java:117)
at com.datastax.driver.core.RequestHandler.sendRequest(RequestHandler.java:93)
at com.datastax.driver.core.SessionManager.execute(SessionManager.java:574)
at com.datastax.driver.core.SessionManager.prepareAsync(SessionManager.java:146)
at com.datastax.driver.core.AbstractSession.prepare(AbstractSession.java:77)
... 86 more
Steps to Reproduce
- Log in to the application
- Add an additional data center with new nodes in the Cassandra cluster
- Configure new nodes to the new data centre using cassandra-rackdc.properties and GossippingPropertyFileSnitch
- Run the flow
Root Cause
The data center name was not passed to the Cassandra load balancing policy. This prevented the read/write privileges from the existing data centers.
Resolution
- Apply HFix-39935
- Navigate to prconfig set all nodes as dnode/cassandra_datacenter=name_of_the_datacenter. Ensure the 'name_of_the_datacenter' should match the name of the correct Cassandra data center
- Apply the entry to all the nodes (Web nodes ,DDS nodes) and add the respective data center names and restart them
Published May 22, 2019 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.