Jackrabbit をクラスターにセットアップしたい (Liferay でセットアップしています)。
私はこのドキュメントを読みました - http://wiki.apache.org/jackrabbit/Clustering、残念ながら非常に短いので、概念とベストプラクティスのいくつかを理解していません。最初に、私のセットアップが何であるかを説明しましょう。
同じファイルシステムを共有する 2 つの weblogic サーバーがあり、同じ war を両方の weblogic にデプロイします。Oracle をデータベースとして使用しています (WL で構成された接続プールがあり、JNDI を使用して接続したい)
ドキュメントから理解しているように、各ノードには、独自のリポジトリディレクトリ、ワークスペースファイルシステム、および検索インデックスを備えた個別の構成が必要です。
両方のノードが PersistranceManager、リポジトリ ファイルシステム、およびデータストアを共有します (ある場合)
質問は次のとおりです。
ワークスペース ファイルシステムとは何か、リポジトリ ファイルシステムとはどう違うのか。ワークスペースとは - 私が理解しているように、それはリポジトリの一部であり、リポジトリは複数のワークスペースを持つことができますが、ワークスペースとはドキュメントに記載されていません。
私はパフォーマンスを最高にしたいと考えています。多くのコンテンツとユーザー (数十人の同時ユーザー) を必要としないため、ページのレンダリングを高速化するためにページの読み込み時間を最適化したいと考えています。ベストプラクティスは何ですか - PersistanceManager を db に移動するように設定する必要がありますか?
リポジトリファイルシステムは各ノードのどこを指す必要がありますか?
ワークスペースは各ノードのどこを指す必要がありますか?
ワークスペースのファイルシステムはどこを指す必要がありますか?
それらすべてを自分のデータベースに向けようとしましたが、デッドロックが発生しているようです (またはデータベースの動作が遅すぎます)。
そして、ログを有効にすると、多くの不要な読み取りが表示されます。ファイルのアップロードごとに、jackrabbit が接続を開き、すべてのファイルを事前にキャッシュし、閉じて、非常に小さなファイルをアップロードするために数回 (約 1 分かかります)、ほとんどの場合、私の設定に何か問題があります。
ここに私の設定ファイルがあります:
<?xml version="1.0"?>
<Repository>
<FileSystem class="org.apache.jackrabbit.core.fs.db.OracleFileSystem">
<param name="driver" value="javax.naming.InitialContext"/>
<param name="url" value="ISG" />
<param name="schema" value="oracle"/>
<param name="schemaObjectPrefix" value="J_R_FS_"/>
</FileSystem>
<Security appName="Jackrabbit">
<AccessManager class="org.apache.jackrabbit.core.security.SimpleAccessManager" />
<LoginModule class="org.apache.jackrabbit.core.security.SimpleLoginModule">
<param name="anonymousId" value="anonymous" />
</LoginModule>
</Security>
<Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="liferay" />
<Workspace name="${wsp.name}">
<PersistenceManager class="org.apache.jackrabbit.core.persistence.db.OraclePersistenceManager">
<param name="driver" value="javax.naming.InitialContext"/>
<param name="url" value="ISG" />
<param name="tableSpace" value="" />
<param name="schema" value="oracle" />
<param name="schemaObjectPrefix" value="J_PM_${wsp.name}_" />
<param name="externalBLOBs" value="false" />
</PersistenceManager>
<FileSystem class="org.apache.jackrabbit.core.fs.db.OracleFileSystem">
<param name="driver" value="javax.naming.InitialContext"/>
<param name="url" value="ISG" />
<param name="tableSpace" value="" />
<param name="schema" value="oracle"/>
<param name="schemaObjectPrefix" value="J_FS_${wsp.name}_"/>
</FileSystem>
</Workspace>
<Versioning rootPath="${rep.home}/version">
<FileSystem class="org.apache.jackrabbit.core.fs.db.OracleFileSystem">
<param name="driver" value="javax.naming.InitialContext"/>
<param name="url" value="ISG" />
<param name="schema" value="oracle"/>
<param name="schemaObjectPrefix" value="J_V_FS_"/>
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.db.OraclePersistenceManager">
<param name="driver" value="javax.naming.InitialContext"/>
<param name="url" value="ISG" />
<param name="tableSpace" value="" />
<param name="schema" value="oracle" />
<param name="schemaObjectPrefix" value="J_V_PM_" />
<param name="externalBLOBs" value="false" />
</PersistenceManager>
</Versioning>
<Cluster id="node_1" syncDelay="2000">
<Journal class="org.apache.jackrabbit.core.journal.OracleDatabaseJournal">
<param name="revision" value="${rep.home}/revision.log"/>
<param name="driver" value="javax.naming.InitialContext"/>
<param name="url" value="ISG" />
<param name="tableSpace" value="" />
<param name="schema" value="oracle"/>
<param name="schemaObjectPrefix" value="J_C_"/>
</Journal>
</Cluster>
</Repository>