我正在使用 EJB3、JBoss AS 4.2.1 和 Oracle 10g。问题是每次我部署到 AS 时,序列都会中断。例如:当我查看 toad 的序列时,它的最后一个值为 41,但为新条目设置的实际 id 是 1050。您对此问题有任何想法或已知错误吗?谢谢。
deger
问问题
752 次
3 回答
4
序列不是无间隙的!那不是错误。
请参阅:http ://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:513022131111
于 2009-08-05T12:39:37.107 回答
1
Oracle 从内存中缓存序列号以便更快地访问,因此存在差距。它的预期行为。
您可以执行 ALTER SEQUENCE 命令将计数器重置为正确值。
于 2009-08-05T12:41:08.230 回答
0
谢谢你们的回复。我的问题是由于我的实体的默认 allocationSize 引起的。allocationSize 的默认值为 50。也就是说,我相信 jboss 应用程序会要求 oracle db 每创建 50 个实体。oracle中sequencies的缓存值为20。这意味着当我向数据库中插入1000条记录时,sequence的nextVal增加20。
于 2009-08-14T11:15:18.877 回答