Генераторы идентификаторов
|
Этот раздел перенесён из документации Camunda 7 и в дальнейшем будет доработан с учётом особенностей OpenBPM Engine |
Все персистентные сущности, управляемые процессным движком (экземпляры процессов, задачи, …), имеют уникальные идентификаторы (Ids). Эти идентификаторы однозначно определяют отдельную задачу, экземпляр процесса и т.д. При сохранении этих сущностей в базе данных идентификаторы используются в качестве первичных ключей в соответствующих таблицах базы данных.
«Из коробки» процессный движок предоставляет две реализации генераторов идентификаторов.
Генератор идентификаторов базы данных
Генератор идентификаторов базы данных реализован с использованием генератора последовательностей (sequence generator)
поверх таблицы ACT_GE_PROPERTY.
Этот генератор идентификаторов удобен для отладки и тестирования, так как он создаёт человекочитаемые идентификаторы.
|
Генератор идентификаторов базы данных никогда не должен использоваться в продуктивной среде, так как он не способен обрабатывать высокий уровень конкурентного доступа (concurrency). |
UUID-генератор
StrongUuidGenerator использует генератор UUID, который внутренне опирается на библиотеку
Java UUID Generator (JUG).
|
Всегда используйте |
В OpenBPM Engine Full Distributions
StrongUuidGenerator уже предварительно сконфигурирован и используется процессным движком как генератор идентификаторов
по умолчанию.
Если вы используете встроенную конфигурацию процессного движка (embedded process engine configuration) и настраиваете
процессный движок с помощью Spring, необходимо добавить следующие строки в конфигурацию Spring, чтобы включить
StrongUuidGenerator:
<bean id="processEngineConfiguration" class="io.openbpm.bpm.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration">
[...]
<property name="idGenerator">
<bean class="io.openbpm.bpm.engine.impl.persistence.StrongUuidGenerator" />
</property>
</bean>
Дополнительно требуется следующая зависимость Maven:
<dependency>
<groupId>com.fasterxml.uuid</groupId>
<artifactId>java-uuid-generator</artifactId>
<scope>provided</scope>
<version>3.1.2</version>
</dependency>
Лицензия и атрибуция
Эта документация была создана на базе материала "Camunda 7 Docs" от Camunda, находится под лицензией Creative Commons Attribution-ShareAlike 3.0 Unported License .
Оригинал документации: https://docs.camunda.org