序列生成器在中止时的行为方式?
如果SL.NO 1到50从序列生成器加载到目标表并突然工作流程中止,在下一次运行期间什么是当前值? 1或51?
答案 0 :(得分:0)
如果取决于序列生成器转换是否可重用,以及是否配置了缓存值的数量。
如果它是不可重用的并且您没有使用缓存值的数量,则它将从1开始,因为由于致命错误,在会话结束时,IS无法使用最终当前值更新存储库加一。
如果它不可重复使用,但您使用的缓存值数为100,那么它将从101开始。
如果它是可重用的并且缓存值的数量是100,那么它仍然会像上面的场景#2一样。
当使用缓存值的数量时,选项IS将绘制配置的数字(在我们的示例中为100)并在会话开始时更新存储库。
**不可重用的Vs可重复使用**
假设您有一个由两个不同的映射加载的表,并且您正在使用序列生成器来加载此表的键。 如果使用不可重用的序列生成器并且并行运行这些映射,则会遇到密钥争用。为什么?因为对于不可重复使用的序列生成器,IS(集成服务)以repo中保存的值开始,并且在会话结束时使用下一个可用值更新repo。 当您使用不可重用和多个缓存值(例如设置为100)的组合时,IS将从repo中保存的值开始,并为此会话保留或缓存100个值,并更新repo的下一个可用值。如果在会话中仅使用30,则丢弃剩余的70。这意味着永远不会使用70个键值。如果所有100都用完了,那么IS再次访问repo。
在可重用转换的情况下,IS要求您配置缓存值的数量。
可重用和不可重用之间的另一个主要区别是您无法重置可重用转换的序列。