estoy viendo la StackTrace siguiente (truncado) en el archivo server.log de JBoss 7.1.1 final:PSQLException: transacción actual se aborta, comandos ignorados hasta el final del bloque de transacción
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
Inspección del registro de Postgres archivo revela las siguientes declaraciones:
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
estoy usando el Infinispan envía con JBoss 7.1.1 final, que es 5.1.2.Final.
Así que esto es lo que creo que está pasando:
- Infinispan intenta ejecutar la instrucción
SELECT count(*)...
con el fin de ver si hay algún registros en laISPN_MIXED_BINARY_TABLE_configCache
; - Postgres, por alguna razón, no le gusta esta afirmación.
- Infinispan ignora esto y sigue adelante con la instrucción
CREATE TABLE
. - Postgres barfs porque todavía cree que es la misma transacción, que Infinispan no ha podido revertir, y esta transacción se deriva de la primera declaración
SELECT count(*)...
.
¿Qué significa este error y alguna idea de cómo solucionarlo?
Simplemente si vino aquí como yo buscando la 'PSQLException 'anterior: se cancela la transacción actual ...' ('25P02') y tal vez también' JPA' o 'Hibernate'. Finalmente, fue debido a nuestro (agradable) ** uso de Logback ** alimentado con un objeto DAO 'toString() 'sobrecargado que causó el error y fue muy bien tragado (pero desapercibido accidentalmente por mí):' log.info (" bla bla: {} ", obj)' producido ** 'bla bla: [FAILED toString()]' **. cambiándolo a 'log.info (" bla bla: {} ", String.valueOf (obj)' lo convirtió en nulo seguro, pero no lo tragó y así dejó la transacción abierta en una consulta no relacionada. –