Change repository home
By default the repository is located at "$TOMCAT_HOME/repository" but you can change to another location.
This action must be done with the application stopped.
Understanding the contents of repository folders
In "$TOMCAT_HOME/repository" there are the folders tmp, index, cache and datastore.
Folder | Backup | Description |
---|---|---|
tmp |
No |
This folder contains some temporary files to be shared between several clustered OpenKM instances. |
index |
No |
The folder which contains the Lucene search engine indexes. The content of that folder can be rebuilt. Although it is not mandatory to back up this folder, we recommend doing so. |
cache |
No |
The folder which contains the application cached files. For example, for previewing documents, sometimes it is necessary to transform the original document to another format. The conversion consumes a lot of hardware resources; for this reason the application stores these converted files to be reused later. The content of that folder can be cleaned without major problems. Although it is not mandatory to back up this folder, we recommend doing so. |
datastore |
Yes |
The folder which contains all binary data of the documents. It is mandatory to back up this folder; otherwise the binary data of the documents could be lost due to a server hardware failure. |
extraction |
Yes |
This folder contains the text extracted from those documents stored in OpenKM. A backup is not really necessary, but may be a time saver. |
ocr_templates |
Yes |
This folder contains the binary data of the OCR templates. |
Move entire repository location
- Stop the application
- Move the "$TOMCAT_HOME/repository" to another location.
- Edit the "$TOMCAT_HOME/openkm.properties" file and add the property "repository.home".
- Start the application
Sample 1
From OpenKM version 7.1.x and later, when the "repository.home" parameter is set, the location in the file system of the Lucene index is not affected. You should use the specific parameter named "spring.jpa.properties.hibernate.search.default.indexBase" to move the Lucene index to a new location.
Windows
repository.home=C:/okmrepo
Linux
repository.home=/mnt/okmrepo
Move repository folders individually
Table of properties:
Folder | Property | Default |
---|---|---|
index |
spring.jpa.properties.hibernate.search.default.indexBase |
${catalina.home}/repository/index |
tmp |
repository.temp.home |
${repository.home}/tmp |
cache |
repository.cache.home |
${repository.home}/${tenant.id}/cache |
datastore |
repository.datastore.home |
${repository.home}/${tenant.id}/datastore |
extraction |
repository.extraction.home |
${repository.home}/${tenant.id}/extraction |
ocr template |
repository.ocr.template.home |
${repository.home}/${tenant.id}/ocr_template |
These parameters can be used in combination with the parameter "repository.home" and "tenant.id".
- Stop the application
- Move the "$TOMCAT_HOME/repository/{folder}" to another location.
- Edit the "$TOMCAT_HOME/openkm.properties" file and add the appropriate property.
- Start the application
Sample
Windows
spring.jpa.properties.hibernate.search.default.indexBase=C:/lucene/index
repository.datastore.home=D:/okm/${repository.home}/datastore
repository.cache.home=D:/okm/${repository.home}/cacherepository.temp.home=D:/okm/${repository.home}/tmp
repository.ocr.template.home=D:/okm/${repository.home}/cacherepository.temp.home=D:/okm/${repository.home}/ocr_template
Linux
spring.jpa.properties.hibernate.search.default.indexBase=/mnt/lucene/index
repository.datastore.home=/mnt/okm/${repository.home}/datastore
repository.cache.home=/mnt/okm/${repository.home}/cacherepository.temp.home=/mnt/okm/${repository.home}/tmp
repository.ocr.template.home=/mnt/okm/${repository.home}/cacherepository.temp.home=/mnt/okm/${repository.home}/ocr_template
Troubleshooting
Windows mapped network disk is not working
We encourage you not to use networking (NAS or Samba) for storing the repository, because network issues will affect the repository; we consider it a dangerous configuration.
It seems there are restrictions when using a network drive (mapped with the "net use" command) and the application running as a service. To solve it, it is necessary to create a link between the UNC path and the file system.
MKLINK /D C:\okm-repository \\192.168.1.36\eDocuments\okm-repository
In most cases it will be necessary to use a standard user to run the OpenKM service instead of the default account. Take a look at the OpenKM Windows service configuration to change the default "Local system user" to your own.