singleton объекты на нескльких вирутальных серверах
От: dalai lamer Россия  
Дата: 02.08.03 18:18
Оценка:
привет все,

у меня маленький ламерский вопрос о сервлетах и сервлет-котнтейнере томкат 4.

в моем сервлете MyServlet делается объект некоего класса MySingleton, который оформлен как singleton, то есть у него есть метод getMySingleton, котором просматривается содержание статичной переменной класса MySingleton, где должна лежать единственная копия этого класса.

этот сервлет должен работать на нескольких виртуальных серверах. то есть он будет deployed несколько раз.

я догадываюсь, что сам объект, который tomcat сделает из моего класса, будет для каждого виртуального веб-сервера свой. даже если tomcat захочет сделать по нескольку объектов класса MyServlet, они будут каждый осведомлены о своем контексте и т.п.

вопрос в том, сколько будет объектов класса MySingleton? Будет ли он один для всего томката, или он будет один свой для каждого сервлета (как мне и надо)?

Правильно ли я думаю, что если для каждого виртуального сервера запускается отдельная JVM, то проблемы мне не будет?

Я собираюсь, однако, настроить, чтобы была одна JVM. как мне разделить MySingleton, чтобы он был у каждого виртуального веб-сервера свой?

dalai
Re: singleton объекты на нескльких вирутальных серверах
От: dalai lamer Россия  
Дата: 03.08.03 10:11
Оценка:
нашел ресурс, и там сказано про какие-то ClassLoaderы.

значит ли это, что singleton объекты будут у кажного webappа свои?
Re: Java
От: iZEN СССР  
Дата: 03.08.03 15:21
Оценка:
Здравствуйте, dalai lamer, Вы писали:
<...>
DL>Я собираюсь, однако, настроить, чтобы была одна JVM. как мне разделить MySingleton, чтобы он был у каждого виртуального веб-сервера свой?

Тогда паттерн Синглетон Вам не нужен. Создавайте по экземпляру в каждом веб-сервере.
Если всё-таки нужен единственный и неповторимый экземляр (даже за пределами одной JVM) — реализуйте интерфейс java.rmi.Remote (RMI) и раздавайте удалённую ссылку направо и налево...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.