> From: Luc Dewavrin [mailto:[EMAIL PROTECTED]]
> Suite aux discussions sur les locks sur EJB, > je me posais une question concernant la concurrence sur les > EJB entit�s. > > Admettons que l'on ne soit pas dans un contexte > transactionnel, si 2 ejb sessions stateless r�cup�rent le > home stub du JNDI et font appel � la m�thode findbyPrimaryKey > en passant la m�me valeur, que se passe-t-il ensuite lors de > l'appel des m�thodes sur le remote object? > > - 2 instances d'EJB entit�s avec la m�me primary key coexistent ? Si ton application n'est pas en cluster, un seul EJB Object sera cree. > - Les clients poss�dent tous les deux la m�me r�f�rence vers > le remote object et le remote object est associ� � un unique > EJB. Les appels aux m�thodes sont execut�es dans des threads > diff�rents? Ils sont serialises sur l'EJB Object, la norme l'impose. > Je suppose que la gestion de la concurrence est impl�ment�e > diff�remment suivant le conteneur d'EJB, parce qu'apparamment > les sp�cifications J2EE sont vagues sur ce point. Au contraire, la norme est tres claire : pas de reentrance. > De plus, je me demandais comment un client indique au > conteneur qu'il n' a plus besoin de de travailler avec l'EJB > entit� ( pour minimiser les cas de concurrence ). > - Il affecte la valeur Null au remote stub et coupe les > communications r�seaux du stub? > - Le garbage collector s'en occupe? Tu peux le faire soit explicitement soit en ne faisant rien, auquel cas la "lease" RMI finira par causer la destruction de l'EJB Object. Ce qui se passe ensuite : l'EJB Object est dissocie' de sa Primary Key et redevient disponible pour un autre Entity bean. -- C�dric
