spring postgresql事务并行执行错误

时间:2017-03-22 19:31:54

标签: spring postgresql spring-security spring-security-oauth2

我已使用spring-security-oauth创建sample application。当多个线程尝试作为同一用户进行身份验证时,首先在加载时创建access_token存在问题。这是通过this commit修复的。这解决了H2 / Oracle数据库的问题。不幸的是,这个修复程序不适用于postgre数据库,我不知道如何正确设置事务(我已经尝试了@Transactional上的所有隔离但是没有用)。如果有人可以指点我的某些文档/博客或者告诉我如何在postgresql中调整那些很棒的事务。

由于

修改 Isolation.DEFAULTIsolation.READ_COMMITTEDIsolation.READ_UNCOMMITTED 我得到了这个例外:

{
  "error" : "server_error",
  "error_description" : "PreparedStatementCallback; uncategorized SQLException for SQL [select token_id, token from oauth_access_token where authentication_id = ?]; SQL state [25P02]; error code [0]; ERROR: current transaction is aborted, commands ignored until end of transaction block; nested exception is org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block"
}

奇怪的是,对于Isolation.REPEATABLE_READIsolation.SERIALIZABLE,我得到了这个:

{
  "error" : "unsupported_grant_type",
  "error_description" : "Unsupported grant type: password"
}

我真的不了解postgresql中的事务传播和配置:(

0 个答案:

没有答案