-
Bug
-
Resolution: Done
-
Critical
-
JBossAS-5.0.0.Beta2, JBossAS-4.2.2.GA
-
None
-
Medium
UnifiedInvokerHAProxy.invoke() only calls invocationHasReachedAServer(Invocation invocation)
if GenericClusteringException is received and the exception is not GenericClusteringException.COMPLETED_NO
This is not correct because invocationHasReachedAServer(Invocation invocation) needs to be called on
successful returns as well. If we don't, the code never remembers that a call within a transaction was
successful and therefore, never adds the potential transaction (with JBAS-4455, this will transaction propagation context)
associated with the call to the failover map authorisations.
Example:
- ok call 1 within tx1
- ok call 2 within tx1
- ok call 3 within tx1
- fail call 4 with GenericClusteringException.COMPLETED_NO
None of the successfull calls updated the map, so when the 4 call occurs, txContextAllowsFailover(invocation) is called, but
the map is empty, so would allow failover when it shouldn't. A transaction reached the server already in any of the previous
calls associated with that transaction.
JRMPInvokerProxyHA does not have this issue.
- blocks
-
JBAS-4455 LoadBalancePolicy that tries to pin all requests associated with a tx to one server
- Closed
-
JBPAPP-410 Transaction failover authorisation is broken within UnifiedInvokerHAProxy
- Resolved
- relates to
-
JBAS-4963 invocationHasReachedAServer calls within exception handling vary from UnifiedInvokerHAProxy to JRMPInvokerProxyHA
- Closed