Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

Campaign failing on Strategy stage due to missing DNode

SA-26351

Summary



A campaign has been created with a strategy. The Campaign execution is failing, user reported about missing DNode.

The environment is a Pega 7.1.9 with Page Marketing 7.13.


Error Messages



Error on node [3935baa2c16908a02681592df5836fdd] com.pega.dsm.dnode.api.dataflow.StageException: Exception in stage: TestStrategy
at com.pega.dsm.dnode.api.dataflow.DataFlowStage$StageOutputSubscriber.onError(DataFlowStage.java:394)
at com.pega.dsm.dnode.api.dataflow.DataFlowStageProcessor.onError(DataFlowStageProcessor.java:48)
at com.pega.dsm.dnode.impl.dataflow.strategy.StrategyStageProcessor.onNext(StrategyStageProcessor.java:151)
at com.pega.dsm.dnode.api.dataflow.DataFlowStageBatchProcessor.commitBatchInternal(DataFlowStageBatchProcessor.java:102)
at com.pega.dsm.dnode.api.dataflow.DataFlowStageBatchProcessor.commitBatch(DataFlowStageBatchProcessor.java:92)
at com.pega.dsm.dnode.api.dataflow.DataFlowStageBatchProcessor.onCompleted(DataFlowStageBatchProcessor.java:78)
at com.pega.dsm.dnode.api.dataflow.DataFlowStage$StageInputSubscriber.onCompleted(DataFlowStage.java:302)
at com.pega.dsm.dnode.api.dataflow.DataFlowExecutor$QueueBasedDataFlowExecutor$4.process(DataFlowExecutor.java:213)
at com.pega.dsm.dnode.api.dataflow.DataFlowExecutor$QueueBasedDataFlowExecutor.runEventLoop(DataFlowExecutor.java:119)
at com.pega.dsm.dnode.api.dataflow.DataFlow$1.emit(DataFlow.java:162)
at com.pega.dsm.dnode.impl.stream.DataObservableImpl.subscribe(DataObservableImpl.java:56)
at com.pega.dsm.dnode.impl.dataflow.manager.LocalRun.execute(LocalRun.java:145)
at com.pega.dsm.dnode.impl.dataflow.manager.LocalRun.lockAndRun(LocalRun.java:86)
at com.pega.dsm.dnode.impl.dataflow.manager.LocalRun.run(LocalRun.java:63)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at com.pega.dsm.dnode.impl.prpc.PrpcThreadFactory$PrpcThread.run(PrpcThreadFactory.java:81)

Caused by: com.pega.dsm.dnode.impl.core.ExceptionWithInputRecord: java.lang.IllegalStateException: There are no functional DNodes in the cluster
... 15 more

Caused by: java.lang.IllegalStateException: There are no functional DNodes in the cluster
at com.pega.dsm.dnode.impl.core.RemoteExecutionProxyBuilder.buildProxyToAnyNode(RemoteExecutionProxyBuilder.java:113)
at com.pega.dsm.dnode.api.DNodeContext.getDataRepository(DNodeContext.java:100)
at com.pega.dsm.dnode.impl.dataset.cassandra.CassandraDataSet.getDataRepository(CassandraDataSet.java:18)
at com.pega.dsm.dnode.impl.dataset.cassandra.CassandraSaveOperation$1.get(CassandraSaveOperation.java:51)
at com.pega.dsm.dnode.impl.dataset.cassandra.CassandraSaveOperation$1.get(CassandraSaveOperation.java:48)
at com.google.common.base.Suppliers$ExpiringMemoizingSupplier.get(Suppliers.java:192)
at com.pega.dsm.dnode.impl.dataset.cassandra.CassandraSaveOperation$2.emit(CassandraSaveOperation.java:101)
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:145)
... 14 more


Steps to Reproduce



1) Create a omni channel campaign.
2) Associate very simple strategy.
3) Connect proposition to result shape.
4) Schedule run program.
5) Program run failed.


Root Cause



An issue in the custom application code or rules. No D-Nodes were configured. As best practice, when working with data sets and data flows it is important to configure D-Nodes. More specifically, enabling D-Nodes is mandatory when using a "data set" of type "Decision Data Store" or when using "delayed learning" in a strategy shape on "data flow".

Resolution



Navigate to Designer Studio ->Decisioning -> Infrastructure -> DNode Cluster Management -> DNodes.
No DNodes were present, add a DNode and wait for the status to become Online-Normal.

Published August 23, 2017 - Updated December 2, 2021

Was this useful?

0% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us