|
|
|
Stateful session bean, не врубаюсь...
|
|||
|---|---|---|---|
|
#18+
Изучаю EJB, не могу понять одну вещь. Вот есть Stateful session bean, класический пример - корзина покупок. Есть несколько вызовов методов этого бина из разных мест приложения. В каждом случае это lookup по JNDI имени. Какой вызов будет первым, заранее неизвестно. Получается, новый экземпляр будет создан при первом вызове, а затем будет сериализоваться и в последующих вызовах десериализоваться ? Правильно ли это ? А как действовать если мне нужно два разных экземпляра Stateful бина одного класса ? Заранее благодарю за объяснения ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2007, 16:15:34 |
|
||
|
Stateful session bean, не врубаюсь...
|
|||
|---|---|---|---|
|
#18+
не правильно. Он будет падать в passivate когда этого захочет контейнер, к примеру при переполнении кеша... Если тебе надо два разных экземпляра - сделай два разных экземпляра. Достань его home интерфейс и сделай ему create()... Ну и храни его хендлер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2007, 16:43:28 |
|
||
|
Stateful session bean, не врубаюсь...
|
|||
|---|---|---|---|
|
#18+
Если тебе надо два разных экземпляра - сделай два разных экземпляра. Достань его home интерфейс и сделай ему create() Значит, я понимал неверно и тогда вопрос противоположный : если create() от home-интерфейса каждый раз создаёт новый экземпляр, то как достать наоборот предыдущий не создавая новый ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2007, 17:05:27 |
|
||
|
Stateful session bean, не врубаюсь...
|
|||
|---|---|---|---|
|
#18+
кент Если тебе надо два разных экземпляра - сделай два разных экземпляра. Достань его home интерфейс и сделай ему create() Значит, я понимал неверно и тогда вопрос противоположный : если create() от home-интерфейса каждый раз создаёт новый экземпляр, то как достать наоборот предыдущий не создавая новый ? Создать бин один раз и в течении всей сессии хранить ссылку на него. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 09:12:20 |
|
||
|
Stateful session bean, не врубаюсь...
|
|||
|---|---|---|---|
|
#18+
Создать бин один раз и в течении всей сессии хранить ссылку на него. В чём тогда отличие от Stateless ? Его тоже можно запихать в сессию и хранить между запросами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 11:01:12 |
|
||
|
Stateful session bean, не врубаюсь...
|
|||
|---|---|---|---|
|
#18+
сохранить его в сессии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 11:36:24 |
|
||
|
Stateful session bean, не врубаюсь...
|
|||
|---|---|---|---|
|
#18+
кент Создать бин один раз и в течении всей сессии хранить ссылку на него. В чём тогда отличие от Stateless ? Его тоже можно запихать в сессию и хранить между запросами. Stateless каждый раз девственно чист ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 11:39:13 |
|
||
|
Stateful session bean, не врубаюсь...
|
|||
|---|---|---|---|
|
#18+
кент Создать бин один раз и в течении всей сессии хранить ссылку на него. В чём тогда отличие от Stateless ? Его тоже можно запихать в сессию и хранить между запросами. Различеие в том, что в случае с бином stateful, ты можешь быть уверен, что каждый вызов метода бина обрабатывается одним и тем же экземпляром этого бина, а вот в stateless это уже не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 11:43:09 |
|
||
|
Stateful session bean, не врубаюсь...
|
|||
|---|---|---|---|
|
#18+
expp кент Создать бин один раз и в течении всей сессии хранить ссылку на него. В чём тогда отличие от Stateless ? Его тоже можно запихать в сессию и хранить между запросами. Stateless каждый раз девственно чист Ээ нет. Лучше "не гарантируется выполнение с одним и тем же инстансом". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 11:48:30 |
|
||
|
Stateful session bean, не врубаюсь...
|
|||
|---|---|---|---|
|
#18+
Пока не понял. Когда мы сохраняем в сессии (к примеру, сервлета) любой сериализуемый Java-объект, то после извлечения его в последующих вызовах это будет тот самый объект. Со всеми ранее установленными свойствами. Это вообще безотносительно к EJB. Но это сохранение не ссылки, а самого объекта. В J2EE бины вроде как хранятся не в сессии а в контейнере. А доступ к ним идёт через home-интерфейсы получаемые lookup-ом по JNDI. Что же именно вы понимаете под ссылкой, предлагая хранить её в сессии ? Полученный ранее экземпляр remote-(или local-) интерфейса ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 15:02:35 |
|
||
|
Stateful session bean, не врубаюсь...
|
|||
|---|---|---|---|
|
#18+
через remote интерфейс вы вызываете методы proxy, который передает вызов контейнеру, а уж какой бин будет выполнять метод - дело контейнера. даже для statefull не гарантируется, что это будет один и тот же инстанс, хотя тут я могу ошибаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 15:11:30 |
|
||
|
Stateful session bean, не врубаюсь...
|
|||
|---|---|---|---|
|
#18+
умная книга Once a stateful session bean is instantiated and assigned to an EJB object, it is dedicated to that EJB object for its entire life cycle.[*] [*] This is a conceptual model. Some EJB containers may actually use instance swapping with stateful session beans but make it appear as if the same instance is servicing all requests. Conceptually, however, the same stateful session bean instance services all requests. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 15:14:51 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34478694&tid=2145951]: |
0ms |
get settings: |
13ms |
get forum list: |
27ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
66ms |
get topic data: |
21ms |
get forum data: |
5ms |
get page messages: |
91ms |
get tp. blocked users: |
2ms |
| others: | 271ms |
| total: | 508ms |

| 0 / 0 |
