2012-08-13 25 views
0

我使用spring portlet mvc作爲我的前端並連接到運行在WAS上的一些遠程EJB。現在,在我指定遠程EJB查找url的portlet配置文件中,由於EJB部署在集羣WAS中,因此我已將url指定爲一個集羣。因此,該網址如下所示:iiop://server1:port,iiop://server2:port如果一個集羣成員出現故障,Spring如何知道如何刷新它的初始上下文

現在爲了節省資源,spring mvc緩存了初始上下文。現在我注意到,只要其中一臺服務器啓動,spring總能夠連接到遠程ejb。

這對我來說很困惑,因爲在查找初始上下文時解決了羣集問題(缺少更好的單詞),並且在羣集成員關閉的情況下,應該有連接異常。那麼Spring如何知道什麼時候應該自動刷新它的初始上下文,因爲舊的上下文已經過時了?

回答

1

我發現,在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> 

這是refresh-home-on-connect-failure="true"告訴Spring容器,如果初始上下文已變得陳舊,那麼就應該刷新連接。只要一個集羣成員處於活動狀態,它就可以工作。

相關問題