玉兰Cms Oracle持久性

时间:2018-08-23 08:47:51

标签: oracle persistence magnolia

我安装了5.7版的magnolia cms,并希望对oracle数据库进行持久化。在启动木兰实例之前,我更新了相关的配置文件并包括了oracle db驱动程序。使用“ mgnl start”命令启动实例时,将在数据库中创建表。

但是当我在cms中创建新内容(例如用户,联系人)时,数据没有存储到数据库中,而是以某种方式通过derby.jar持续存在。

任何帮助将不胜感激。

预先感谢

在下面,您还将找到在gnomalia.properties文件中设置的oracle xml包

<?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>

1 个答案:

答案 0 :(得分:0)

jackrabbit配置一定存在问题。我假设您已经更改了magnolia.properties文件,以便使用jackrabbit-bundle-oracle-search.xml。如果不是这种情况,请更改那个。要记住的另一件事是检查DataStore的阈值(如果二进制文件高于某个阈值,通常将二进制文件存储在其他位置),也许对您来说就是这种情况。但是,如果不是两种情况,最好的方法是在此处复制遇到问题的配置。

希望有帮助,

干杯