Re: AW: Synchronizing ejb method
Johan Eltes <[email protected]> Fri, 19 May 2006 07:33:14 +0200
| Newsgroups | gmane.comp.java.sun.ejb.general |
|---|---|
| Message-ID | <[email protected]> |
--Apple-Mail-1-58386373
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=ISO-8859-1;
delsp=yes;
format=flowed
I don't think the batch and the clients will get th same session id. =20
That's the whole idea of stateful session beans - that each client =20
gets its own instance and that the instance has affinity for requests =20=
from its owning "user" during the lifetime of the users session. I =20
would recommend application-controlled database state management for =20
locking out one type of client from the other (with stateless session =20=
bean).
/Johan
19 maj 2006 kl. 06.15 skrev Kalra, Ashwani:
> No its not correct.
> Section 7.5.8 , Ejb 2.1
>
> "Clients are not allowed to make concurrent calls to a stateful =20
> session object. If a client-invoked business
> method is in progress on an instance when another client-invoked =20
> call, from the same or different client,
>
> arrives at the same instance of a stateful session bean class, the =20
> container may throw the
>
> java.rmi.RemoteException to the second client[7] if the client is a =20=
> remote client, or the
>
> javax.ejb.EJBException if the client is a local client. This =20
> restriction does not apply to a stateless
>
> session bean because the container routes each request to a =20
> different instance of the session bean
>
> class."
>
> I think there is no standard approach as Andreas said. My problem =20
> is that there is some batch process running and there is jsp page =20
> that can access the same method of ejb which I wanted to avoid. I =20
> think I can use statefull session bean so that at least second =20
> client gets the exception.
>
>
> Thanks
>
> Ashwani
>
>
>
>
> From: A mailing list for Enterprise JavaBeans development =20
> [mailto:[email protected]] On Behalf Of Tareq Ayub
> Sent: Friday, May 19, 2006 7:55 AM
> To: [email protected]
> Subject: Re: AW: Synchronizing ejb method
>
> Refer to the EJB spec. The container will not allow multiple =20
> threads to use the same instance of an SLSB. =46rom the spec - "The =20=
> container must ensure that only one thread can be executing an =20
> instance at any time". Given that, why would you want to =20
> synchronize on an EJB method anyways ? Also, SLSB have no state (no =20=
> instance variables). The same principle applies to SFSB in =20
> addition to the fact an instance is tied to a single client.
>
> Tareq
>
> On May 15, 2006, at 2:40 AM, Andreas Berg wrote:
>
>> You shouldn't. The only reason to synchronize a stateless session =20
>> bean is if your bean is not stateless. Then ask yourself why you =20
>> chose a stateless bean for some stateful purpose.
>>
>> If you really want to synchronize your SLSB you need to think =20
>> about the runtime environment. If all the instances of the SLSB =20
>> run in a single JVM, you can use the standard Java synchronization =20=
>> features inside the bean to synchronize. But this doesn't work =20
>> with a clustered environment. AFAIK there is no standard approach =20
>> to solve this.
>>
>> Kind regards,
>>
>> Andreas.
>>
>>
>> Andreas Berg
>> Zelfi AG
>> Hechtsheimer Stra=DFe 33
>> 55131 Mainz
>> Telefon: 06131-9064850
>> Telefax: 06131-9064853
>> [email protected]
>> http://www.zelfi.com/
>>
>>
>> Von: A mailing list for Enterprise JavaBeans development =20
>> [mailto:[email protected]] Im Auftrag von Kalra, Ashwani
>> Gesendet: Montag, 15. Mai 2006 06:42
>> An: [email protected]
>> Betreff: Synchronizing ejb method
>>
>> Hi,
>> The client of my ejb can be an jsp or standalone java class. How =20
>> can I synchronize access to the SLSB ejb method? I am using ejb2.0 =20=
>> version
>>
>>
>> __________________
>> Regards
>> Ashwani Kalra
>>
>>
>> This message contains information that may be privileged or =20
>> confidential and is the property of the Capgemini Group. It is =20
>> intended only for the person to whom it is addressed. If you are =20
>> not the intended recipient, you are not authorized to read, print, =20=
>> retain, copy, disseminate, distribute, or use this message or any =20
>> part thereof. If you receive this message in error, please notify =20
>> the sender immediately and delete all copies of this message.
>>
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=20
>> =3D=3D=3D=3D=3D=3D To unsubscribe, send email to =
[email protected] and =20
>> include in the body of the message "signoff EJB-INTEREST". For =20
>> general help, send email to [email protected] and include in =20
>> the body of the message "help".
>>
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=20
>> =3D=3D=3D=3D=3D=3D To unsubscribe, send email to =
[email protected] and =20
>> include in the body of the message "signoff EJB-INTEREST". For =20
>> general help, send email to [email protected] and include in =20
>> the body of the message "help".
>>
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=20
> =3D=3D=3D=3D=3D To unsubscribe, send email to [email protected] =
and =20
> include in the body of the message "signoff EJB-INTEREST". For =20
> general help, send email to [email protected] and include in =20
> the body of the message "help".
>
> This message contains information that may be privileged or =20
> confidential and is the property of the Capgemini Group. It is =20
> intended only for the person to whom it is addressed. If you are =20
> not the intended recipient, you are not authorized to read, print, =20
> retain, copy, disseminate, distribute, or use this message or any =20
> part thereof. If you receive this message in error, please notify =20
> the sender immediately and delete all copies of this message.
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=20
> =3D=3D=3D=3D=3D To unsubscribe, send email to [email protected] =
and =20
> include in the body of the message "signoff EJB-INTEREST". For =20
> general help, send email to [email protected] and include in =20
> the body of the message "help".
>
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
To unsubscribe, send email to [email protected] and include in the body
of the message "signoff EJB-INTEREST". For general help, send email to
[email protected] and include in the body of the message "help".
--Apple-Mail-1-58386373
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=ISO-8859-1
<HTML><BODY style=3D"word-wrap: break-word; -khtml-nbsp-mode: space; =
-khtml-line-break: after-white-space; ">I don't think the batch and the =
clients will get th same session id. That's the whole idea of stateful =
session beans - that each client gets its own instance and that the =
instance has affinity for requests from its owning "user" during the =
lifetime of the users session. I would recommend application-controlled =
database state management for locking out one type of client from the =
other (with stateless session bean).<DIV><BR =
class=3D"khtml-block-placeholder"></DIV><DIV>/Johan</DIV><DIV><BR><DIV><DI=
V>19 maj 2006 kl. 06.15 skrev Kalra, Ashwani:</DIV><BR =
class=3D"Apple-interchange-newline"><BLOCKQUOTE type=3D"cite"> <DIV =
dir=3D"ltr" align=3D"left"><SPAN class=3D"734250804-19052006"><FONT =
face=3D"Arial" color=3D"#0000ff" size=3D"2">No its not correct. =
</FONT></SPAN></DIV> <DIV dir=3D"ltr" align=3D"left"><SPAN =
class=3D"734250804-19052006"><FONT face=3D"Arial" color=3D"#0000ff" =
size=3D"2">Section 7.5.8 , Ejb 2.1</FONT></SPAN></DIV> <DIV dir=3D"ltr" =
align=3D"left"><SPAN class=3D"734250804-19052006"><FONT face=3D"Arial" =
color=3D"#0000ff" size=3D"2"></FONT></SPAN>=A0</DIV> <DIV dir=3D"ltr" =
align=3D"left"><SPAN class=3D"734250804-19052006"><FONT size=3D"2"><SPAN =
class=3D"734250804-19052006">"</SPAN>Clients are not allowed to make =
concurrent calls to a <STRONG>stateful session object</STRONG>. If a =
client-invoked business</FONT></SPAN></DIV> <DIV dir=3D"ltr" =
align=3D"left"><P align=3D"left"><FONT size=3D"2">method is in progress =
on an instance when another client-invoked call, from the same or =
different client,</FONT></P><P align=3D"left"><FONT size=3D"2">arrives =
at the same instance of a stateful session bean class, the container may =
throw the</FONT></P><FONT face=3D"Courier" size=3D"2"> </FONT><P =
align=3D"left"><FONT face=3D"Courier" size=3D"2">java.rmi.RemoteException =
</FONT><FONT face=3D"Times New Roman" size=3D"2">to the second =
client</FONT><FONT face=3D"Times New Roman" size=3D"1">[7] </FONT><FONT =
face=3D"Times New Roman" size=3D"2">if the client is a remote client, or =
the</FONT></P><FONT face=3D"Times New Roman" size=3D"2"></FONT><FONT =
face=3D"Courier" size=3D"2"> </FONT><P align=3D"left"><FONT =
face=3D"Courier" size=3D"2">javax.ejb.EJBException </FONT><FONT =
size=3D"2">if the client is a local client. This restriction does not =
apply to a stateless</FONT></P><P align=3D"left"><FONT size=3D"2">session =
bean because the container routes each request to a different instance =
of the session bean</FONT></P><P align=3D"left"><FONT =
size=3D"2">class.<SPAN class=3D"734250804-19052006">"</SPAN></FONT></P><P =
align=3D"left"><SPAN class=3D"734250804-19052006"><FONT size=3D"2"><FONT =
face=3D"Arial" color=3D"#0000ff">I think there is no standard approach =
as Andreas said. My problem is that there is some batch process running =
and there is jsp page that can access the same method of ejb which I =
wanted to avoid</FONT>. <FONT face=3D"Arial" color=3D"#0000ff">I think I =
can use statefull session bean so that at least second client gets the =
exception.</FONT></FONT></SPAN></P><DIV><SPAN =
class=3D"734250804-19052006"><FONT face=3D"Arial" color=3D"#0000ff" =
size=3D"2"></FONT></SPAN>=A0<BR class=3D"khtml-block-placeholder"></DIV><P=
align=3D"left"><SPAN class=3D"734250804-19052006"><FONT face=3D"Arial" =
color=3D"#0000ff" size=3D"2">Thanks</FONT></SPAN></P><P =
align=3D"left"><SPAN class=3D"734250804-19052006"><FONT face=3D"Arial" =
color=3D"#0000ff" size=3D"2">Ashwani</FONT></SPAN></P><DIV><SPAN =
class=3D"734250804-19052006"><FONT face=3D"Arial" color=3D"#0000ff" =
size=3D"2"></FONT></SPAN>=A0<BR =
class=3D"khtml-block-placeholder"></DIV><DIV><FONT size=3D"2"><SPAN =
class=3D"734250804-19052006"></SPAN></FONT>=A0<BR =
class=3D"khtml-block-placeholder"></DIV></DIV><BR> <DIV =
class=3D"OutlookMessageHeader" lang=3D"en-us" dir=3D"ltr" align=3D"left"> =
<HR tabindex=3D"-1"> <FONT face=3D"Tahoma" size=3D"2"><B>From:</B> A =
mailing list for Enterprise JavaBeans development [<A =
href=3D"mailto:[email protected]">mailto:[email protected]=
</A>] <B>On Behalf Of </B>Tareq Ayub<BR><B>Sent:</B> Friday, May 19, =
2006 7:55 AM<BR><B>To:</B> <A =
href=3D"mailto:[email protected]">[email protected]</A><BR=
><B>Subject:</B> Re: AW: Synchronizing ejb method<BR></FONT><BR></DIV> =
<DIV></DIV>Refer to the EJB spec. The container will not allow multiple =
threads to use the same instance of an SLSB. =46rom the spec - "<FONT =
class=3D"Apple-style-span" face=3D"Verdana" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"FONT-SIZE: 13px">The container must =
ensure that only one thread can be executing an instance at any time". =
Given that, why would you want to synchronize on an EJB method anyways ? =
Also, SLSB have no state (no instance variables).=A0 The same principle =
applies to SFSB in addition to the fact an instance is tied to a single =
client.</SPAN></FONT> <DIV><BR class=3D"khtml-block-placeholder"></DIV> =
<DIV><FONT class=3D"Apple-style-span" face=3D"Verdana" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"FONT-SIZE: 13px"></SPAN></FONT>Tareq =
<DIV><FONT class=3D"Apple-style-span" face=3D"Verdana" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"FONT-SIZE: 13px"><BR></SPAN></FONT> =
<DIV> <DIV>On May 15, 2006, at 2:40 AM, Andreas Berg wrote:</DIV><BR =
class=3D"Apple-interchange-newline"> <BLOCKQUOTE type=3D"cite"> <DIV =
dir=3D"ltr" align=3D"left"><FONT face=3D"Arial" color=3D"#0000ff" =
size=3D"2"><SPAN class=3D"265003407-15052006">You shouldn't.=A0The only =
reason=A0to synchronize a stateless session bean is if your bean is =
not stateless. Then ask yourself why you chose a stateless bean for =
some stateful purpose.</SPAN></FONT></DIV> <DIV dir=3D"ltr" =
align=3D"left"><FONT face=3D"Arial" color=3D"#0000ff" size=3D"2"><SPAN =
class=3D"265003407-15052006"></SPAN></FONT>=A0</DIV> <DIV dir=3D"ltr" =
align=3D"left"><FONT face=3D"Arial" color=3D"#0000ff" size=3D"2"><SPAN =
class=3D"265003407-15052006">If you really want to synchronize your SLSB =
you need to think about the runtime environment. If all the instances =
of the SLSB run in a single JVM, you can use the standard Java =
synchronization features inside the bean to synchronize. But this =
doesn't work with a clustered environment. AFAIK there is no standard =
approach to solve this.</SPAN></FONT></DIV> <DIV dir=3D"ltr" =
align=3D"left"><FONT face=3D"Arial" color=3D"#0000ff" size=3D"2"><SPAN =
class=3D"265003407-15052006"></SPAN></FONT>=A0</DIV> <DIV dir=3D"ltr" =
align=3D"left"><FONT face=3D"Arial" color=3D"#0000ff" size=3D"2"><SPAN =
class=3D"265003407-15052006">Kind regards,</SPAN></FONT></DIV> <DIV =
dir=3D"ltr" align=3D"left"><FONT face=3D"Arial" color=3D"#0000ff" =
size=3D"2"><SPAN class=3D"265003407-15052006"></SPAN></FONT>=A0</DIV> =
<DIV dir=3D"ltr" align=3D"left"><FONT face=3D"Arial" color=3D"#0000ff" =
size=3D"2"><SPAN class=3D"265003407-15052006">Andreas.</SPAN></FONT></DIV>=
<DIV>=A0</DIV> <DIV align=3D"left"><FONT face=3D"Arial" =
color=3D"#000000" size=3D"2"></FONT>=A0</DIV> <DIV align=3D"left"><FONT =
face=3D"Arial" color=3D"#808000" size=3D"1">Andreas Berg<BR>Zelfi =
AG<BR>Hechtsheimer Stra=DFe 33<BR>55131 Mainz<BR>Telefon: =
06131-9064850<BR>Telefax:=A006131-9064853</FONT></DIV> <DIV =
align=3D"left"><FONT face=3D"Arial" color=3D"#808000" size=3D"1"><A =
href=3D"mailto:[email protected]">[email protected]</A></FONT></=
DIV> <DIV align=3D"left"><FONT face=3D"Arial" color=3D"#808000" =
size=3D"1"><A =
href=3D"http://www.zelfi.com/">http://www.zelfi.com/</A></FONT></DIV> =
<DIV>=A0</DIV><BR> <DIV class=3D"OutlookMessageHeader" lang=3D"de" =
dir=3D"ltr" align=3D"left"> <HR tabindex=3D"-1"> <FONT face=3D"Tahoma" =
size=3D"2"><B>Von:</B> A mailing list for Enterprise JavaBeans =
development [<A =
href=3D"mailto:[email protected]">mailto:[email protected]=
</A>] <B>Im Auftrag von </B>Kalra, Ashwani<BR><B>Gesendet:</B> Montag, =
15. Mai 2006 06:42<BR><B>An:</B> <A =
href=3D"mailto:[email protected]">[email protected]</A><BR=
><B>Betreff:</B> Synchronizing ejb method<BR></FONT><BR></DIV> =
<DIV></DIV> <DIV><SPAN class=3D"087493904-15052006"><FONT face=3D"Arial" =
size=3D"2">Hi,</FONT></SPAN></DIV> <DIV><SPAN =
class=3D"087493904-15052006"><FONT face=3D"Arial" size=3D"2">The client =
of my ejb can be an jsp or standalone java class.=A0 How can I =
synchronize access to the SLSB ejb method? I am using ejb2.0 =
version</FONT></SPAN></DIV> <DIV><SPAN class=3D"087493904-15052006"><FONT=
face=3D"Arial" size=3D"2"></FONT></SPAN>=A0</DIV> <DIV>=A0</DIV><P><SPAN=
lang=3D"en-us"><FONT face=3D"Arial" =
size=3D"2">__________________</FONT></SPAN> <BR><SPAN =
lang=3D"en-us"><FONT face=3D"Tahoma" size=3D"2">Regards</FONT></SPAN> =
<BR><SPAN lang=3D"en-us"><B><FONT face=3D"Tahoma" size=3D"2">Ashwani =
Kalra</FONT></B></SPAN> <BR></P> <DIV>=A0</DIV> <TABLE> =
<TBODY><TR><TD bgcolor=3D"#ffffff"><FONT color=3D"#000000">This message =
contains information that may be privileged or confidential and =
is the property of the Capgemini Group. It is intended only for =
the person to whom it is addressed. If you are not the intended =
recipient, you are not authorized to read, print, retain, copy, =
disseminate, distribute, or use this message or any part =
thereof. If you receive this message in error, please notify the =
sender immediately and delete all copies of this =
message.<BR><BR></FONT></TD></TR></TBODY></TABLE>=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D To unsubscribe, send =
email to <A =
href=3D"mailto:[email protected]">[email protected]</A> and =
include in the body of the message "signoff EJB-INTEREST". For general =
help, send email to <A =
href=3D"mailto:[email protected]">[email protected]</A> and =
include in the body of the message "help". <DIV><BR =
class=3D"khtml-block-placeholder"></DIV>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D To unsubscribe, send email to =
<A href=3D"mailto:[email protected]">[email protected]</A> and =
include in the body of the message "signoff EJB-INTEREST". For general =
help, send email to <A =
href=3D"mailto:[email protected]">[email protected]</A> and =
include in the body of the message "help". <DIV><BR =
class=3D"khtml-block-placeholder"></DIV></BLOCKQUOTE></DIV><BR></DIV></DIV=
>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
To unsubscribe, send email to <A =
href=3D"mailto:[email protected]">[email protected]</A> and =
include in the body of the message "signoff EJB-INTEREST". For general =
help, send email to <A =
href=3D"mailto:[email protected]">[email protected]</A> and =
include in the body of the message "help". <DIV><BR =
class=3D"khtml-block-placeholder"></DIV> <TABLE><TBODY><TR><TD =
bgcolor=3D"#ffffff"><FONT color=3D"#000000">This message contains =
information that may be privileged or confidential and is the property =
of the Capgemini Group. It is intended only for the person to whom it is =
addressed. If you are not the intended recipient, you are not =
authorized to read, print, retain, copy, disseminate, distribute, or =
use this message or any part thereof. If you receive this message in =
error, please notify the sender immediately and delete all copies of =
this message.<BR> <BR> </FONT></TD></TR></TBODY></TABLE> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
To unsubscribe, send email to <A =
href=3D"mailto:[email protected]">[email protected]</A> and =
include in the body of the message "signoff EJB-INTEREST". For general =
help, send email to <A =
href=3D"mailto:[email protected]">[email protected]</A> and =
include in the body of the message "help". <DIV><BR =
class=3D"khtml-block-placeholder"></DIV></BLOCKQUOTE></DIV><BR></DIV></BOD=
Y></HTML>=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
To unsubscribe, send email to [email protected] and include in the body
of the message "signoff EJB-INTEREST". For general help, send email to
[email protected] and include in the body of the message "help".
<p>
--Apple-Mail-1-58386373--