[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