Changing Collaboration Rooms Documents Store
This blog explains how to create collaboration room template that store all documents in external file server and not in the portal database. The goal is to enable quick backup & restore procedures for system administrators, because now they are required to restore the whole database in order to restore a single document. I will show how to create such a room template, and i hope this feature will be useful for others. The km version I’m using is 6.0.17.
Introduction to Repository Managers
You should consider the different types of repositories. File System Repository manager support only basic read/write actions on files. Other functions like locking documents, creating links, using predefined properties and versions are not supported. CM Repository manager allows to utilize all Content Management functions and they can be set up in various Persistence modes as follows:
- DB all documents, folders and metadata are stored in the database. It is the default mode for collaboration rooms and recommended if there are many write requests.
- DBFS folders and metadata are stored in database, but documents are stored in file system. It’s recommended mode to handle large amounts of data, but requires to backup data in the file system as well as in the database.
- FSDB Metadata is stored in database, folders and documents are stored in file system. All changes in file system are automatically updated in the portal. Off course this synchronization affects performance, but except of that issue it answer all our demands.
Bear in mind that changes to the folder structure in the file system would lead to inconsistent or lost data. You should not allow access on the file system level. Only administrators should work directly in the file system for special mass operations only.
1. Rooms On a File Server share
Create a shared folder on your network directory with enough space with the following subfolders: cm_stores , Versions. Only user sapservice<SID> should have full control permissions on this folder, so that no one can delete files or loose metadata. This folder will store all rooms documents and metadata. The repository manager will add here additional folders, eventually every room gets a new folder with his room id. It can not be changed. When you delete a room its folder won’t be deleted.
2. CM Repository
Create two new CM repository managers for your rooms data. Select System Administration -> System Configuration ->Knowledge Management ->Content Management ->Repository Managers->CM Repository and duplicate room_extension and room_store_cm. Change parameters according to the screenshot in picture 2. you should cahnge name, prefix, persistence mode, repository id, root directory and root directory versions. In example , the last parameter should be your share address in the network directory //orgFileServer/Rooms/Versions. Leave all other entries unchanged. There is no need to restart. Check your new repository managers in the component monitor System Administration -> Monitoring -> KM .
Everything should be green. Check also that the two folder appeared in km content root.
|Picture 2: It is always better to duplicate one of the several pre configured repositories. Change the persistence mode to fsdb.|
3. Configure Extension Store
You need to configure a persistency area for the rooms. Select Content Administration->Collaboration Content->Room Template Administration and choose Configure Extension Store->Collaboration Room Stores In related links area. Duplicate cmDocuments and set the path to the new repository /room_extensions_org/cm_stores/documents. Use a new name with same prefix and change the keys of description and labels so that the storage won’t get the same name. You will need to restart the portal afterwards.
|Picture 3: These stores define pre configured folders in the CM repository, in which the extension creates the sub folders.|
4. Room Template Administration
Edit the template and open extensions tab. Edit the on_create_room extension point for Document entry. (you can add a new configuration entry of the CM room extension, if there is no such entry in your template). Set the Input parameter Store to CmDocumentsFS like in Picture 4. The workspace path should be checked with value private_documents_path. After you click OK button , open Mappings tab to configure parameters mapping. Choose Documents page and find RoomDocuments section. Change entries path and startUri to private_documents_path.
|Picture 4: The output parameter workspace path will be used for the mapping of the iView parameters.|
5. Create a Room
Select Content Administration->Collaboration Content->Room Creation and create a room with your newly created template. Open the room, navigate to the Document page and upload a document. Check its path in Details->settings->Properties->Access Links it should be stored in your new cm repository. Go to your file server and see that a new folder has been created for your new room and the file is stored in it.