Tim,

What you are describing is known as a distributed diamond.  Becuase
containers can create multiple entity bean instances to represent a single
EJBObject like "John Smith" there can actually be the same issue within the
same server called a local diamond.  The EJB 1.1 spec requires containers to
detect local diamonds and handle them.  Basicallt the container just calls
load on the other instance to bring it back into consistancy.  However a
distributed diamond is not required to be detected, as it is very difficult
to detect.  Some containers did try to detect and manage distributed
diamonds, but it is very rare.  Some tools like CoCoBase use things like
optimistic locking to detect the distributed diamond to some degree.

Bascially, it is an issue you have to take into account.  I would research
3rd party persistance tools like CoCoBase to see where they stand on
distributed diamonds.  If you'd like, I can speak more with Thought Inc
about this subject.  I did speak with them briefly.

I wouldnt however spend a whole bunch of time looking at containers
themselves that provide this feature.

Dave Wolf
Internet Applications Division
Sybase


> -----Original Message-----
> From: A mailing list for Enterprise JavaBeans development
> [mailto:[EMAIL PROTECTED]]On Behalf Of Tim Fox
> Sent: Wednesday, August 23, 2000 6:23 AM
> To: [EMAIL PROTECTED]
> Subject: Question on clustering and scalability
>
>
> I have a question on the maintaining of state consistency and
> scalability on ejb servers.
>
> If I have, say, two ejb servers working in a load-balanced arrangements.
>
> Both servers are serving the same ejb classes.
>
> Client A is editing the Customer entity bean relating to "John Smith" on
> server A.
> The Customer entity bean relating to "John Smith" is also cached in
> memory on server B after a previous update. (I am assuming ejb servers
> cache objects in memory)
>
> Client A commits his changes to the underlying database.
> How does ejb ensure that the in memory cached instance of "John Smith"
> on server B is updated to reflect the changes made by Client A?
> Does it fire off an "update" event to all the servers?
> If so, and we have n servers then I image we have a scalability problem
> of order n-1. (Ie the server has to notify every other server that the
> update has happened)/
>
> If it doesn't then how can I possibly use entity beans in a load
> balanced environment?
>
> TIA
>
> --
> Tim Fox (��o)
>
> Hyperlink interactive
> http://hyperlink.com
> email: [EMAIL PROTECTED]
> phone: +44 (0) 207 240 8121
>
> ==================================================================
> =========
> 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".
>
>

===========================================================================
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".

Reply via email to