[jboss-as7-dev] What does this warning mean? ARJUNA12140: Adding multiple last resources is disallowed. Current resource is com.arjuna.ats.internal.arjuna.abstractrecords.LastResourceRecord at 37f017

Scott Marlow smarlow at redhat.com
Fri Nov 18 17:51:39 EST 2011


My theory for the cause of the second part is looking weak at the 
moment.  Its definitely a bug but doesn't appear to be caused by what I 
thought it was.

If this problem reoccurs with the updated idle-timeout setting change, 
please capture TRACE logs.

I think the ARJUNA12140 error message changes that were discussed on IRC 
would help identify the cause.  Showing the two Resources involved in 
the conflict would give us a piece of information that could be searched 
for in the AS trace logs.  I created JIRA JBTM-960 for requesting that 
change.


On 11/18/2011 06:18 AM, Scott Marlow wrote:
> Its probably a smaller percentage of applications that have large
> transactions but still a very valid use case (e.g. a scheduled batch
> operation that updates all accounts in a database).  Even a smaller
> transaction that is on a machine that is running excessively slow for a
> few minutes, that stretches a thirty second transaction into over sixty
> seconds and could hit the bug.
>
> Thank you for reporting this, it will be good to have the conversion
> error fixed and maybe the idle-timeout handling too.
>
> On 11/18/2011 06:03 AM, Nicklas Karlsson wrote:
>> If the units would be in minutes I think the odds that this bug would
>> surface in the wild would be quite slim unless the usecase would run very
>> long transactions.
>>
>> On Fri, Nov 18, 2011 at 12:40 PM, Scott Marlow<smarlow at redhat.com>   wrote:
>>
>>> I think the other part of the bug, is that connections shouldn't
>>> "idle-timeout" if they are enlisted into a transaction (which I believe
>>> should mean they are eligible for sharing).
>>>
>>> In other words, I believe the following should work:
>>>
>>> 1.  set idle-timeout-minutes=1 (currently this is 1 millisecond but 1
>>> minute should also work).
>>>
>>> 2.  JTA transaction begins.
>>>
>>> 3.  Hibernate gets a non-xa resource X1 (database connection), enlists it
>>> into the transaction.
>>>
>>> 4.  Hibernate inserts a row into a database table using X1.
>>>
>>> 5.  Hibernate closes X1 which shouldn't make X1 eligible for idle-timeout
>>> handling, since it is still enlisted in the transaction.
>>>
>>> 6.  Hibernate gets a non-xa resource, X1 should be returned.  Imagine that
>>> two minutes has elapsed since the transaction started, X1 should not be
>>> idle-timed out.
>>>
>>> 7.  Hibernate inserts another row into a database table using the resource
>>> that should still be X1.  If the resource is not X1, the "ARJUNA12140:
>>> Adding multiple last resources is disallowed" error will occur.
>>>
>>> 8.  The JTA transaction is committed successfully.
>>>
>>> Maybe the IJ "idle-timeout" test case could simulate the above with a test
>>> case that doesn't run always but maybe is run selectively.  I think the
>>> unit test will have to run for over a minute once the conversion error is
>>> fixed (e.g. since idle-timeout-minutes will be treated as minutes instead
>>> of milliseconds).
>>>
>>>
>>> On 11/18/2011 02:18 AM, Nicklas Karlsson wrote:
>>>
>>>> As a test, could you set idle-timeout-minutes=900000 (that should be 15
>>>>
>>>>> minutes).
>>>>>
>>>>> If changing the idle-timeout-minutes setting helps, could you create a
>>>>> jira for that.
>>>>>
>>>>>
>>>>>    Indeed I can't see the issue after that
>>>>
>>>> https://issues.jboss.org/**browse/AS7-2698<https://issues.jboss.org/browse/AS7-2698>filed
>>>>
>>>> ---
>>>> Nik
>>>>
>>>>
>>>
>>
>>
>
> _______________________________________________
> jboss-as7-dev mailing list
> jboss-as7-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev



More information about the jboss-as7-dev mailing list