我想在集群中设置 Jackrabbit(我正在使用 Liferay 进行设置)。
我读了这个文件 - http://wiki.apache.org/jackrabbit/Clustering,不幸的是它很短,所以我不理解一些概念和最佳实践。让我先解释一下我的设置是什么:
我们有 2 个共享相同文件系统的 weblogic 服务器,我们将相同的战争部署到两个 weblogics。我使用 Oracle 作为数据库(我在 WL 中配置了连接池并希望使用 JNDI 进行连接)
正如我从文档中了解到的,每个节点都必须有一个单独的配置,包括它自己的存储库目录、工作区文件系统和搜索索引。
两个节点共享 PersistranceManager、存储库文件系统和数据存储(如果我有的话)
以下是问题:
什么是工作区文件系统,它与存储库文件系统有何不同。什么是工作区-据我了解,它是存储库的一部分,存储库可以有多个工作区,但文档中没有描述什么是工作区。
我希望性能是最好的,我不需要太多的内容和用户(10 多个同时用户),所以我想优化页面加载时间以更快地呈现页面。最佳实践是什么 - 我应该配置 PersistanceManager 去数据库吗?
每个节点上的存储库文件系统应该指向哪里?
每个节点上的工作空间应该指向哪里?
工作区文件系统应该指向哪里?
我试图将它们全部指向我的数据库,但我似乎有死锁(或数据库工作太慢)。
而且我启用了日志记录,我看到很多不必要的读取,看起来像每次上传文件jackrabbit打开连接,预先缓存所有文件,关闭并执行几次(大约需要一分钟)上传非常小的文件,我的配置很可能有问题。
这是我的配置文件:
<?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>