[seam-dev] Re: Blocked threads

Pete Muir pmuir at bleepbleep.org.uk
Thu Jun 5 15:52:05 EDT 2008


2008/6/5 Christian Bauer <christian.bauer at gmail.com>:
> Also problematic seems to be the ManagedEntityIdentityInterceptor (I think
> we really could use a "no JavaBean clustering" switch that disables it -
> need some input from Gavin who initially wrote it if that is feasible):

100% agreed, I want to implement this as the ability to configure
(enable/disable) default interceptors. Can we detect whether we need
to enable the ManagedEntityIdentityInterceptor somehow (e.g. if aren't
in a cluster we don't need it definitely).

2008/6/5 Christian Bauer <christian.bauer at gmail.com>:
> The option to turn the ManagedEntityIdentityInterceptor off has been closed
> with "we need it for passivation":
>
> http://jira.jboss.com/jira/browse/JBSEAM-468
>
> I'm not sure we need it for a system with a) only javabean components and b)
> in-memory/non-persistent http sessions and c) no clustering/replication of
> http sessions. Which well, would be really a common scenario. :)

Yes, I think you are correct. Gavin, any input?

2008/6/5 Christian Bauer <cbauer at redhat.com>:

> - Removing the TransactionInterceptor which is used with @Transactional by
> the EntityHome/Home/Query components (I don't use it) - and I also question
> why it is used on EntityConverter/EntityLoader. Especially for the
> converter/loaders this is never necessary, they are always called inside a
> JSF request that is wrapped by Seam in transactions and saying "Transaction
> required" again and again is just costing a JNDI lookup.

Agreed. Please open a JIRA issue.

> - Removing the joinTransaction() that is triggered on every
> EntityHome.getInstance(). EntityQuery and EntityIdentity do the same. This
> also doesn't seem to be necessary, at least not for Seams
> ManagedPersistenceContext which enlists the EM with the transaction on
> @Unwrap (and it has a condition that avoids double-joins - hence only one UT
> JNDI lookup per request).

Originally I needed it in the EntityConverter back in 1.1 timeframe,
but this may well have changed (and I altered the architecture a lot
since then) so lets have a JIRA and check.



2008/6/5 Dan Allen <dan.j.allen at gmail.com>:
>> These are the changes I made in Component.java:
>>
>>       if ( getType()==JAVA_BEAN &&
>> beanClassHasAnnotation(Transactional.class))
>>       {
>> -         addInterceptor( new Interceptor( new TransactionInterceptor(),
>> this ) );
>> +         // TODO: PERFORMANCE ISSUE! addInterceptor( new Interceptor( new
>> TransactionInterceptor(), this ) );
>
> I think we should only do this *if* transaction management
> (Seam-managed global trasaction) is being used. If not, then we have
> no transaction at all on the call.
>
> Init.instance().isTransactionManagementEnabled()

Sure, but this is pretty low priority as most people use SMT. JIRA please.


-- 
Pete Muir
http://in.relation.to/Bloggers/Pete
http://www.seamframework.org



More information about the seam-dev mailing list