[Seasar-user:19533] [SAStruts][コンフィグ設定方法の質問]設定ファイル「app.properties」が、リクエスト毎に(大量に)オープンされてToo many open filesエラーが発生
前薗裕作
[E-MAIL ADDRESS DELETED]
2010年 3月 23日 (火) 03:16:27 JST
前薗と申します。
設定ファイル「app.properties」が、大量にオープンされ閉じずに残っている現象が発生しました。
(Linuxのlsofコマンドで見ると、Tomcatのプロセスが、設定ファイルを大量に開いており、OSのファイルオープン数上限を超えてエラーになります。)
CoolDeploy状態で起動しており、初回画面表示時(例えばログイン時)に、
1回だけ、app.propertiesが読み込まれ、その内容が保持されるものと思っていましたが、
現状そのようになっておりません。
以下が関連する設定です。
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 メーリングリストの案内