Oracle Broken Sequence

时间:2009-08-05 12:32:09

标签: oracle jboss ejb-3.0 sequence

我正在使用EJB3,JBoss AS 4.2.1和Oracle 10g。事情是每次我部署到AS时序列都被破坏了。例如:当我从toad查看序列时,它的最后一个值是41,但是为新条目设置的实际id是1050。 您对此问题有任何想法或已知错误吗? 感谢。

3 个答案:

答案 0 :(得分:4)

序列不是无间隙!! 这不是一个错误。

请参阅:http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:513022131111

答案 1 :(得分:1)

Oracle从内存中缓存序列号以便更快地访问,因此存在差距。它的预期行为。

您可以执行ALTER SEQUENCE命令将计数器重置为正确的值。

答案 2 :(得分:0)

感谢您的回复。我的问题是由于我的实体的默认allocationSize引起的。 allocationSize的默认值是50.也就是说,我相信,jboss app正在向每个50个实体创建oracle db。 oracle中序列的缓存值为20.这意味着当我将1000条记录插入数据库时​​,序列会增加其nextVal 20。