Run File Extraction Functions Out-of-Process

The out-of-process setting specified in the call to fpInit() 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 that was initialized by fpInit() 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 filter_kvoop.exe for filtering and another server called extract_kvoop.exe for file extraction. These servers are independent, so 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 extract_kvoop server. OpenText 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.