[ELMA3] Настройки блокировок
Блокировка в памяти
В том случае, если не настроен распределенный кэш (используется только один сервер ELMA), после установки системы ELMA по умолчанию будет включена блокировка в памяти.
При необходимости ее можно настроить вручную. Для этого в файл конфигурации ../<Общая папка с файлами системы ELMA>/UserConfig/configuration.config требуется внести следующие изменения:
1. В секции <configSections> добавить строки:
<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. В конце файла конфигурации добавить строки:
<lock defaultProvider="memlock">
<providers>
<clear/>
<add name="memlock" type="EleWise.ELMA.Locking.MemoryLockService, EleWise.ELMA.SDK"/>
</providers>
</lock>
Блокировка в БД
В том случае, если настроен распределенный кэш (используется более одного сервера ELMA), после установки системы ELMA по умолчанию будет включена блокировка в БД.
При необходимости ее можно настроить вручную. Для этого в файл конфигурации ../<Общая папка с файлами системы ELMA>/UserConfig/configuration.config требуется внести следующие изменения:
1. В секции <configSections> добавить строки:
<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. В конце файла конфигурации добавить строки:
<lock defaultProvider="dblock">
<providers>
<clear/>
<add name="dblock" type="EleWise.ELMA.Locking.DbDistributedLockService, EleWise.ELMA.SDK"/>
</providers>
</lock>
Следует обратить внимание, что данная блокировка также может быть настроена и при использовании одного сервера ELMA.
Блокировка в Redis
Также для хранения блокировок присутствует возможность использовать сетевое журналируемое хранилище данных Redis. Для этого требуется не менее трех не синхронизированных серверов Redis. В данном случае необходимо явно указать это в настройках ELMA.
Для этого необходимо в файл конфигурации ../<Общая папка с файлами системы ELMA>/UserConfig/configuration.config внести следующие изменения:
1. В секции <configSections> добавить строки:
<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. В конце файла конфигурации добавить строки:
<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>
где machine1:6379, machine2:6379 и machine3:6379 – это адреса и порты серверов Redis, а your_redis_password – пароли соответствующих серверов.