Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info
titleWarning

Using the schema type 'mssql' instead of 'azure' on Azure DB should be considered as a mis-configuration. It works but comes with a huge performance penalty, causing all sorts of buggy behavior in Magnolia CMS that can be traced back to timeouts on database queries. It is important for clustered indexes to be created, as these drastically improve the performance of the JackRabbit repositories that are stored in Azure DB. Use 'azure' as schema type!


Code Block
languagexml
titleJackRabbit bundle configuration
linenumberstrue
<?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>
    <FileSystem class="org.apache.jackrabbit.core.fs.db.MSSqlFileSystem">
        <param name="driver" value="javax.naming.InitialContext"/>
        <param name="url" value="java:jboss/mydatasource"/>
        <param name="schema" value="azure"/>
        <param name="schemaObjectPrefix" value="fsrep_"/>
    </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>
    <DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
        <param name="driver" value="javax.naming.InitialContext"/>
        <param name="url" value="java:jboss/mydatasource"/>
        <param name="databaseType" value="azure"/>
        <param name="schemaObjectPrefix" value="ds_" />
        <param name="minRecordLength" value="8192"/>
    </DataStore>
    <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default" />
    <Workspace name="default">
        <FileSystem class="org.apache.jackrabbit.core.fs.db.MSSqlFileSystem">
            <param name="driver" value="javax.naming.InitialContext"/>
            <param name="url" value="java:jboss/mydatasource"/>
            <param name="schema" value="azure"/>
            <param name="schemaObjectPrefix" value="fs_${wsp.name}_"/>
            <!--<param name="tablespace" value="author_tablespace" />-->
        </FileSystem>
        <PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.MSSqlPersistenceManager">
            <param name="driver" value="javax.naming.InitialContext"/>
            <param name="url" value="java:jboss/mydatasource"/>
            <param name="schema" value="azure" /><!-- warning, this is not the schema name, it's the db type -->
            <param name="schemaObjectPrefix" value="pm_${wsp.name}_" />
            <param name="externalBLOBs" value="false" />
            <param name="bundleCacheSize" value="100" />
        </PersistenceManager>
        <SearchIndex class="org.apache.jackrabbit.core.query.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.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>
    </Workspace>
    <Versioning rootPath="${rep.home}/version">
        <FileSystem class="org.apache.jackrabbit.core.fs.db.MSSqlFileSystem">
            <param name="driver" value="javax.naming.InitialContext"/>
            <param name="url" value="java:jboss/mydatasource"/>
            <param name="schema" value="azure"/>
            <param name="schemaObjectPrefix" value="fsver_"/>
        </FileSystem>
        <PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.MSSqlPersistenceManager">
            <param name="driver" value="javax.naming.InitialContext"/>
            <param name="url" value="java:jboss/mydatasource"/>
            <param name="schema" value="azure" /><!-- warning, this is not the schema name, it's the db type -->
            <param name="schemaObjectPrefix" value="version_" />
            <param name="externalBLOBs" value="false" />
        </PersistenceManager>
    </Versioning>
</Repository>