When trying to add a simple custom object to our SIT environment from DEV, we are receiving the below error. Error: com.niku.dms.util.DMSException: Could not retrieve file from file store.
CA PPM 15.3 On Premise
For a knowledge store / filestore stored in the file system, there can only be one and all “servers” must use the same directory.
Using the customer's environment configuration in this case as an example, the environment is configured as App Server 1, BG Server and App Server 2. The environment has all 3 servers using 3 different filestores (one filestore on each server host). This is causing the import failure.
If the app service on app server 1 uploads a file, the bg server can’t see it and neither can the app service running on app server 2. If the app service on app server 2 uploads a file then the BG service running on the BG server can’t see the file and neither can the app service 1 running on app server 1.
The way that the process works is as follows.
With the content packs, the app server uploads it but the BG service processes it. In your scenario, if the app service on app server 1 uploads it to it’s filestore on app server 1, the content pack is uploaded and the next thing that happens is the BG server looks in the BG server file store that it is configured to see, in this case it looks in the BG server filestore and because the file is in the app server 1 file store the BG service cannot see and process the files for the install. Then the application generates the "Error: com.niku.dms.util.DMSException: Could not retrieve file from file store."
The proper way to configure a multi server environment's filestore is:
- A shared mount point as shown in the graphic below. Since the BG server does most of the processing, it is recommended that the filestore be located on the BG server and for App Server 1 and App Server 2 to be mounted to this directory on the BG Server. You can also use a NAS device and BG, App Server 1, and App Server 2 to this Filestore location in System Administration.
- The second way to have a shared filestore is to configure your filestore to store files in the database.
You can define the path to the filestore directory on one of the servers in your environmnt (BG or NAS) in PPM System Administration UI. All of your servers need to point to the same path location for the filestore. The graphic below shows the field where the path is defined in the UI: