Shinsuke Sugaya
shins****@yahoo*****
2010年 10月 29日 (金) 07:57:47 JST
菅谷です。 そのマルチコア対応は fess.war と Solr を分散して 配備する構成を想定していたので、 1 つの Tomcat で 複数の Fess をマルチコアの Solr で動くことは想定して いませんでした。 実際に 3.1 系で確認してみたのですが、いくつかの 変数が競合するため、うまく設定できなかったので、 4.0 系では修正しました。4.0系であればfess2をtaroで 使う場合は以下のようになります。 $ cp -r solr/core1 solr/core2 $ cp -r webapps/fess webapps/fess2 core2 を追加する $ vi solr/solr.xml <?xml version="1.0" encoding="UTF-8"?> <solr persistent="true" sharedLib="lib"> <cores adminPath="/admin/cores"> <core name="core1" instanceDir="core1" /> <core name="core2" instanceDir="core2" /> </cores> </solr> fess2用にtaroユーザーを追加する $ vi conf/tomcat-users.xml <tomcat-users> <role rolename="fess"/> <role rolename="fess2"/> <role rolename="solr"/> <role rolename="manager"/> <user username="admin" password="admin" roles="fess"/> <user username="taro" password="taro" roles="fess2"/> <user username="solradmin" password="solradmin" roles="solr"/> <user username="manager" password="manager" roles="manager"/> </tomcat-users> fess2用にfess2.solr.data.dirとfess2.log.fileを追加する $ vi bin/setenv.sh export JAVA_OPTS="$JAVA_OPTS -Dsolr.solr.home=$CATALINA_HOME/solr -Dfess.solr.data.dir=$CATALINA_HOME/solr/core1/data -Dfess2.solr.data.dir=$CATALINA_HOME/solr/core2/data -Dfess.log.file=$CATALINA_HOME/webapps/fess/WEB-INF/logs/fess.out -Dfess2.log.file=$CATALINA_HOME/webapps/fess2/WEB-INF/logs/fess.out -Djava.awt.headless=true -server -XX:+UseGCOverheadLimit -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+UseTLAB -XX:MaxPermSize=128m -Xmx512m" fess2を以下の用に編集する $ diff -ubr webapps/fess webapps/fess2 diff -ubr webapps/fess/WEB-INF/classes/fess.dicon webapps/fess2/WEB-INF/classes/fess.dicon --- webapps/fess/WEB-INF/classes/fess.dicon 2010-10-29 07:22:48.000000000 +0900 +++ webapps/fess2/WEB-INF/classes/fess.dicon 2010-10-29 07:36:13.590880001 +0900 @@ -14,11 +14,11 @@ <component name="pathMappingHelper" class="jp.sf.fess.helper.PathMappingHelper"> </component> <component name="systemHelper" class="jp.sf.fess.helper.SystemHelper"> + <property name="adminRole">"fess2"</property> <!-- - <property name="adminRole">"fess"</property> <property name="authenticatedRoles">"role1"</property> --> - <property name="solrDataDirName">"fess.solr.data.dir"</property> + <property name="solrDataDirName">"fess2.solr.data.dir"</property> <property name="logFilePath">@System @ getProperty("fess.log.file").replaceAll(".out", "_crawler.out")</property> <property name="crawlerJavaOptions">new String[] { "-Djava.awt.headless=true", "-server", "-XX:+UseGCOverheadLimit", diff -ubr webapps/fess/WEB-INF/classes/fess_solr.dicon webapps/fess2/WEB-INF/classes/fess_solr.dicon --- webapps/fess/WEB-INF/classes/fess_solr.dicon 2010-10-29 07:22:48.000000000 +0900 +++ webapps/fess2/WEB-INF/classes/fess_solr.dicon 2010-10-29 07:29:14.090880001 +0900 @@ -11,9 +11,9 @@ <!-- Solr Server Configuration --> <component name="solrServer1" class="jp.sf.fess.solr.FessSolrServer"> <!-- Solr Server URL --> - <arg>"http://localhost:8080/solr/core1"</arg> - <property name="solrDataDirName">"fess.solr.data.dir"</property> - <property name="dataDir">"${fess.solr.data.dir}"</property> + <arg>"http://localhost:8080/solr/core2"</arg> + <property name="solrDataDirName">"fess2.solr.data.dir"</property> + <property name="dataDir">"${fess2.solr.data.dir}"</property> <property name="requestWriter">new jp.sf.fess.solr.BinaryRequestWriter()</property> <property name="authenticationPreemptive">true</property> <!-- Credential Info --> diff -ubr webapps/fess/WEB-INF/classes/jdbc.dicon webapps/fess2/WEB-INF/classes/jdbc.dicon --- webapps/fess/WEB-INF/classes/jdbc.dicon 2010-10-29 07:22:48.000000000 +0900 +++ webapps/fess2/WEB-INF/classes/jdbc.dicon 2010-10-29 07:29:24.840880001 +0900 @@ -28,7 +28,7 @@ "org.h2.Driver" </property> <property name="URL"> - "jdbc:h2:tcp://localhost:19092/fess" + "jdbc:h2:tcp://localhost:19093/fess" <!-- "jdbc:h2:file:" + container.getComponent(@java.lang.Class @ forName("javax.servlet.ServletContext")).getRealPath("/WEB-INF/db/fess") diff -ubr webapps/fess/WEB-INF/classes/log4j.xml webapps/fess2/WEB-INF/classes/log4j.xml --- webapps/fess/WEB-INF/classes/log4j.xml 2010-10-29 07:22:48.000000000 +0900 +++ webapps/fess2/WEB-INF/classes/log4j.xml 2010-10-29 07:30:08.160880005 +0900 @@ -8,14 +8,14 @@ </layout> </appender> <appender name="file" class="org.apache.log4j.FileAppender"> - <param name="File" value="${fess.log.file}"/> + <param name="File" value="${fess2.log.file}"/> <param name="Append" value="false"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/> </layout> </appender> <appender name="rollingFile" class="org.apache.log4j.RollingFileAppender"> - <param name="File" value="${fess.log.file}"/> + <param name="File" value="${fess2.log.file}"/> <param name="Append" value="true"/> <param name="MaxFileSize" value="10MB"/> <param name="MaxBackupIndex" value="20"/> diff -ubr webapps/fess/WEB-INF/web.xml webapps/fess2/WEB-INF/web.xml --- webapps/fess/WEB-INF/web.xml 2010-10-29 07:22:36.000000000 +0900 +++ webapps/fess2/WEB-INF/web.xml 2010-10-29 07:31:05.120880005 +0900 @@ -59,11 +59,11 @@ <filter-class>jp.sf.fess.filter.AuthenticationFilter</filter-class> <init-param> <param-name>urlPatterns</param-name> - <param-value>/fess/admin.*</param-value> + <param-value>/fess2/admin.*</param-value> </init-param> <init-param> <param-name>loginPath</param-name> - <param-value>/fess/login/</param-value> + <param-value>/fess2/login/</param-value> </init-param> <init-param> <param-name>cipherName</param-name> @@ -139,7 +139,7 @@ <servlet-class>jp.sf.fess.servlet.FessConfigServlet</servlet-class> <init-param> <param-name>tcpPort</param-name> - <param-value>19092</param-value> + <param-value>19093</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> @@ -210,7 +210,7 @@ <url-pattern>/login/login</url-pattern> </web-resource-collection> <auth-constraint> - <role-name>fess</role-name> + <role-name>fess2</role-name> <!-- <role-name>role1</role-name> --> @@ -226,7 +226,7 @@ </login-config> <security-role> - <role-name>fess</role-name> + <role-name>fess2</role-name> </security-role> <!-- よろしくお願いいたします。 shinsuke 2010年10月28日13:55 <Takuy****@mail*****>: > お世話になります。小島と申します。 > > 日本語ファイルが簡単に扱えて、導入も簡単なので非常に助かっています。 > 素晴らしいプロダクトを有難うございます。 > > 最近複数の全文検索システムが必要になり、PCを複数かき集めてそれぞれに > Fessをと考えていたのですが、Fess3.0.0のリリースをふと見るとSolrの設定を > マルチコアに変更の文字が!大喜びで、なんとか1つのPC上で複数のFessを動か > せないかといろいろ試しているところです。 > > Solr側でsolr.xmlを設定し、フォルダをコピーしてcoreを複数用意してみたま > ではいいのですが、Fess側からデフォルト以外のcoreにアクセスする方法がわか > らず、 > C:\fess-server-3.1.3\webapps\fess以下の設定ファイルをいろいろ探してみたの > ですが、行き詰ってしまいました。 > (C:\fess-server-3.1.3\webapps\fess → core1にインデックス作成・検索 > C:\fess-server-3.1.3\webapps\fess2 → core2にインデックス作成・検索 > のようなことを実現したくて行き詰まりました) > > 1つのPC上で複数のFessが動かすことができるような具体的な設定方法を教えて > いただけないでしょうか? > > 基本的な質問で恐縮ですが、よろしくお願いします。 > > _______________________________________________ > Fess-user mailing list > Fess-****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/fess-user >