Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Caching 如果一个集群成员宕机,spring如何知道刷新初始上下文_Caching_Spring Mvc_Ejb 3.0_Lookup_Remoteobject - Fatal编程技术网

Caching 如果一个集群成员宕机,spring如何知道刷新初始上下文

Caching 如果一个集群成员宕机,spring如何知道刷新初始上下文,caching,spring-mvc,ejb-3.0,lookup,remoteobject,Caching,Spring Mvc,Ejb 3.0,Lookup,Remoteobject,我使用SpringPortletMVC作为前端,并连接到WAS上运行的远程EJB。现在,在我指定远程EJB查找url的portlet配置文件中,我已经将url指定为集群,因为EJB部署在集群WAS中。所以url看起来像:iiop://server1:port,iiop://server2:port 现在为了节省资源,SpringMVC缓存初始上下文。现在我注意到,只要其中一个服务器启动,spring总是能够连接到远程ejb 这让我感到困惑,因为集群在查找初始上下文时被解析(因为没有更好的词),之

我使用SpringPortletMVC作为前端,并连接到WAS上运行的远程EJB。现在,在我指定远程EJB查找url的portlet配置文件中,我已经将url指定为集群,因为EJB部署在集群WAS中。所以url看起来像:
iiop://server1:port,iiop://server2:port

现在为了节省资源,SpringMVC缓存初始上下文。现在我注意到,只要其中一个服务器启动,spring总是能够连接到远程ejb


这让我感到困惑,因为集群在查找初始上下文时被解析(因为没有更好的词),之后如果集群成员宕机,应该会出现连接异常。那么,spring如何知道何时应该自动刷新其初始上下文,因为旧上下文已过时?

我发现在applicationContext.xml文件中,有这样一个声明:

<jee:remote-slsb id="remoteService" jndi-name="com.business.ejb.ServiceSLRemote" business-interface="com.business.ejb.ServiceSLRemote" cache-home="true" lookup-home-on-startup="false" resource-ref="false" refresh-home-on-connect-failure="true">
<jee:environment>
java.naming.factory.initial=${JAVA.NAMING.FACTORY.INITIAL}
java.naming.provider.url=${JAVA.NAMING.PROVIDER.URL}
</jee:environment>
</jee:remote-slsb>

java.naming.factory.initial=${java.naming.factory.initial}
java.naming.provider.url=${java.naming.provider.url}
正是连接失败时刷新主页=“true”告诉spring容器,如果初始上下文已过时,则应该刷新连接。这就是只要一个集群成员处于活动状态,它就可以工作的方式