[jboss-dev] EJB 3.1 @Asynchronous Support in M4

Andrew Lee Rubinger andrew.rubinger at redhat.com
Tue Jul 20 00:20:44 EDT 2010


Update on the @Asynchronous support for AS 6.0.0.M4:

Last week we made a design change in the asynchronous component of EJB3 
to move to client-side interceptors instead of server-side.  The reason was:

1) For the server to push the result to the client, we'd need 
bidirectional communication (ie. R2 bisocket impl) of some type, which 
is bound to not play nicely with firewalls
2) If the client were to poll the server for results, we'd be making a 
result store (which is a memory leak by design unless we implemented 
some serialization or expiry policy, added complexity).

The unit tests for the client-side async model have been working fine, 
as have the integration tests in the AS testsuite.

I have, however, made an Embedded test to reliably ensure that 
@Asynchronous invocations do indeed occur in a separate Thread.  What 
I've discovered is that for @Remote business interfaces, all is firing 
as expected.  In @Local business interfaces however, this is not the case.

I've discovered the root of this is because EJB local proxies do not 
have client-side interceptors at all.  I'm halfway through patching the 
impl to support this notion.

For M4 launch we can:

1) Continue along and provide @Asynchronous support for remote business 
interfaces only
2) Get the proper fixes into the EJB3 proxy mechanism to support 
client-side interception

Aside from this issue, EJB3 team is go for M4 (Jaikiran's components 
were integrated today).

I'm on #jboss-dev tomorrow to discuss.

S,
ALR


More information about the jboss-development mailing list