Saya melihat stacktrace (terpotong) berikut di file server.log JBoss 7.1.1 Final:
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
Memeriksa file log Postgres mengungkapkan pernyataan berikut:
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
Saya menggunakan Infinispan yang dikirim dengan JBoss 7.1.1 Final, yaitu 5.1.2.Final.
Jadi ini yang saya pikir sedang terjadi:
- Infinispan mencoba menjalankan
SELECT count(*)...pernyataan untuk melihat apakah ada catatan dalamISPN_MIXED_BINARY_TABLE_configCache; - Postgres, untuk beberapa alasan, tidak menyukai pernyataan ini.
- Infinispan mengabaikan ini dan membajak
CREATE TABLEpernyataan itu. - Postgres barfs karena masih menganggap itu transaksi yang sama, yang gagal dibatalkan oleh Infinispan, dan transaksi ini diambil dari
SELECT count(*)...pernyataan pertama .
Apa arti kesalahan ini dan ide bagaimana mengatasinya?

PSQLException: current transaction is aborted...(25P02) dan mungkin jugaJPAatauHibernate. Akhirnya itu karena penggunaan Logback (baik!) Kami yang diumpankan dengantoString()objek DAO yang kelebihan muatan yang menyebabkan kesalahan dan tertelan dengan baik (tapi tidak disadari oleh saya):log.info( "bla bla: {}", obj )diproduksibla bla: [FAILED toString()]. mengubahnyalog.info( "bla bla: {}", String.valueOf( obj )menjadi nol-aman, tetapi tidak menelannya dan dengan demikian membiarkan transaksi terbuka gagal pada kueri yang tidak terkait.