[fess-user 373] Re: Fessのマルチコア設定について

Back to archive index

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
>




Fess-user メーリングリストの案内
Back to archive index