JBoss 7.1.1 Final의 server.log 파일에 다음 (잘린) 스택 추적이 표시됩니다.
Caused by: org.postgresql.util.PSQLException:
ERROR: current transaction is aborted, commands ignored until end of
transaction block
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2102)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1835)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:512)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:374)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:302)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_23]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_23]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_23]
at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_23]
at org.postgresql.ds.jdbc23.AbstractJdbc23PooledConnection$StatementHandler.invoke(AbstractJdbc23PooledConnection.java:455)
at $Proxy49.executeUpdate(Unknown Source) at org.jboss.jca.adapters.jdbc.WrappedStatement.executeUpdate(WrappedStatement.java:371)
at org.infinispan.loaders.jdbc.TableManipulation.executeUpdateSql(TableManipulation.java:154) [infinispan-cachestore-jdbc-5.1.2.FINAL.jar:5.1.2.FINAL]
... 154 more
Postgres 로그 파일을 검사하면 다음과 같은 내용이 나타납니다.
STATEMENT: SELECT count(*) FROM ISPN_MIXED_BINARY_TABLE_configCache
ERROR: current transaction is aborted, commands ignored until end of transaction block
STATEMENT: CREATE TABLE ISPN_MIXED_BINARY_TABLE_configCache(ID_COLUMN VARCHAR(255) NOT NULL, DATA_COLUMN BYTEA, TIMESTAMP_COLUMN BIGINT, PRIMARY KEY (ID_COLUMN))
ERROR: relation "ispn_mixed_binary_table_configcache" does not exist at character 22
JBoss 7.1.1 Final과 함께 제공되는 Infinispan을 사용하고 있습니다.
이것이 내가 생각하는 것입니다.
- Infinispan
SELECT count(*)...
은ISPN_MIXED_BINARY_TABLE_configCache
;에 레코드가 있는지 확인하기 위해 명령문 을 실행하려고 시도 합니다 . - 어떤 이유로 Postgres는이 진술을 좋아하지 않습니다.
- Infinispan은이를 무시하고
CREATE TABLE
진술을 진행 합니다. - Postgres Barfs는 여전히 Infinispan이 롤백하지 못한 동일한 트랜잭션이라고 생각하기 때문에이 트랜잭션은 첫 번째
SELECT count(*)...
명령문에서 시작됩니다.
이 오류는 무엇을 의미하며 어떻게 해결할 수 있습니까?
PSQLException: current transaction is aborted...
(25P02
) 및 아마도JPA
또는을 검색하는 것처럼 여기에 온다면Hibernate
. 마지막으로 우리의 (! 좋은) 때문 Logback의 이 공급 사용toString()
: 오류의 원인 및 (나에 의해서가 아니라 accidentially 주목) 잘 삼켜 -overloaded DAO 객체log.info( "bla bla: {}", obj )
생성bla bla: [FAILED toString()]
.log.info( "bla bla: {}", String.valueOf( obj )
그것을 null 안전으로 변경 했지만 삼키지 않고 관련없는 쿼리에서 트랜잭션을 열어 두지 않습니다.