当app server(tomcat)重启时,oracle db中的Sequence会被缓存大小+ lastnumber值更新。我的应用程序正在使用Hibernate jpa以及此连接池正在appserver中创建。
实施例。假设从dual中选择xxx.nextval给1,2,3 ......等等。缓存大小为100,LAST_NUMBER为101。 现在如果重新启动应用服务器即tomcat,则选择xxx.nextval将开始给出101而LAST_NUMBER将变为201.
答案 0 :(得分:2)
我宁愿说这是发生的事情:假设缓存大小为20.最后一个序列提取提取 NEXTVAL
,但缓存了20个未使用的值。如果他们暂时不使用,他们就会离开共享池并且丢失。您无需重新启动数据库或应用程序服务器;只是发生。
在我看来,你不应该担心它。序列不是为了提供无间隙的数字序列而设计的,但它的值总是唯一的,可以非常快速地检索,可以在多用户环境中使用,... - 所以,一切都没问题。