Сломанная последовательность Oracle - PullRequest
1 голос
/ 05 августа 2009

Я использую EJB3, JBoss AS 4.2.1 и Oracle 10g. Дело в том, что каждый раз, когда я внедряю в AS, последовательность нарушается. Пример: когда я смотрю на последовательность от жабы, ее последнее значение составляет 41, но фактический идентификатор, который установлен для новой записи, равен 1050. У вас есть идея или известная ошибка по этому вопросу. Спасибо.

Ответы [ 3 ]

4 голосов
/ 05 августа 2009

Последовательности не являются свободными! Это не ошибка.

См .: http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:513022131111

1 голос
/ 05 августа 2009

Из памяти Oracle кэширует порядковые номера для более быстрого доступа, отсюда и разрыв. Ожидаемое поведение.

Вы можете выполнить команду ALTER SEQUENCE, чтобы сбросить счетчик до правильного значения.

0 голосов
/ 14 августа 2009

Спасибо обоим за ваши ответы. Моя проблема была вызвана из-за размера по умолчанию для моих сущностей. Значение по умолчанию для allocSize равно 50. То есть, я полагаю, приложение jboss запрашивает oracle db каждые 50 созданий сущностей. Значение кэша последовательностей в оракуле равно 20. Это означает, что когда я вставляю 1000 записей в базу данных, последовательность увеличивает ее nextVal 20.

...