Support Article
DNodeException: Cannot execute modification statement
Summary
The DNode or Adaptive logic is working fine on development environment with single node.
The same code is not working in pre-prod multi-node environment.
The error message coming on few nodes at same time it is working fine on other nodes and it sporadic in nature.Error Messages
Caused by: com.pega.dsm.dnode.impl.core.ExceptionWithInputRecord: com.pega.dsm.dnode.api.DNodeException: Cannot execute modification statement
... 86 more
Caused by: com.pega.dsm.dnode.api.DNodeException: Cannot execute modification statement
at com.pega.dsm.dnode.impl.cassandra.CassandraDao.executeStatement(CassandraDao.java:172)
at com.pega.dsm.dnode.impl.cassandra.CassandraDataRepository.insert(CassandraDataRepository.java:244)
at com.pega.dsm.dnode.impl.dataset.cassandra.CassandraSaveOperation$2.emit(CassandraSaveOperation.java:104)
at com.pega.dsm.dnode.impl.stream.DataObservableImpl$SafeDataSubscriber.subscribe(DataObservableImpl.java:320)
at com.pega.dsm.dnode.impl.stream.DataObservableImpl.subscribe(DataObservableImpl.java:52)
at com.pega.dsm.dnode.impl.stream.DataObservableImpl.await(DataObservableImpl.java:98)
at com.pega.dsm.dnode.impl.stream.DataObservableImpl.await(DataObservableImpl.java:87)
at com.pega.dsm.dnode.impl.dataflow.strategy.DelayedLearning.saveResultsForDelayedLearning(DelayedLearning.java:53)
at com.pega.dsm.dnode.impl.dataflow.strategy.StrategyStageProcessor.onNext(StrategyStageProcessor.java:158)
... 85 more
Caused by: org.apache.cassandra.exceptions.UnavailableException: Cannot achieve consistency level ONE
at org.apache.cassandra.db.ConsistencyLevel.assureSufficientLiveNodes(ConsistencyLevel.java:292)
at org.apache.cassandra.service.AbstractWriteResponseHandler.assureSufficientLiveNodes(AbstractWriteResponseHandler.java:117)
at org.apache.cassandra.service.StorageProxy.performWrite(StorageProxy.java:382)
at org.apache.cassandra.service.StorageProxy.mutate(StorageProxy.java:191)
at org.apache.cassandra.cql3.statements.ModificationStatement.execute(ModificationStatement.java:128)
at com.pega.dsm.dnode.impl.cassandra.CassandraDao.executeStatement(CassandraDao.java:170)Steps to Reproduce
1) Execute SOAP Service.
2) In Service Activity - setup predictors.
3) Execute Data Flow which in turn calls Strategies which contain Adaptive Model.Root Cause
A defect in Pegasystems’ code or rules.Resolution
Apply HFix-28748.
Published August 24, 2016 - 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.