Как ведет себя генератор последовательностей, когда он прерывается?

Как ведет себя генератор последовательностей, когда он прерывается?

Если SL.NO с 1 по 50 загружается в таблицу Target из генератора последовательностей и внезапно рабочий процесс прерывается, во время следующего запуска какое будет текущее значение? Либо 1, либо 51?

1 ответ

Решение

Если зависит от того, можно ли повторно использовать преобразователь генератора последовательности или нет, а также от того, настроено ли количество кэшированных значений.

Если он не предназначен для многократного использования и вы не используете число кэшированных значений, он будет начинаться с 1, поскольку из-за фатальной ошибки в конце сеанса IS не смог обновить хранилище с окончательным текущим значением плюс единица.

Если он не предназначен для повторного использования, но вы используете число кэшированных значений как 100, то оно начнется со 101 далее.

Если его можно использовать повторно и число кэшируемых значений равно 100, то он все равно будет вести себя так же, как в сценарии № 2 выше.

При использовании числа кэшированных значений опция IS рисует настроенное число (в нашем примере 100) и обновляет репозиторий в начале сеанса.

** Одноразовые против Многоразовых **

Скажем, у вас есть таблица, которая загружается двумя различными сопоставлениями, и вы используете генератор последовательности для загрузки ключей для этой таблицы. Если вы используете одноразовый генератор последовательностей и запускаете эти сопоставления параллельно, вы столкнетесь с конфликтом ключей. Зачем? Потому что для одноразового генератора последовательностей IS (служба интеграции) начинается со значения, сохраненного в репо, и в конце сеанса обновляет репо следующим доступным значением.
Когда вы используете комбинацию одноразовых и количества кэшированных значений (скажем, установлено в 100), IS будет начинаться со значения, сохраненного в репо, и резервировать или кэшировать 100 значений для этого сеанса и обновлять следующее доступное значение репо. Если в сессии используется только 30, остальные 70 отбрасываются. Это означает, что 70 ключевых значений никогда не будут использованы. Если все 100 израсходованы, то снова получите доступ к репо.

В случае многократного преобразования IS-мандатов необходимо настроить количество кэшированных значений.

Другое важное различие между многоразовым и одноразовым состоит в том, что вы не можете сбросить последовательность для многоразового преобразования.

Другие вопросы по тегам