事务管理SpringJDBC

时间:2018-10-02 21:00:18

标签: spring spring-jdbc spring-transactions

我正在使用SprigJDBC。 我有用于从db保存和获取数据的无状态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毫秒),我正在获取异步回调,并且应该通过回调键从db获取数据。

我正在使用100个线程使用Jmeter(以及用于同步和异步回调的模拟服务器)进行压力测试,在少数情况下,我会得到EmptyResultDataAccessException。我认为可以通过事务管理解决问题,但我不知道如何解决。 我试图使用DataSourceTransactionManager并在保存数据之后和获取之前进行提交-这看起来像解决问题。但仍然感谢所有建议和帮助。谢谢!

0 个答案:

没有答案