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

pyCommitError Unable to create dataset for pyFTSIncrementalIndex

SA-105218

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:
  1. Set the below JVM argument on all the nodes:

    -DNodeType=Search,WebUser,BackgroundProcessing,Stream

  2. Confirm if all the nodes are running on the same physical server or a different server.
  3. 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.

  4. 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)

  5. 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.

  6. 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).
Suggest Edit

Published June 17, 2020 - Updated December 2, 2021

Did you find this content helpful? Yes No

Have a question? Get answers now.

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

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