序列生成器中止时的行为如何?

How Sequence Generator behave when it is aborted?

序列生成器在中止时如何表现?

如果 SL.NO 1 到 50 从序列生成器加载到目标 table 并且工作流突然中止,那么在下一个 运行 期间当前值是多少? 1 还是 51?

是否取决于序列生成器转换是否可重用,以及您是否配置了缓存值的数量。

如果它是不可重用的,并且您没有使用缓存值的数量,那么它将从 1 开始,因为由于致命错误,在会话结束时,IS 无法使用最终更新存储库当前值加一。

如果它是不可重复使用的,但您使用的缓存值数量为 100,那么它接下来将从 101 开始。

如果它是可重用的并且缓存值的数量是 100,那么它仍然会像上面的方案 #2 一样运行。

当使用缓存值的数量选项时,IS 会绘制配置的数量(在我们的示例中为 100)并在会话开始时更新存储库。

**不可重复使用与可重复使用**

假设您有一个 table 由两个不同的映射加载,并且您正在使用序列生成器为此 table 加载密钥。 如果您使用不可重复使用的序列生成器和 运行 这些并行映射,您将 运行 进入密钥争用。为什么?因为对于不可重用的序列生成器 IS(集成服务)从存储在 repo 中的值开始,并在会话结束时使用下一个可用值更新 repo。
当您使用不可重用值和缓存值数量的组合(比如设置为 100)时,IS 将从存储库中保存的值开始,并为此会话保留或缓存 100 个值,并更新存储库的下一个可用值。如果会话中只使用了 30 个,则丢弃剩余的 70 个。这意味着永远不会使用 70 个键值。如果 100 个都用完了,那么 IS 会再次访问 repo。

在可重用转换的情况下,IS 要求您配置缓存值的数量。

可重用和不可重用之间的另一个主要区别是您不能为可重用转换重置序列。