FDM - SHUFFLE function fails - cannot find the path specified

Document ID : KB000117489
Last Modified Date : 12/10/2018
Show Technical Document Details
Issue:
Masking with the SHUFFLE function fails with an error:
{DATE} {TIME} Validating table names, column names and data types for mapping file...
{DATE} {TIME}Starting Shuffle Writes for table test at 2018.10.12 12:22:45.861 EDT
{DATE} {TIME} Error appending to file:seedtables/numbers.txt
{DATE} {TIME} seedtables\numbers.txt (The system cannot find the path specified)
{DATE} {TIME} Retrying write
{DATE} {TIME} Error appending to file:seedtables/numbers.txt after 6 attempts
{DATE} {TIME} exit value = 1
Cause:
"Param1" that was passed into the SHUFFLE function included a dot ('.') and therefore will attempt to create a file of the same name in the [current working directory]\ seedtables directory.
Resolution:
Before running the masking java command, the "seedtables" directory must exist or be created in the current working directory before the java masking command is started if you want to use the SHUFFLE functions seedfile option.

Solution 1 - Create the "seedtables" directory in the current working directory

This will create the seedtables directory in the current working directory (assuming the user has permissions).

Modify the masking batch as follows:
 
if not exist "%CD%seedtables\" mkdir seedtables
java -Dfile.encoding=UTF-8 -Djava.util.logging.config.file="C:/Program Files/Grid-Tools/FastDataMasker/logging.properties" -Xms100M -Xmx1000M ... ...


Solution 2 - Use the FastDataMasker %APPDATA% directory as the current working directory

This will change to the appropriate %APPDATA% directory and create the seedtables directory if needed.
 
cd %APPDATA%\Grid-Tools\FastDataMasker
if not exist "%CD%seedtables\" mkdir seedtables
java -Dfile.encoding=UTF-8 -Djava.util.logging.config.file="C:/Program Files/Grid-Tools/FastDataMasker/logging.properties" -Xms100M -Xmx1000M ... ...


Solution 3 - Use a seedtable within the SCRAMBLE Database

Change the param1 value passed into SHUFFLE to something that doesn't include a dot ('.') and ensure that the following options are set properly:
SEEDTABLECONNECT=[SCRAMBLE CONNECT FILE]
SEEDTABLE=gtsrc_reference_data
SEEDTABLECOLUMNS=RD_REF_ID,RD_REF_VALUE1,RD_REF_VALUE2

This will cause the SHUFFLE function to create the seed list within the SCRAMBLE Database and not in a flat file. Ensure that pararm1 is unique for this shuffle iteration as the generated seedlist will be overwritten on each run of the SHUFFLE function. Refer to the SHUFFLE function documentation for additional details.