Is it safe to cache EJB Home lookup result ?
What will happen if one my cluster node is no more working ?
ИМХО, целью ServiceLocator в J2EE является кэширование EJB Home и сокращение дорогостоящих поисков JNDI. Это безопасно в Weblogic, так как по умолчанию EJB Home сбалансирован по нагрузке в кластере, и это автоматически разрешит переход на другой сервер.
Это значение контролируется значением home-is-clusterable
в weblogic-ejb-jar.xml, задокументированным здесь , по умолчанию true
.
What will happen if I install a new version of the EJB without refreshing
the service locator's cache ?
Я сам не пытался сделать такое изменение. Тем не менее, я предполагаю, что в рамках вашей сборки / развертывания ваш класс Service Locator также будет перераспределен вместе с изменением ваших EJB-компонентов - и, таким образом, будет выполнен новый поиск?
Если на ваш клиент не влияют изменения EJB-компонента, то кэшированный EJBHome вернет устаревшую ссылку, когда вы вызовете для него метод. Так что вам придется принудительно обновлять клиента.