0

Spring ポートレット mvc をフロント エンドとして使用し、WAS で実行されているリモート EJB に接続しています。ここで、リモート EJB ルックアップ URL を指定するポートレットの構成ファイルで、EJB がクラスター化された WAS にデプロイされているため、URL をクラスターとして指定しました。したがって、URL は : のようになりますiiop://server1:port,iiop://server2:port

リソースを節約するために、Spring MVC は初期コンテキストをキャッシュします。サーバーの 1 つが稼働している限り、Spring は常にリモート ejb に接続できることに気付きました。

初期コンテキストのルックアップ時にクラスターが解決され(より適切な単語がないため)、その後クラスターメンバーがダウンした場合、接続例外が発生するため、これは私にとって混乱を招きます。では、古いコンテキストが古くなったために初期コンテキストを自動的に更新する必要がある場合、Spring はどのように判断するのでしょうか?

4

1 に答える 1

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コンテナに伝えるのは. これは、1 つのクラスター メンバーがアクティブである限り、機能する方法です。

于 2012-08-13T16:00:36.120 に答える