Будут ли объекты в дереве 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, находит его пустым, а затем идет положить а значение, но затем прямо в этот момент приходит еще один поток и проверяет его, и он тоже находит значение пустым, поэтому он устанавливает свое собственное значение, поэтому первый поток связывает значение с его именем, а второй возвращает его собственное имя, перезаписывая первый один?
Или есть способ сделать этот поток безопасным?
Это документ Oracle, но я предполагаю, что он применим и для реализации weblogic также http://docs.oracle.com/javase/jndi/tutorial/beyond/misc/sync.html – kosa
oh аккуратный, не понял, что вы можете заблокируйте такой объект контекста. любая идея, если это будет работать так, как это для нескольких серверов в кластерной среде? – Trant
Я думаю, что это не сработает в кластерной среде. Это мое предположение, я никогда не реализовывал такую вещь в кластере. – kosa