Lock Settings
Memory lock
If the distributed cache is not configured (only one ELMA server is used), the memory lock will be enabled by default after installing ELMA.
You can configure it manually, if necessary. To do so, edit the configuration file ../<ELMA directory>/UserConfig/configuration.config:
1. Add these lines to the <configSections> section:
<section name="lock" type="EleWise.ELMA.Configuration.GenericProviderFeatureSection`1[[EleWise.ELMA.Locking.LockServiceManager, EleWise.ELMA.SDK]], EleWise.ELMA.SDK"/>
<section name="MemoryLockServiceSettings" type="EleWise.ELMA.Locking.MemoryLockServiceSettings, EleWise.ELMA.SDK"/>
2. Add these lines at the end of the configuration file:
<lock defaultProvider="memlock">
<providers>
<clear/>
<add name="dblock" type="EleWise.ELMA.Locking.MemoryLockService, EleWise.ELMA.SDK"/>
</providers>
</lock>
Database lock
If the distributed cache is configured (more than one ELMA server is used), the database lock will be enabled by default after installing ELMA.
You can configure it manually, if necessary. Edit the configuration file ../<ELMA directory>/UserConfig/configuration.config:
1. Add these lines to the <configSections> section:
<section name="lock" type="EleWise.ELMA.Configuration.GenericProviderFeatureSection`1[[EleWise.ELMA.Locking.LockServiceManager, EleWise.ELMA.SDK]], EleWise.ELMA.SDK"/>
<section name="DbDistributedLockServiceSettings" type="EleWise.ELMA.Locking.DbDistributedLockServiceSettings, EleWise.ELMA.SDK"/>
2. Add these lines at the end of the configuration file:
<lock defaultProvider="dblock">
<providers>
<clear/>
<add name="dblock" type="EleWise.ELMA.Locking.DbDistributedLockService, EleWise.ELMA.SDK"/>
</providers>
</lock>
Note that this lock can also be used for one ELMA server.
Redis lock
To store locks, you can also use the Redis network logged data storage. For this, you need at least three non-synchronized Redis servers. In this case, you must explicitly define that in the ELMA settings.
Edit the configuration file ../<ELMA directory>/UserConfig/configuration.config:
1. Add these lines to the <configSections> section:
<section name="lock" type="EleWise.ELMA.Configuration.GenericProviderFeatureSection`1[[EleWise.ELMA.Locking.LockServiceManager, EleWise.ELMA.SDK]], EleWise.ELMA.SDK"/>
<section name="RedisDistributedLockServiceSettings" type="EleWise.ELMA.DistributedLock.Redis.RedisDistributedLockServiceSettings, EleWise.ELMA.DistributedLock.Redis"/>
2. Add these lines at the end of the configuration file:
<lock defaultProvider="redis">
<providers>
<clear/>
<add name="redis" type="EleWise.ELMA.DistributedLock.Redis.RedisDistributedLockService, EleWise.ELMA.DistributedLock.Redis"/>
</providers>
</lock>
<RedisDistributedLockServiceSettings>
<connections>
<add connection="machine1:6379,password=your_redis_password"/>
<add connection="machine2:6379,password=your_redis_password"/>
<add connection="machine3:6379,password=your_redis_password"/>
</connections>
</RedisDistributedLockServiceSettings>
where machine1:6379, machine2:6379 and machine3:6379 – are addresses and ports of Redis servers, and your_redis_password – are passwords to these servers.