2015-06-01 6 views
1

В моем сервере Tomcat Java Code I'am, используя следующий код:Запуск 2 серверов Tomcat с использованием разных портов с помощью intern() заблокирует один и тот же идентификатор или нет?

int port = 11111; 
rmiConnectToMainServer(port); 
id = request.getParameter("id").intern(); 
synchronized(id) { 
    //call SaleFunction(); 
} 

и в другом сервере Tomcat Если порт в

int port = 22222; 

Возникает вопрос: Имеет ли String.intern() вызов использовать другой пул строк? или нет?

позволяет сказать, что клиенты, у которых id = 1234, покупают у обоих Tomcat Server одновременно, он будет заблокирован ??? или можно купить без блокировки ???

Пожалуйста, помогите мне, мое приложение сейчас в сети .. И я боюсь Если что-то не так.

Спасибо заранее

ответ

1

одной струны бассейна на JVM, так как ваши экземпляры Tomcat работают в разных виртуальных машинах вашего "id" не будет общими.

+0

Итак, даже если я запускаю оба сервера Tomcat на одном и том же диспетчере серверов с другим или одним и тем же портом, идентификатор не будет заблокирован, потому что я вызываю другой проект Tomcat? –

+0

Вопрос 2: you Если бы я использовал тот же java-сервер (для Tomcat) с Same port, он будет использовать только 1 пул? –

+0

Если работает только один Java-процесс, но у вас как-то есть 2 сервера Tomcat, они будут делиться пулом String. Не то чтобы это возможно. Я рекомендую придумать лучший способ, чем синхронизировать на String, чтобы решить вашу проблему. – Kayaman