Uploaded image for project: 'JBoss Enterprise Application Platform 4 and 5'
  1. JBoss Enterprise Application Platform 4 and 5
  2. JBPAPP-5584

Document - The default max_prepared_transactions setting in PostgreSQL 8.4 denies any XA transactions.

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • EAP_EWP 5.1.1
    • EAP_EWP 5.1.0_CR3
    • Documentation
    • EAP 5.1.0 CR3, Testsuite from EAP branch

    • Documentation (Ref Guide, User Guide, etc.)
    • Hide
      A change to the default value of the max_prepared_transactions datasource property in PostgreSQL versions 8.2 and 8.4 resulted in XA Transactions being denied. An Important admonition was added to Appendix A.7 PostgreSQL of the Administration and Configuration Guide for the XA Datasource example, to highlight the requirement.
      Show
      A change to the default value of the max_prepared_transactions datasource property in PostgreSQL versions 8.2 and 8.4 resulted in XA Transactions being denied. An Important admonition was added to Appendix A.7 PostgreSQL of the Administration and Configuration Guide for the XA Datasource example, to highlight the requirement.
    • Documented as Resolved Issue

      The Recovery Manager seems to have a problem with matching the XARecoveryResource registered for PostgreSQL 8.4 to Xid of a crashed transaction. Because of that some crash recovery tests fail.

      See snippet from the server.log of such failing tests:
      ...
      10:05:07,827 WARN [loggerI18N] [com.arjuna.ats.internal.jta.resources.arjunacore.norecoveryxa] [com.arjuna.ats.internal.jta.resources.arjunacore.norecoveryxa] Could not find new XAResource to use for recovering non-seriali
      zable XAResource < 131075, 27, 25, 49455510248484848484958975249555852995798485750495854100551024848484848495897524955585299579848575049585550 >
      ...

      It looks like the Xids comparison of an in-doubt transaction in XARecoveryModule.getNewXAResource does not work well with PostgreSQL 8.4 datasource. The same for PostgreSQL 8.2 and 8.3 works without any problem.

      This can be reproduced by taking the EAP5.1 branch from svn:
      1) checkout the JBPAPP_5_1 branch
      2) build the EAP
      cd <EAP_checkout_dir>/build; ./build.sh -Dbuild.unsecure=true
      3) build the EAP Testsuite
      cd ../testsuite; ./build.sh
      4) run one of the failed tests for PostgreSQL8.4 (has to be run inside the redhat network)
      ./build.sh tests-ts-crash-recovery -Djbossts.db=psql_8.4 -Djbossts.tstype=jta -Djbossts.tsdemarc=cmt -Djbossts.testcase=prepare_halt -Djbossts.target=crash-tests-single
      5) check server.log in ../build/output/jboss-5.1.0.Branch/server/crashrecovery-jta/log

            istudens@redhat.com Ivo Studensky
            istudens@redhat.com Ivo Studensky
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: