下面這種現象在項目測試階段多次出現。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中是否還有對應參數?
亦或是否還有其他原因造成這種現象。尚待調查。