Среда распределенного сервера веб-логики, использующая ту же базу данных и схему DB2, но получающая разные значения последовательности для объекта OpenJPA.

Я использую распределенную серверную среду с серверами Weblogic 12, настроенными на 2 разных хостах. Два хоста указывают на одну и ту же схему базы данных DB2. На обоих серверах развернуто одно и то же приложение EAR. Я использую OpenJPA 1.2 для сопоставления класса с определенной таблицей базы данных. Для объекта я определил GenerationType.SEQUENCE, сопоставленный с соответствующим именем последовательности в базе данных.

@Entity
@Table(name="ART", uniqueConstraints=@Unique(columnNames="TITLE"))
@SequenceGenerator(name="ArticleSeq", sequenceName="ART_SEQ", initialValue=1, 
allocationSize=1)
public class Article {

@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="ArticleSeq") 
private long id;

...
}

Значение последовательности «ART_SEQ» в базе данных в настоящее время равно 150. Все запросы, которые обрабатываются на сервере A, получают правильное следующее значение для последовательности, то есть 151. Но запросы, которые обрабатываются на сервере B, получают следующее значение. для последовательности, начинающейся с 1.

Я не использую OpenJPA DateCache. Также я читал, что только начиная с OpenJPA 2.2.0 значения последовательности кэшируются в памяти jvm.

Что может быть причиной того, что на сервере B все вставки в БД используют значение последовательности, начинающееся с 1, которое не удается вставить из-за нарушения ограничений?


person sunny_inw    schedule 15.05.2015    source источник
comment
Вы пытались перезапустить сервер B? Возможно, он работает уже давно и хранит старую (и уже недействительную) партию ключей.   -  person Rick    schedule 15.05.2015
comment
Оба сервера были настроены за 2 недели до этого. Серверы A и B были перезапущены на этой неделе после повторного развертывания приложений.   -  person sunny_inw    schedule 16.05.2015


Ответы (1)


Проблема была решена после перезапуска сервера B.

person sunny_inw    schedule 11.07.2015