-
Sub-task
-
Resolution: Done
-
Major
-
JBossAS-4.0.2 Final, JBossAS-4.0.3RC1
-
None
-
Compatibility/Configuration
The fix for the constraint violation on JMS_TRANSACTIONS in JBAS-1583 does not always solve the problem.
The problem could still occur if recovery completes succesfully but then JBoss crashes immediately.
In this case, the original problem will still occur on subsequent recovery attempts.
The recovery algorithm needs to be fixed to cater for repeat recovery attempts.
i.e. It should select the maximum transaction id from both JMS_MESSAGES and JMS_TRANSACTIONS
SELECT_MAX_TX = SELECT MAX(TXID) FROM (SELECT MAX(TXID) FROM JMS_TRANSACTIONS UNION SELECT MAX(TXID) FROM JMS_MESSAGES)
Additonally, the root cause of the problem is that JMS_TRANSACTIONS should really be cleared
DELETE FROM JMS_TRANSACTIONS
when recovery is successful.
- is related to
-
JBAS-2261 DELETE_ALL_TX sql in the PersistenceManager.java should be configurable in the same was as the other sql statements.
- Closed
-
JBAS-2425 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT MAX(TXID) AS TXID FROM JMS_TRANSACTIONS UNION SELECT MAX)
- Closed
- relates to
-
JBAS-2424 JMS PersistenceManager: ...Could not resolve uncommited transactions....java.sql.SQLException: Every derived table must have its own alias
- Closed