Управление транзакциями SpringJDBC - PullRequest
0 голосов
/ 03 октября 2018

Я использую SprigJDBC.У меня есть bean-компонент без сохранения состояния для сохранения и получения данных из базы данных:

@Stateless
@Transactional
public class DBLayerImpl extends DbLayer {

    @Transactional(propagation = Propagation.REQUIRES_NEW)
    public void saveData(Data data){
        getJdbcTemplate().update....
    }

    public Data getDataByKey(Long key) {
        getJdbcTemplate().queryForObject(.....
    }

}

В одном потоке я делаю http-запрос и в результате синхронного ответа на этот запрос я сохраняю в БД.

При очень низком уровнеЗадержка (около 20 миллисекунд) Я получаю асинхронный обратный вызов и должен получить данные из БД по ключу от обратного вызова.

Я делаю стресс-тест с Jmeter (и имитирующим сервером для получения синхронизации и асинхронного обратного вызова), используя 100 потоков, и в некоторых случаях я получаю исключение EmptyResultDataAccessException.Я думаю, что проблему можно решить с помощью управления транзакциями, но я не могу понять, как.Я попытался использовать DataSourceTransactionManager и сделал коммит после сохранения данных и до получения - это похоже на решение проблемы.Но все равно ценю все советы и помощь.Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...