jsr345-experts@ejb-spec.java.net

[jsr345-experts] Re: XXX Transactional execution of a PostConstuct or PreDestroy method of a singleton session bean

From: Reza Rahman <reza_rahman_at_lycos.com>
Date: Sat, 10 Sep 2011 00:54:23 -0400

Marina,

 From an end-user perspective, there really isn't much of a back-wards
compatibility issue here I think. Since these methods are currently not
transactional, adding transactions won't break anything. Going the other
way round would have been more of an issue...

Cheers,
Reza


On 9/9/2011 8:47 PM, Marina Vatkina wrote:
> Carlo de Wolf wrote:
>> I'm in favor, but we previously discarded the idea because of
>> backwards compatibility.
>
> Yes. This is my concern as well. Does anybody has a suggestion on how
> to accomplish it without breaking the backwards compatibility?
>>
>> The one thing that requires immediate attention is how we'll deal
>> with SLSB lifecycle callbacks.
>> All instances should be initialized in similar vain or else we loose
>> the SL semantics.
>> (Picture somebody calling the SLSB with NEVER or rolling back a
>> transaction etc.)
>
> Can you please elaborate a bit more?
>
> thanks,
> -marina
>>
>> Carlo
>>
>> On 09/09/2011 01:27 PM, Adam Bien wrote:
>>> +1 for transactional callbacks. Had the issue in @Singletons, which
>>> prefetched the data from DB already.
>>> On 07.09.2011, at 14:40, Pete Muir wrote:
>>>
>>>> In general, it's very useful for a postconstruct/predestroy method
>>>> to be able to be called within a transaction.
>>>>
>>>> For example, consider seeding data into a database (singleton with
>>>> @Startup and an @PreDestroy), logging user access (http session
>>>> scoped SFSB) and so on.
>>>>
>>>> On 7 Sep 2011, at 03:18, Marina Vatkina wrote:
>>>>
>>>>> Experts,
>>>>>
>>>>> Let's clarify transactional support for PostConstuct or PreDestroy
>>>>> methods.
>>>>>
>>>>> a) PostConstuct or PreDestroy methods of a singleton session bean
>>>>> can be executed in a transaction, while other bean types do not
>>>>> seem to allow this. Why would the singleton bean is different from
>>>>> any other bean?
>>>>>
>>>>> b) Why would the transactional attribute be specified differently
>>>>> for a singleton vs. other beans? See e.g. an XXX marker under
>>>>> section "8.3.7 Specification of the Transaction Attributes for a
>>>>> Bean’s Methods" in one of the bullets of the "Transaction
>>>>> attributes are specified for the following methods:" text:
>>>>>
>>>>> <...>
>>>>>
>>>>> For a singleton session bean, the transaction attributes are
>>>>> specified for the PostConstruct and PreDestroy lifecycle callback
>>>>> interceptor methods, if any. In order to specify the transaction
>>>>> attribute for a PostConstuct or PreDestroy method of a singleton
>>>>> session bean, the transaction attribute must be specified for the
>>>>> method(s) on the bean class, rather than for a superclass or
>>>>> PostConstruct or PreDestroy interceptor method."
>>>>>
>>>>> thanks,
>>>>> -marina
>>>>>
>>>>>
>>>>>
>>>
>>
>
>
> -----
> No virus found in this message.
> Checked by AVG - www.avg.com
> Version: 10.0.1392 / Virus Database: 1520/3886 - Release Date: 09/09/11
>
>