Run File Extraction Functions Out of Process
The out-of-process setting specified in the call to fpInit() or fpInitWithLicenseData() or in the formats.ini
file is automatically propagated to the File Extraction API in the call to KVGetExtractInterface()
. In KVGetExtractInterface()
, you pass a context pointer from fpInit() or fpInitWithLicenseData() and the address of a structure that contains pointers to the File Extraction functions.
When you extract subfiles from container files and pass the files for filtering out of process, Filter generates a server called kvoop.exe
for filtering and a duplicate server (also called kvoop.exe
) for file extraction. These servers are independent, so that if the filtering service stops responding, the file extraction service can continue extracting files.
Restart the File Extraction Server
If the file extraction server fails with either the KVError_InvalidOopDriverSignature
error, or the KVError_InvalidOopServiceSignature
error, you must restart the server by calling KVGetExtractInterface()
and passing the original extraction structure. (Restarting the server in this way does not affect performance beyond the cost of restarting the server.)
If you restart the file extraction server before the recursive extraction of subfiles is complete, the new server has no history of the subfiles extracted prior to the restart. If you then call a File Extraction function on one of the extracted files, the KVError_InvalidOopServiceSignature
error is generated, because the server that extracted the files is no longer running and was replaced with a new kvoop
server. Micro Focus recommends that you do not make calls to the File Extraction functions by using an invalid container context structure (KVContainerContext
) after you restart the server.