[Seasar-user:19535] Re: [S2Config][ コンフィグ設定方法の質問]設定ファイル「app.properties」が、リクエスト毎に(大量に)オープンされてToo many open filesエラーが発生
Yasuo Higa
[E-MAIL ADDRESS DELETED]
2010年 3月 23日 (火) 10:31:38 JST
ひがです。
> 前薗と申します。
>
> 設定ファイル「app.properties」が、大量にオープンされ閉じずに残っている現象が発生しました。
> (Linuxのlsofコマンドで見ると、Tomcatのプロセスが、設定ファイルを大量に開いており、OSのファイルオープン数上限を超えてエラーになります。)
>
> CoolDeploy状態で起動しており、初回画面表示時(例えばログイン時)に、
> 1回だけ、app.propertiesが読み込まれ、その内容が保持されるものと思っていましたが、
> 現状そのようになっておりません。
>
SAStrutsではなく、S2Configの話ではないでしょうか。
一応タイトルを変えておきました。
S2Configのソースをデバッガで追うと原因がわかるのではないかと
思います。
> 以下が関連する設定です。
>
> instance="singleton"にしたり、
> targetURIsを、「login.*」にしたりしましたが、
> 結果同様でした。
>
> 対応方法について、アドバイス頂けると助かります。
> よろしくお願いします。
>
> # 設定値自体の取得は問題ありません。ただ、ファイルオープン数が異常に多いことが問題です。
> # 設定内容の過不足があれば教えてください。
>
> ■app.properties
>
> # common.dir
> common.dir=/var/tmp/
>
>
> ■AppConfig.java
>
> @Config(name = "app")
> public class AppConfig {
>
> @ConfigKey(name = "common.dir", readOnly = true)
> public String dir;
>
>
> ■configCustomize.dicon
>
> <components>
> <component class="org.seasar.config.core.config.impl.ConfigPropertiesWriter"
> instance="prototype"/>
> <component class="org.seasar.config.core.config.impl.ConfigPropertiesReader"
> instance="prototype"/>
> </components>
>
>
> ■config.dicon
>
> <components>
> <include path="s2config-core.dicon"/>
> <component class="org.seasar.config.core.container.impl.ConfigContainerImpl"
> instance="prototype">
> <property name="configName">"app"</property>
> <initMethod name="loadToBeans"/>
> </component>
> </components>
>
> ■web.xml
>
> <filter>
> <filter-name>configFilter</filter-name>
> <filter-class>org.seasar.config.extension.servlet.filter.ConfigFilter</filter-class>
> <init-param>
> <param-name>targetURIs</param-name>
> <param-value>.*</param-value>
> </init-param>
> </filter>
>
> ■実際に設定を使用しているクラス
>
> @Resource
> protected AppConfig appConfig;
>
> @Execute(validator = false)
> public String hoge() throws Exception {
>
> String path = appConfig.dir + fileName;
>
> ■環境
> -------------------------------------------------------------
> □Seasar
> s2-framework-2.4.40.jar
> sa-struts-1.0.4-sp7.jar
>
> □Tomcat
> Server version: Apache Tomcat/6.0.24
> OS Name: Linux
> OS Version: 2.6.18-164.el5
> Architecture: i386
> JVM Version: 1.6.0_18-b07
> JVM Vendor: Sun Microsystems Inc.
>
> □Mysql
> mysql Ver 14.14 Distrib 5.1.41
> -------------------------------------------------------------
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
Seasar-user メーリングリストの案内