How to Generate Large Volumes of EDI Data Faster
The ScenarioThreadEngine can be used to decrease the time it takes to execute a Scenario Chain or Scenario Chain Set by simultaneously executing multiple Scenarios within a Scenario Chain or Scenario Chain Set across multiple threads.
Please note: The ScenarioThreadEngine runs its threads in any order it chooses. Thus, only use the ScenarioThreadEngine on Scenario Chains or Scenario Chain Sets, where the execution order of Scenarios is insignificant.
When To Use the ScenarioThreadEngine
It would be good to thread Scenarios that contain the SegmentDataCreatorReceiver because it is used on two or more segment files (often hundreds of segment files) that are then merged into a single heavily nested document. Here, the order in which the segment files are created is insignificant.
The ScenarioThreadEngine also checks for Merge Receivers and knows to execute a Merge Receiver only after all segment threads have been executed.
When Not to Use the ScenarioThreadEngine
It would not be a good idea to thread Scenarios that contain any SQLInsertReceiver. Here, the order in which Scenarios are executed is significant due to the referential integrity of the data being validated on each row insertion.
Using the ScenarioThreadEngine when Generating EDI Data
EDI Projects use the SegmentDataCreatorReceiver to create segment files and a Merge Receiver to then merge the generated segments. The ScenarioThreadEngine can be used to decrease the amount of time it takes to generate large volumes of EDI data.
To use the ScenarioThreadEngine when generating EDI data, please use the command line syntax shown in the next section.
Syntax and Example with G-Case and Scenario Chain Set
Syntax: genrocket –tdc TestDataCase.gtdc:CategoryName.CaseName -r ScenarioChainSet.grs -threaded <# of threads>
Example: genrocket –tdc EDIDemoCase.gtdc:Integration.SampleCase -r EDI837PSceanrioChainSet.grs -threaded 15
Note: To learn more about how much faster EDI data can be generated using the ScenarioThreadEngine, click here.