Magnolia CMS 甲骨文持久性
Magnolia Cms Oracle Persistence
我安装了 magnolia cms 5.7 版并希望对 oracle 数据库进行持久化。在启动 magnolia 实例之前,我更新了相关的配置文件并包含了 oracle 数据库驱动程序。当使用 "mgnl start" 命令启动实例时,表已在数据库中创建。
但是当我在 cms 中创建新内容(例如用户、联系人)时,数据不会存储到数据库中,但它会以某种方式继续通过 derby.jar.
持续存在
如有任何帮助,我们将不胜感激。
提前致谢
您将在下面找到 oracle xml 包,它也在 magnolia.properties 文件中设置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 2.0//EN" "http://jackrabbit.apache.org/dtd/repository-2.0.dtd">
<Repository>
<DataSources>
<DataSource name="magnolia">
<param name="driver" value="oracle.jdbc.OracleDriver" />
<param name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:xe" /><!-- jdbc:oracle:thin:@localhost:1521:xe -->
<param name="user" value="magnolia" />
<param name="password" value="magnolia" />
<param name="databaseType" value="oracle"/>
<param name="validationQuery" value="select 1 from dual"/>
</DataSource>
</DataSources>
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${rep.home}/repository" />
</FileSystem>
<Security appName="magnolia">
<SecurityManager class="org.apache.jackrabbit.core.DefaultSecurityManager"/>
<AccessManager class="org.apache.jackrabbit.core.security.DefaultAccessManager">
</AccessManager>
<!-- login module defined here is used by the repo to authenticate every request. not by the webapp to authenticate user against the webapp context (this one has to be passed before thing here gets invoked -->
<LoginModule class="info.magnolia.jaas.sp.jcr.JackrabbitAuthenticationModule">
</LoginModule>
</Security>
<DataStore class="org.apache.jackrabbit.core.data.FileDataStore">
<param name="path" value="${rep.home}/repository/datastore"/>
<param name="minRecordLength" value="32000"/>
</DataStore>
<Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default" />
<Workspace name="default">
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${wsp.home}/default" />
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.OraclePersistenceManager">
<param name="driver" value="oracle.jdbc.OracleDriver"/>
<param name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:xe"/>
<param name="schema" value="oracle" />
<param name="databaseType" value="oracle" />
<param name="user" value="magnolia"/>
<param name="password" value="magnolia"/>
<param name="schemaObjectPrefix" value="${wsp.name}_"/><!-- read notes below to set this value properly -->
<param name="externalBLOBs" value="false"/>
</PersistenceManager>
<SearchIndex class="info.magnolia.jackrabbit.lucene.SearchIndex">
<param name="path" value="${wsp.home}/index" />
<!-- SearchIndex will get the indexing configuration from the classpath, if not found in the workspace home -->
<param name="indexingConfiguration" value="/info/magnolia/jackrabbit/indexing_configuration_${wsp.name}.xml"/>
<param name="useCompoundFile" value="true" />
<param name="minMergeDocs" value="100" />
<param name="volatileIdleTime" value="3" />
<param name="maxMergeDocs" value="100000" />
<param name="mergeFactor" value="10" />
<param name="maxFieldLength" value="10000" />
<param name="bufferSize" value="10" />
<param name="cacheSize" value="1000" />
<param name="forceConsistencyCheck" value="false" />
<param name="autoRepair" value="true" />
<param name="queryClass" value="org.apache.jackrabbit.core.query.QueryImpl" />
<param name="respectDocumentOrder" value="true" />
<param name="resultFetchSize" value="100" />
<param name="extractorPoolSize" value="3" />
<param name="extractorTimeout" value="100" />
<param name="extractorBackLogSize" value="100" />
<!-- needed to highlight the searched term -->
<param name="supportHighlighting" value="true"/>
<!-- custom provider for getting an HTML excerpt in a query result with rep:excerpt() -->
<param name="excerptProviderClass" value="info.magnolia.jackrabbit.lucene.SearchHTMLExcerpt"/>
</SearchIndex>
<WorkspaceSecurity>
<AccessControlProvider class="info.magnolia.cms.core.MagnoliaAccessProvider" />
</WorkspaceSecurity>
</Workspace>
<Versioning rootPath="${rep.home}/version">
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${rep.home}/workspaces/version" />
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.OraclePersistenceManager">
<param name="driver" value="oracle.jdbc.OracleDriver"/>
<param name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:xe"/>
<param name="schema" value="oracle" />
<param name="databaseType" value="oracle" />
<param name="user" value="magnolia"/>
<param name="password" value="magnolia"/>
<param name="schemaObjectPrefix" value="version_"/><!-- read notes below to set this value properly -->
<param name="externalBLOBs" value="false"/>
</PersistenceManager>
</Versioning>
</Repository>
jackrabbit 的配置一定有问题。我假设您已经更改了 magnolia.properties 文件以便使用 jackrabbit-bundle-oracle-search.xml。如果不是这种情况,请更改那个。要记住的另一件事是检查 DataStore 的阈值(通常二进制文件如果超过某个阈值则存储在其他地方)也许你就是这种情况。但是,如果两者都不是,最好将您遇到问题的配置复制到这里。
希望对您有所帮助,
干杯,
我安装了 magnolia cms 5.7 版并希望对 oracle 数据库进行持久化。在启动 magnolia 实例之前,我更新了相关的配置文件并包含了 oracle 数据库驱动程序。当使用 "mgnl start" 命令启动实例时,表已在数据库中创建。
但是当我在 cms 中创建新内容(例如用户、联系人)时,数据不会存储到数据库中,但它会以某种方式继续通过 derby.jar.
持续存在如有任何帮助,我们将不胜感激。
提前致谢
您将在下面找到 oracle xml 包,它也在 magnolia.properties 文件中设置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 2.0//EN" "http://jackrabbit.apache.org/dtd/repository-2.0.dtd">
<Repository>
<DataSources>
<DataSource name="magnolia">
<param name="driver" value="oracle.jdbc.OracleDriver" />
<param name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:xe" /><!-- jdbc:oracle:thin:@localhost:1521:xe -->
<param name="user" value="magnolia" />
<param name="password" value="magnolia" />
<param name="databaseType" value="oracle"/>
<param name="validationQuery" value="select 1 from dual"/>
</DataSource>
</DataSources>
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${rep.home}/repository" />
</FileSystem>
<Security appName="magnolia">
<SecurityManager class="org.apache.jackrabbit.core.DefaultSecurityManager"/>
<AccessManager class="org.apache.jackrabbit.core.security.DefaultAccessManager">
</AccessManager>
<!-- login module defined here is used by the repo to authenticate every request. not by the webapp to authenticate user against the webapp context (this one has to be passed before thing here gets invoked -->
<LoginModule class="info.magnolia.jaas.sp.jcr.JackrabbitAuthenticationModule">
</LoginModule>
</Security>
<DataStore class="org.apache.jackrabbit.core.data.FileDataStore">
<param name="path" value="${rep.home}/repository/datastore"/>
<param name="minRecordLength" value="32000"/>
</DataStore>
<Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default" />
<Workspace name="default">
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${wsp.home}/default" />
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.OraclePersistenceManager">
<param name="driver" value="oracle.jdbc.OracleDriver"/>
<param name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:xe"/>
<param name="schema" value="oracle" />
<param name="databaseType" value="oracle" />
<param name="user" value="magnolia"/>
<param name="password" value="magnolia"/>
<param name="schemaObjectPrefix" value="${wsp.name}_"/><!-- read notes below to set this value properly -->
<param name="externalBLOBs" value="false"/>
</PersistenceManager>
<SearchIndex class="info.magnolia.jackrabbit.lucene.SearchIndex">
<param name="path" value="${wsp.home}/index" />
<!-- SearchIndex will get the indexing configuration from the classpath, if not found in the workspace home -->
<param name="indexingConfiguration" value="/info/magnolia/jackrabbit/indexing_configuration_${wsp.name}.xml"/>
<param name="useCompoundFile" value="true" />
<param name="minMergeDocs" value="100" />
<param name="volatileIdleTime" value="3" />
<param name="maxMergeDocs" value="100000" />
<param name="mergeFactor" value="10" />
<param name="maxFieldLength" value="10000" />
<param name="bufferSize" value="10" />
<param name="cacheSize" value="1000" />
<param name="forceConsistencyCheck" value="false" />
<param name="autoRepair" value="true" />
<param name="queryClass" value="org.apache.jackrabbit.core.query.QueryImpl" />
<param name="respectDocumentOrder" value="true" />
<param name="resultFetchSize" value="100" />
<param name="extractorPoolSize" value="3" />
<param name="extractorTimeout" value="100" />
<param name="extractorBackLogSize" value="100" />
<!-- needed to highlight the searched term -->
<param name="supportHighlighting" value="true"/>
<!-- custom provider for getting an HTML excerpt in a query result with rep:excerpt() -->
<param name="excerptProviderClass" value="info.magnolia.jackrabbit.lucene.SearchHTMLExcerpt"/>
</SearchIndex>
<WorkspaceSecurity>
<AccessControlProvider class="info.magnolia.cms.core.MagnoliaAccessProvider" />
</WorkspaceSecurity>
</Workspace>
<Versioning rootPath="${rep.home}/version">
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${rep.home}/workspaces/version" />
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.OraclePersistenceManager">
<param name="driver" value="oracle.jdbc.OracleDriver"/>
<param name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:xe"/>
<param name="schema" value="oracle" />
<param name="databaseType" value="oracle" />
<param name="user" value="magnolia"/>
<param name="password" value="magnolia"/>
<param name="schemaObjectPrefix" value="version_"/><!-- read notes below to set this value properly -->
<param name="externalBLOBs" value="false"/>
</PersistenceManager>
</Versioning>
</Repository>
jackrabbit 的配置一定有问题。我假设您已经更改了 magnolia.properties 文件以便使用 jackrabbit-bundle-oracle-search.xml。如果不是这种情况,请更改那个。要记住的另一件事是检查 DataStore 的阈值(通常二进制文件如果超过某个阈值则存储在其他地方)也许你就是这种情况。但是,如果两者都不是,最好将您遇到问题的配置复制到这里。
希望对您有所帮助,
干杯,