2013-08-14 2 views
0

Будут ли объекты в дереве JNDI быть потокобезопасными?Является ли поток дерева WebLogic JNDI безопасным?

Скажем, например, я сделал что-то вроде этого:

псевдо-код:

String value = null; 
try { 
    value = context.lookup("someValue") 
} catch (Exception ignored) {} 
if (value == null) { 
    value = "My name is "+currentThread.getName() 
    context.bind("someValue", value); 
} 

Теперь это возможно, что первые проверки резьбы на SomeValue, находит его пустым, а затем идет положить а значение, но затем прямо в этот момент приходит еще один поток и проверяет его, и он тоже находит значение пустым, поэтому он устанавливает свое собственное значение, поэтому первый поток связывает значение с его именем, а второй возвращает его собственное имя, перезаписывая первый один?

Или есть способ сделать этот поток безопасным?

+0

Это документ Oracle, но я предполагаю, что он применим и для реализации weblogic также http://docs.oracle.com/javase/jndi/tutorial/beyond/misc/sync.html – kosa

+0

oh аккуратный, не понял, что вы можете заблокируйте такой объект контекста. любая идея, если это будет работать так, как это для нескольких серверов в кластерной среде? – Trant

+0

Я думаю, что это не сработает в кластерной среде. Это мое предположение, я никогда не реализовывал такую ​​вещь в кластере. – kosa

ответ

0

Когда вы привязываете пользовательский объект (объект, не относящийся к RMI), в дерево JNDI в кластере WebLogic Server, объект реплицируется на всех серверах кластера. Однако, если хост-сервер не работает, пользовательский объект удаляется из дерева JNDI кластера. Пользовательские объекты не реплицируются, если пользовательский объект не связан снова. Вам нужно развязать и переконфигурировать пользовательский объект каждый раз, когда вы хотите распространять изменения, внесенные в пользовательский объект.

Открепление и перемотка являются дорогостоящими (медленными) операциями.

Смотреть подробнее здесь: http://docs.oracle.com/cd/E13222_01/wls/docs81/jndi/jndi.html#475689

Там есть также тонны информации там о безопасности потока с контекстами. Вы захотите заглянуть в шаблон дизайна с одним и тем же кластером.

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