Support Article
pyCommitError Unable to create dataset for pyFTSIncrementalIndex
Summary
pyCommitError occurs when saving a rule.
Error Messages
pyCommitError: Unable to create dataset for PYFTSINCREMENTALINDEXER [-Internal-]
Steps to Reproduce
Create a rule and save it.
Root Cause
Stream services were not enabled correctly.
Resolution
Perform the following local-change:
- Set the below JVM argument on all the nodes:
-DNodeType=Search,WebUser,BackgroundProcessing,Stream
- Confirm if all the nodes are running on the same physical server or a different server.
- Perform the below steps after the JVM settings are set:
3.1 Stop the Pega nodes.
3.2 Delete the Kafka_data directory from any node which should not execute the Stream services.
3.3. Back-up the below tables and truncate them.
DELETE FROM pr_data_stream_node_updates;
DELETE FROM pr_data_stream_nodes;
DELETE FROM pr_data_stream_sessions;
DELETE FROM pr_sys_statusnodes;3.4. Start the nodes.
- If a single physical server is present on which the user executes multiple Pega JVMs that contain a 'Stream' as one of the -DNodeType parameters, set the prconfig.xml entries on all such nodes where the Kafka process is expected to run. These entries must point to a unique port number to avoid port conflicts.
For example, if nodes A and B both run on the same physical server and have the -DNodeType set to 'Stream' as one of the parameters, then the prconfig.xml on node A must be set as below:
dsm/services/stream/pyBrokerPort (default 9092)
dsm/services/stream/pyKeeperPort (default 2181)
dsm/services/stream/pyJmxPort ( default 9999)
dsm/services/stream/pyPort (default 7003)And, the prconfig.xml entry on node B must be set as below:
dsm/services/stream/pyBrokerPort (9093)
dsm/services/stream/pyKeeperPort (2182)
dsm/services/stream/pyJmxPort (9998)
dsm/services/stream/pyPort (7001) - If any other JVM is running on the same physical server where the -DNodeType is set to any other parameter except 'Stream', set the below on all such nodes to avoid port conflict:
dsm/services/stream/pyPort (7002)
For example: Consider three nodes (A, B, and C) running on the same physical server. Nodes A and B use the DNodeType as the Stream, but node C is of -DNodeType webuser. Nodes A and B must have the configuration mentioned and node C must only have the prconfig.xml entry set to a non-conflicting port value (any open port other than set for A and B)
dsm/services/ stream/pyPort (7002)
This prconfig entry is required to avoid conflicts for a REST Service port that is used by the Stream datasets on each of the nodes. Since it is an out-of-the-box REST Service, the Service cannot be stopped. Instead, the user must utilize the non-conflicting pyPort as mentioned above.
- Restart one of the background processing nodes. When this node starts, restart the remaining background processing nodes, followed by the Stream nodes (Search nodes and Webuser nodes).
Published June 17, 2020 - Updated December 2, 2021
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.