Вопрос о кластерной среде на сервере Weblogic

Я использую кластерную среду Weblogic 10g для развертывания своего приложения. В своем приложении я использовал класс Cache.java для ленивой загрузки некоторых свойств из базы данных. Вот как это работает. Кэш. java - это одноэлементный класс с переменными экземпляра в качестве объектов кеша. Например, одна из переменных экземпляра - List 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 и копия кеша. Таким образом, в зависимости от того, на каком сервере выполняется запрос во время выполнения, выполняется вызов базы данных. Я хочу, чтобы на всех серверах был единый кеш. Возможно ли это?

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

Спасибо, Например, одна из переменных экземпляра - List 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 и копия кеша. Таким образом, в зависимости от того, на каком сервере выполняется запрос во время выполнения, выполняется вызов базы данных. Я хочу, чтобы на всех серверах был единый кеш. Возможно ли это?

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

Спасибо, Например, одна из переменных экземпляра - List 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 и копия кеша. Таким образом, в зависимости от того, на каком сервере выполняется запрос во время выполнения, выполняется вызов базы данных. Я хочу, чтобы на всех серверах был единый кеш. Возможно ли это?

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

Спасибо, Этот кеш равен нулю при запуске кластера. Фактические значения находятся в базе данных. Реализация класса приведена ниже:

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 и копия кеша. Таким образом, в зависимости от того, на каком сервере выполняется запрос во время выполнения, выполняется вызов базы данных. Я хочу, чтобы на всех серверах был единый кеш. Возможно ли это?

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

Спасибо, Этот кеш равен нулю при запуске кластера. Фактические значения находятся в базе данных. Реализация класса приведена ниже:

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 и копия кеша. Таким образом, в зависимости от того, на каком сервере выполняется запрос во время выполнения, выполняется вызов базы данных. Я хочу, чтобы на всех серверах был единый кеш. Возможно ли это?

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

Спасибо,

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 и копия кеша. Таким образом, в зависимости от того, на каком сервере выполняется запрос во время выполнения, выполняется вызов базы данных. Я хочу, чтобы на всех серверах был единый кеш. Возможно ли это?

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

Спасибо,

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 и копия кеша. Таким образом, в зависимости от того, на каком сервере выполняется запрос во время выполнения, выполняется вызов базы данных. Я хочу, чтобы на всех серверах был единый кеш. Возможно ли это?

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

Спасибо, Возможно ли это?

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

Спасибо, Возможно ли это?

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

Спасибо, Siddharth

5
задан Sid 19 November 2010 в 10:16
поделиться