Oracle On Tomcat

Introduction

Configuring Hippo CMS 7 with Oracle on Tomcat

To run Hippo CMS 7 with Oracle on Tomcat you have to do the following (extra) steps:

  • Place the oracle 10.x ojdbc driver in the $CATALINA_HOME/lib folder. DO NOT USE THE ORACLE 9.2 JDBC DRIVER!
  • Place the geronimo-jta_1.1_spec-1.1.jar in the $CATALINA_HOME/lib folder
  • Create and provide a custom repository.xml

The repository.xml can either be bundled with the build or can specified with an absolute path in the web.xml with the init-param called "repository-config". In the example repository.xml the following parameters should be changed, each 7 times: db.host, user, password and SID. If you want to bundle the repository.xml with your project you can put the repository.xml in src/main/resources/org/hippoecm/repository/ .

The repository.xml

<?xml version="1.0" encoding="UTF-8"?>
  <!--
    This file is based on ECM's
    /repository/application/src/main/resources/org/hippoecm/repository/repository.xml
    so please keep in sync when upgrading to a newer ECM version
  -->
  <!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.5//EN"
      "http://jackrabbit.apache.org/dtd/repository-1.5.dtd">
  <Repository>


    <FileSystem class="org.apache.jackrabbit.core.fs.db.OracleFileSystem">
      <param name="url" value="jdbc:oracle:thin:@dbhost:1521:XE"/>
      <param name="driver" value="oracle.jdbc.driver.OracleDriver"/>
      <param name="user" value="username"/>
      <param name="password" value="******"/>
      <param name="schemaObjectPrefix" value="repository_"/>
    </FileSystem>


    <Security appName="Jackrabbit">
      <SecurityManager class="org.hippoecm.repository.security.SecurityManager"/>
      <AccessManager class="org.hippoecm.repository.security.HippoAccessManager"/>
      <LoginModule class="org.hippoecm.repository.security.HippoLoginModule"/>
    </Security>


    <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>


    <Workspace name="${wsp.name}">
      <FileSystem class="org.apache.jackrabbit.core.fs.db.OracleFileSystem">
        <param name="url" value="jdbc:oracle:thin:@dbhost:1521:XE"/>
        <param name="driver" value="oracle.jdbc.driver.OracleDriver"/>
        <param name="user" value="username"/>
        <param name="password" value="******"/>
        <param name="schemaObjectPrefix" value="${wsp.name}_"/>
      </FileSystem>


      <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.OraclePersistenceManager">
        <param name="url" value="jdbc:oracle:thin:@dbhost:1521:XE"/>
        <param name="driver" value="oracle.jdbc.driver.OracleDriver"/>
        <param name="user" value="username"/>
        <param name="password" value="******"/>
        <param name="schemaObjectPrefix" value="${wsp.name}_"/>
        <param name="externalBLOBs" value="true"/>
        <param name="consistencyCheck" value="false"/>
        <param name="consistencyFix" value="false"/>
        <param name="bundleCacheSize" value="32"/>
      </PersistenceManager>


      <SearchIndex class="org.hippoecm.repository.FacetedNavigationEngineThirdImpl">
        <param name="indexingConfiguration" value="indexing_configuration.xml"/>
        <param name="indexingConfigurationClass" value="org.hippoecm.repository.query.lucene.ServicingIndexingConfigurationImpl"/>
        <param name="path" value="${wsp.home}/index"/>
        <param name="useCompoundFile" value="true"/>
        <param name="minMergeDocs" value="1000"/>
        <param name="volatileIdleTime" value="10"/>
        <param name="maxMergeDocs" value="1000000000"/>
        <param name="mergeFactor" value="5"/>
        <param name="maxFieldLength" value="10000"/>
        <param name="bufferSize" value="1000"/>
        <param name="cacheSize" value="1000"/>
        <param name="forceConsistencyCheck" value="false"/>
        <param name="enableConsistencyCheck" value="false"/>
        <param name="autoRepair" value="true"/>
        <param name="analyzer" value="org.apache.lucene.analysis.standard.StandardAnalyzer"/>
        <param name="queryClass" value="org.apache.jackrabbit.core.query.QueryImpl"/>
        <param name="respectDocumentOrder" value="false"/>
        <param name="resultFetchSize" value="2147483647"/>
        <param name="extractorPoolSize" value="0"/>
        <param name="extractorTimeout" value="100"/>
        <param name="extractorBackLogSize" value="100"/>
        <param name="textFilterClasses" value="org.apache.jackrabbit.extractor.PlainTextExtractor,org.apache.jackrabbit.extractor.MsWordTextExtractor,org.apache.jackrabbit.extractor.MsExcelTextExtractor,org.apache.jackrabbit.extractor.MsPowerPointTextExtractor,org.apache.jackrabbit.extractor.PdfTextExtractor,org.apache.jackrabbit.extractor.OpenOfficeTextExtractor,org.apache.jackrabbit.extractor.RTFTextExtractor,org.apache.jackrabbit.extractor.HTMLTextExtractor,org.apache.jackrabbit.extractor.XMLTextExtractor"/>
        <param name="excerptProviderClass" value="org.apache.jackrabbit.core.query.lucene.DefaultHTMLExcerpt"/>
        <param name="supportHighlighting" value="true"/>
      </SearchIndex>


      <ISMLocking class="org.apache.jackrabbit.core.state.FineGrainedISMLocking" />
    </Workspace>


    <Versioning rootPath="${rep.home}/version">
      <FileSystem class="org.apache.jackrabbit.core.fs.db.OracleFileSystem">
        <param name="url" value="jdbc:oracle:thin:@dbhost:1521:XE"/>
        <param name="driver" value="oracle.jdbc.driver.OracleDriver"/>
        <param name="user" value="username"/>
        <param name="password" value="******"/>
        <param name="schemaObjectPrefix" value="version_"/>
        <param name="schema" value="oracle"/>
      </FileSystem>


      <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.OraclePersistenceManager">
        <param name="url" value="jdbc:oracle:thin:@dbhost:1521:XE"/>
        <param name="driver" value="oracle.jdbc.driver.OracleDriver"/>
        <param name="user" value="username"/>
        <param name="password" value="******"/>
        <param name="schemaObjectPrefix" value="version_"/>
        <param name="externalBLOBs" value="true"/>
        <param name="consistencyCheck" value="false"/>
        <param name="consistencyFix" value="false"/>
        <param name="bundleCacheSize" value="8"/>
      </PersistenceManager>


      <ISMLocking class="org.apache.jackrabbit.core.state.FineGrainedISMLocking" />
    </Versioning>


    <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
      <param name="path" value="${rep.home}/repository/index"/>
    </SearchIndex>


    <Cluster>
      <Journal class="org.apache.jackrabbit.core.journal.OracleDatabaseJournal">
        <param name="url" value="jdbc:oracle:thin:@dbhost:1521:XE"/>
        <param name="driver" value="oracle.jdbc.driver.OracleDriver"/>
        <param name="user" value="username"/>
        <param name="password" value="******"/>
        <param name="revision" value="${rep.home}/revision.log" />
        <param name="schemaObjectPrefix" value="repository_"/>
      </Journal>
    </Cluster>


    <DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
      <param name="url" value="jdbc:oracle:thin:@dbhost:1521:XE"/>
      <param name="driver" value="oracle.jdbc.driver.OracleDriver"/>
      <param name="user" value="username"/>
      <param name="password" value="******"/>
      <param name="databaseType" value="oracle"/>
      <param name="minRecordLength" value="1024"/>
      <param name="maxConnections" value="5"/>
      <param name="copyWhenReading" value="true"/>
    </DataStore>


  </Repository>


Hippo Europe: +31 (0)20 5224466
Hippo North America: +1 (707) 773-4646