Retry to Process Files After Failure with TestStand Offline Results Processing Utility

Updated May 1, 2018

Reported In

Software

  • TestStand

Issue Details

I am using Offline Results Processing built-in plug-in in TestStand to save results to raw binary files and then I run Offline Results Processing Utility to process the files and log data to database. 

It may happen that the database goes offline while the Offline Results Processing Utility is processing the files in the inbox, thus processing returns an error and some files are not processed. When connection to the database is restored, Offline Results Processing Utility automatically restart to process new files arrived in the inbox. However, the files that previously had an error remain in the inbox and are never processed again. You need to stop and restart the utility in order to correctly process these files.

Is there a way to have Offline Results Processing Utility to automatically retry to process files in case of any failure (for example, connection issues with the database)?
 

Solution

This is currently the expected behavior of the Offline Results Processing Utility. If a result fails to log for any reasons (connection errors, errors in the plug-in execution, configuration errors etc.), it will be skipped. If the utility is stopped and re-run later, the failed results will be processed again.
The utility was not designed to automatically retry process at the end because if there is any problem with the results, it doesn't usually make sense to keep retrying the logging over and over. 

If you would like to make Offline Results Processing Utility automatically retry to process results, you could implement one of the following two possible workarounds:
 
  • Edit source code of Offline Results Processing Utility  in order to continuously monitor the inbox folder until it is empty. The source code is available at C:\Program Files (x86)\National Instruments\TestStand xx\Components\Models\TestStandModels\Offline Results Processing Utility\OfflineResultsProcessingUtility. You should edit the C# code and then re-build the executable
  • Since the Offline Results Processing Utility has a command line interface, you could create a script in any programming language to periodically check if there are still files to process in the inbox folder and then launch the utility. The following is a pseudo-code you could implement:
   
While (there are results in the Offline Results Inbox) 
    { 
run the Offline Results Processing Utility with "exit when done" flag 
    }

You can also implement this solution in a TestStand sequence, calling Call Executable step to programmatically launch Offline Results Processing Utility executable.
 

WAS THIS ARTICLE HELPFUL?

Not Helpful