1

EJB3、JBoss AS 4.2.1、および Oracle 10g を使用しています。問題は、AS に展開するたびにシーケンスが壊れていることです。例: ヒキガエルのシーケンスを見ていると、最後の値は 41 ですが、新しいエントリに設定されている実際の ID は 1050 です。この問題について何か考えや既知のバグはありますか? ありがとう。

4

3 に答える 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 のデフォルト値は 50 です。つまり、jboss アプリは 50 個のエンティティ作成ごとに oracle db に要求していると思います。オラクルのシーケンスのキャッシュ値は 20 です。これは、データベースに 1000 レコードを挿入すると、シーケンスの nextVal が 20 増加することを意味します。

于 2009-08-14T11:15:18.877 に答える