[jbosscache-dev] JBoss Cache weakness handling heuristic transaction outcomes - [Fwd: [Fwd: New case comment notification. Case Number 00017677]]

Jonathan Halliday jonathan.halliday at redhat.com
Fri Aug 24 10:29:34 EDT 2007


Yep that looks good.

Jonathan.

Manik Surtani wrote:
> Jonathan,
> 
> If you reckon this works, let me know and I'll go ahead and confirm the 
> fix.  It is checked in to SVN:
> 
>     http://anonsvn.jboss.org/repos/jbosscache/core/branches/1.4.0-GA/
>     http://anonsvn.jboss.org/repos/jbosscache/core/branches/1.4.0-GA/tests/functional/org/jboss/cache/transaction/StatusUnknownTest.java 
> 
>     http://anonsvn.jboss.org/repos/jbosscache/core/branches/1.4.0-GA/src/org/jboss/cache/interceptors/TxInterceptor.java    
> 
> 
> Cheers,
> Manik
> 
> 
> On 23 Aug 2007, at 17:51, Manik Surtani wrote:
> 
>> Ok, so here is the fix I propose.
>>
>> Index: TxInterceptor.java
>> ===================================================================
>> --- TxInterceptor.java  (revision 4310)
>> +++ TxInterceptor.java  (revision 4311)
>> @@ -1076,7 +1076,8 @@
>>                          runCommitPhase(gtx, tx, modifications, 
>> onePhaseCommit);
>>                          log.debug("Finished commit phase");
>>                          break;
>> -
>> +                    case Status.STATUS_UNKNOWN:
>> +                       log.warn("Received JTA STATUS_UNKNOWN in 
>> afterCompletion()!  XA resources may not be in sync.  The app should 
>> manually clean up resources at this point.");
>>                      case Status.STATUS_MARKED_ROLLBACK:
>>                      case Status.STATUS_ROLLEDBACK:
>>                          log.debug("Running rollback phase");
>>
>> Log a warning and then treat as a rollback.
>>
>> Does this make sense?
>>
>>
>> On 22 Aug 2007, at 12:00, Manik Surtani wrote:
>>
>>> Sure.  I suspect they would already deal with this in such a manner 
>>> anyway, given that this is how Hibernate deals with STATUS_UNKNOWN.
>>>
>>>
>>> On 22 Aug 2007, at 11:33, Jonathan Halliday wrote:
>>>
>>>>
>>>> The client app will actually get a heuristic exception in response 
>>>> to its commit call and should do cleanup in the exception handler. 
>>>> However, that's not always going to be user code, it may be e.g. the 
>>>> app server's EJB container in the case of CMT. Hence if you go down 
>>>> this route, which I agree is probably the best approach, other parts 
>>>> of the app server may need to be aware of the issues.
>>>>
>>>> Jonathan.
>>>>
>>>> Manik Surtani wrote:
>>>>> +1.  So the controlling app - which would typically be a 
>>>>> participant in the tx anyway - would react to a STATUS_UNKNOWN by 
>>>>> clearing the cache of the nodes involved.  The cache itself just 
>>>>> treats STATUS_UNKNOWN as a rollback.
>>>>> On 21 Aug 2007, at 19:01, Jason T. Greene wrote:
>>>>>> Manik Surtani wrote:
>>>>>>> Ok, I just spoke to Steve @ Hibernate on how Hibernate deals with 
>>>>>>> this situation.  From an IM conversation:
>>>>>>> "that is deemed a failed transaction
>>>>>>> anything other than committed"
>>>>>>> So Hibernate rolls back STATUS_UNKNOWN as well.  I think this is 
>>>>>>> therefore a safe default.
>>>>>>> Is there a good reason to try and purge the nodes in such a 
>>>>>>> case?  Or just stick with the default above?
>>>>>>
>>>>>> I think this makes more sense for the cache controlling 
>>>>>> application to be responsible for removing data. If you look at 
>>>>>> the hibernate case it does stuff outside the realm of the tx 
>>>>>> boundary anyway (putForExternalRead). So even if we did auto 
>>>>>> purge, it's not guaranteed that we are purging the correct data.
>>>>>>
>>>>>> -- 
>>>>>> Jason T. Greene
>>>>>> Lead, POJO Cache
>>>>>> JBoss, a division of Red Hat
>>>>> -- 
>>>>> Manik Surtani
>>>>> Lead, JBoss Cache
>>>>> JBoss, a division of Red Hat
>>>>> _______________________________________________
>>>>> jbosscache-dev mailing list
>>>>> jbosscache-dev at lists.jboss.org
>>>>> https://lists.jboss.org/mailman/listinfo/jbosscache-dev
>>>>
>>>>
>>>> -- 
>>>> ------------------------------------------------------------
>>>> Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod 
>>>> Street, Windsor, Berkshire, SI4 1TE, United Kingdom.
>>>> Registered in UK and Wales under Company Registration No. 3798903  
>>>> Directors: Michael Cunningham (USA), Charlie Peters (USA) and David 
>>>> Owens (Ireland)
>>>
>>> -- 
>>> Manik Surtani
>>>
>>> Lead, JBoss Cache
>>> JBoss, a division of Red Hat
>>>
>>>
>>>
>>> _______________________________________________
>>> jbosscache-dev mailing list
>>> jbosscache-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/jbosscache-dev
>>
>> -- 
>> Manik Surtani
>>
>> Lead, JBoss Cache
>> JBoss, a division of Red Hat
>>
>>
>>
> 
> -- 
> Manik Surtani
> 
> Lead, JBoss Cache
> JBoss, a division of Red Hat
> 
> 
> 


-- 
------------------------------------------------------------
Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 
Peascod Street, Windsor, Berkshire, SI4 1TE, United Kingdom.
Registered in UK and Wales under Company Registration No. 
3798903  Directors: Michael Cunningham (USA), Charlie Peters 
(USA) and David Owens (Ireland)



More information about the jbosscache-dev mailing list