You need to configure the Studio not only to use the in-memory persistence layer but also to be the only User Changes web application.
The following Maven dependencies have to be available in the studio-webapp
module.
<dependency> <groupId>com.coremedia.ui</groupId> <artifactId>collaboration-memory-rest-component</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>controlroom-memory-plugin</artifactId> <version>${project.version}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.coremedia.cms</groupId> <artifactId>cap-client-list-memory</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>com.coremedia.cms</groupId> <artifactId>notification-elastic</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>com.coremedia.cms</groupId> <artifactId>project-elastic</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>com.coremedia.ui.collaboration</groupId> <artifactId>user-changes-component</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>com.coremedia.ui.collaboration</groupId> <artifactId>workflow-notifications-component</artifactId> <scope>runtime</scope> </dependency>
Add the following property to Studio's application.properties
.
models.createIndexes=false
Add the following customizer to the beans
section of the application.xml
of the studio-webapp
module.
<customize:append id="uapiMemoryCapListConnector" bean="connectionParameters"> <map> <entry key="usecaplist" value="true"/> <entry key="caplist" value="com.coremedia.cotopaxi.list.memory.MemoryCapListConnectorFactory"/> </map> </customize:append>
Also, configure your Studio server with the following properties, so that the in-memory store is read / written from the given file upon application context startup / shutdown of Studio. To limit memory usage of the in-memory store, the size per collection map is configured. To be robust against data loss, the in-memory store can be persisted periodically in a given interval.
Property | Default | Description |
---|---|---|
memory.collection.serialization.file |
null |
In-memory store persistence file name. |
memory.collection.size |
5000 |
Number of in-memory map entries per collection. |
memory.collection.serialization.interval |
360000 |
Interval in ms in which the in-memory store is persisted periodically to the configured file. If 0, periodic persistence is disabled. |
memory.collection.selfclearing.names |
notifications |
A comma separated list of collection names, which will be periodically deleted and re-created, when memory.collection.size is reached. Fast growing collections, which do not contain critical data should be configured as self-clearing collections, e.g. notifications. |
Table 3.4. Studio Configuration Properties for In-Memory Store