PostgreSQL 8.4 two-phase commit j2ee5 Glassfish
Recently we moved our server from Postgresql 8.3 to Postgresql 8.4, and I faced with a problem with some functionality mulfunction. In glassfish domain log I found errors that transaction could not be rolled back during postinvoke on bean.
The problem was found out when I went to the logs of PostgreSQL:
2010-09-09 17:19:09 EEST ERROR: prepared transactions are disabled
2010-09-09 17:19:09 EEST HINT: Set max_prepared_transactions to a nonzero value.
And really, in Postgresql 8.4 the max_prepared_transactions parameter became 0, meanwhile in 8.3 it was set to 5 by default. So I put the following parameters as it was by default in 8.3 and application back to proper processing:
temp_buffers = 8MB # min 800kB
max_prepared_transactions = 5 # can be 0 or more