下面这种现象在项目测试阶段多次出现。DB为oracle 10g。未作其他版本验证。
test schema下共有12个sequence.
其中case_seq的定义为:
create sequence CASE_SEQ minvalue 1 maxvalue 99999999 start with 11531 increment by 1 cache 20;
应用程序输出的LOG如下:
-------------------------------------------------------------------------------------------------
行号 输出信息
......
962 ('000000011531','000000000001','0','電話',to_date('2007/04/24
15:38','yyyy/mm/dd hh24:mi'),
......
2304 ('000000011532','000000000001','0','電話',to_date('2007/04/24
15:44','yyyy/mm/dd hh24:mi'),
......
6779 ('000000011551','000000000001','0','電話',to_date('2007/04/24
15:58','yyyy/mm/dd hh24:mi'),
......
--------------------------------------------------------------------------------------------------
*1 取得sequence语句如下:select lpad(case_seq.nextval,12,0) as case_id from dual
*2 省略号代表其他操作,其中包含大量DB操作,包括1次其他sequence调用。但无
对case_seq的调用。
故障原因调查:
根据现象初步估计好像和sequence_cache_entries初始化参数有关。
但调查后发现这个参数从Oracle 8.1.7后就被废弃了。不知10g中是否还有对应参数?
亦或是否还有其他原因造成这种现象。尚待调查。