Bartosz Borowiec

Bartosz Borowiec Salesforce and Java
backend/integration
developer at Inde...

Temat: Fasada na stateful czy stateles beanie?

Hej,
Zastanawia mnie czy za fasadą opartą na stateles session beanie mozna używać stateful session beana.

______________________ ______________________ ______________
|<<BuissnesDelegate>>| |<<Stateless>> | |<<Stateful>>|
| Delegate | | Facade | | BO |
| | | | | |
---------------------- ---------------------- --------------
| | |
| ---------------------> | |
| | |
| | |
| | ---------------> |
|


Czy sesja po przejsciu przes stateles fasade nie zostanie zagubiona?



konto usunięte

Temat: Fasada na stateful czy stateles beanie?

Obawiam się, że nie ma to sensu.
Beany stateless znajdują się w puli. Przy każdym wywołaniu metody biznesowej fizycznie może je na serwerze obsługiwać inny obiekt beana. Dowiązywanie zależności (@EJB, @Resource) odbywa się przed wywołaniem każdej metody biznesowej(o ile dobrze pamiętam), więc referencja do beana statefull za każdym razem może być inna.
Jeżeli potrzeba Ci przechować stan między wywołaniami wielu obiektów BO to możesz odwrócić kolejność. Facade -> statefull, BO -> Stateless ale trzeba pamiętać by przechowywać w delegacie referencję do statefulla (polecam wzorzec ServiceLocator), ponieważ bean statefull żyje (jest dostępny) tyle ile jego referencja.
Krzysztof K.

Krzysztof K. Experienced Software
Engineer

Temat: Fasada na stateful czy stateles beanie?

Witam koledzy,

Co do @EJB i @Resource to Adam ma racje. Aby dostac ZAWSZE nowego beana (nie z puli tylko utwrzonego) mozna zapodac lookap via JNDI API lub to samo przez EJBContext.lookup(). Przy takim podejsciu mamy pewnosc ze dostaniemy nowiutka instancje (przynajmniej tak mowi specyfikacja).

konto usunięte

Temat: Fasada na stateful czy stateles beanie?

Krzysiek, gdzie można wyszukać w spec. informację, że lookup tworzy zawszę nową instancję beana. Co do beanów statefull, to tak, zgadzam się z tym, ponieważ dla tych beanów nie ma instance pulingu, ale dla stateless wydaje mi się, że mechanizm puli działa dalej.

Pozdrowienia!
Krzysztof K.

Krzysztof K. Experienced Software
Engineer

Temat: Fasada na stateful czy stateles beanie?

Masz racje. Ma sie to tylko do @Statefull i innych "external resources".

"In general, lookups of objects in the JNDI java: namespace are required to return a NEW INSTANCE of the requested object every time. Exceptions are allowed for the following:

* The container knows the object is immutable (for example, objects of type java.lang.String), or knows that the application can't change the state of the object.

* The object is defined to be a singleton, such that only one instance of the object may exist in the JVM.

* The name used for the lookup is defined to return an instance of the object that might be shared. The name java:comp/ORB is such a name.
"

Jak widac punkt 3 mozna podpasowac do puli @Stateless beanow.Krzysztof K. edytował(a) ten post dnia 29.09.09 o godzinie 14:12

Następna dyskusja:

Czy oplaca sie zdawac SCBCD...




Wyślij zaproszenie do