Пружинный синхронизированный метод НЕ СИНХРОНИЗИРОВАННЫЙ

Среда:

Apache Tomcat 7Ява 7оракул 11 гзатмениеapache jmeter 2.1весна

зимовать

Я работаю над веб-приложением, которое получает запросы от клиентов и генерирует для них порядковый номер в соответствии с типом запроса, который будет использоваться при дальнейшей обработке. Для генерации уникального порядкового номера у меня есть метод, чтобы получить текущий порядковый номер из DB и увеличить его на 1, а затем обновить эту запись новым порядковым номером.

Функция:

    @Transactional
public synchronized Long generateSequenseNumber(String requestType) {
     //get current sequence number for this requestType
            //increment it by one
            //update it in DB

}

Функция работает нормально, но проблема в том, что когда я вызываю приложение из инструмента стресс-тестирования (JMeter) для отправки 50 запросов в секунду, я получаю исключение ниже:

org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [

хотя функция синхронизирована.

Любое предложение будет полезно. Благодарю.

Ответы на вопрос(2)

Ваш ответ на вопрос