Troubleshooting: Missing or Lost Data on iSeries [Handle CPF33D7 from *IMMED on AS400]
eFORMz on iSeries systems waits to process files until the spool file’s SCHEDULE parameter is set to *IMMED. In the interest of processing speed, some Vendors set *IMMED when the file is created rather than setting it to *FILEEND and changing it to *IMMED after the file is finished writing (Example: MMLABELW) . As a result, a chance exists that the eFORMz Director’s Queue Monitor can pick a file for processing before it is finished writing, resulting in missing data without an apparent cause or errors in the eFORMz log file.
Sample Error message:
Error reading spoolfile CPF33D7 Requested number of buffers not returned.
Another error mesage:
com.minisoft.exceptions.ProcessingException: Error reading spoolfile
CPF33D7 Requested number of buffers not returned.
com.minisoft.HostTools.AS400.SpoolfileViewer.openSpoolfile(Unknown Source)
com.minisoft.Input.iSeriesSpoolFileInputSource.initialize(Unknown Source)
com.minisoft.Input.DataFile.initialize(Unknown Source)
com.minisoft.Output.OutputGenerator.a(Unknown Source)
com.minisoft.Output.OutputGenerator.GenerateOutput(Unknown Source)
You can implement one of the following steps to avoid this potential problems:
- Upgrade to eFORMz version 11.03.12 and later
- Use an iSeries writer to send the spool file to a listener queue.
- Use an aged file selector in the eFORMz Director.
- Add a Project Parser Option (Project Properties > Data Parsing > ZPL) of a Start Delay. Values in milliseconds.
Example: Start Delay = 2000, Read Timeout = 2000, Max Size = 1000000