Вопрос по кластерной среде на сервере Weblogic - PullRequest
5 голосов
/ 19 ноября 2010

Я использую кластерную среду Weblogic 10g для развертывания моего приложения.В моем приложении я использовал класс Cache.java для ленивой загрузки некоторых свойств из базы данных.Вот как это работает.Cache.java - это одноэлементный класс с переменными экземпляра в качестве объектов кэша.Например, одна из переменных экземпляра - List<String> STORES_IN_CITY.Этот кэш нулевой, когда кластеры запускаются.Фактические значения находятся в базе данных.Реализация класса приведена ниже:

public class Cache
{
    private List<String> STORES_IN_CITY;

    private static final Cache cache=new Cache();

    public static Cache getCache()
    {
        return cache;
    {

    private Cache()
    {
        // private constructor to have singleton class
    }

    public List<String> getStoresInCity()
    {
        if(null==STORES_IN_CITY || STORES_IN_CITY.size()==0){
             STORES_IN_CITY=getStoresFromDatabase();
        }
        return STORES_IN_CITY;
    }
}

Мой вопрос здесь заключается в том, что существует несколько обращений к базе данных для получения кэша STORES_IN_CITY.Я полагаю, что это связано с кластерной средой, поскольку для каждого сервера существует отдельный экземпляр JVM и копия кэша.Таким образом, в зависимости от того, на каком сервере выполняется запрос во время выполнения, выполняется вызов базы данных.Я хочу иметь один кеш на всех серверах.Возможно ли это?

Надеюсь, я достаточно подробно изложил свой вопрос.Если понадобится какое-либо дальнейшее объяснение, пожалуйста, дайте мне знать.

Спасибо, Сиддхарт

1 Ответ

4 голосов
/ 19 ноября 2010

(...) Я полагаю, что это связано с кластерной средой, поскольку для каждого сервера существует отдельный экземпляр JVM и копия кэша.

Это правильно.

Я хочу иметь один кеш на всех серверах. Возможно ли это?

Вы можете реализовать weblogic.cluster.singleton.SingletonService ( Одноэлементная служба - это служба, работающая на управляемом сервере, которая доступна только одному члену кластера одновременно ).

Ресурсы

Смежный вопрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...