• No labels

11 Comments

  1. Hi!

    I have a question. I'm installing Magnolia 4.3.1 with Oracle 10g, I have created a "jackrabbit-bundle-oracle-search.xml" file and I've included all "PersistenceManager" atributtes, but I can't find what I must do to have available Magnolia's data model in Oracle. Could you pleased to say me what I have to do?

    Thank you so much!

    1. Hi Sergio,

      Magnolia doesn't make any database requests directly, but interacts with the repository via standard defined interface (JCR specification). As such we have no direct control where and how the data are stored. In case of Jackrabbit the amount of queries depends on persistence manager used. When you're about to switch from default Derby to Oracle, the information contained at Changing Jackrabbit PM are enough to proceed with that.

    2. You don't need to create any tables, just an empty database; Magnolia/Jackrabbit will create the necessary tables itself.

  2. Ok thank you!!

    I've seen the information contained at Changing Jackrabbit PM and I don't know if  I must change file "workspace.xml" (magnolia-4.3.1\apache-tomcat-5.5.27\webapps\magnoliaAuthor\repositories\magnolia\workspaces) because there are PM instances, too. I've changed Derby instances by Oracle, but it doesn't work .

        <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.OraclePersistenceManager">
          <param name="url" value="jdbc:oracle:thin:@localhost:1521:xe;create=true"/>
          <param name="schemaObjectPrefix" value="$

    Unknown macro: {wsp.name}

    _"/>
        </PersistenceManager>  

    1. If you're about to change your PM at already started instance, then yes, you have to do that for each workspace descriptor.

      If you change the PM before your workspaces are initialized (before you startup Magnolia for the first time) then it's enough to do it just for your jackrabbit-bundle-...xml.


  3. I could entry in the author part, but no public part. Have it any special requirement?

    These are the errors:

    ORA-01400: could not make a null insertion in ("MAGNOLIA_PUBLIC" . "PUBLIC_MGNLVERSION_NAMES" . "ID")

    NoSuchWorkspaceExecption: mgnlVersion

    1. No special requirement, but it's recommended to use different db schema which you obviously did, and since it works at Author for you, the remaining parameters, esp. user/password, should be configured right as well. Also I guess that you're switching from bundle to bundle PM so there shouldn't be any incompatible storage structures issue (tables and indexes). Anyway ORA-01400 is raised when an attempt was made to insert a NULL into the column "USER"."TABLE"."COLUMN". Could it be that the workspaces were reinitialized in wrong order? What's the state of your Public instance - is there a lot of custom content? Because a possible workaround to get rid of that should lie in flushing your Public workspaces and initialized them from scratch after server restart (and activate (or export/import or bootstrap etc.) what is needed from Author). But whole log should shed more light what it's going on the background.

      1. Exactly, I'm using differents db schema. I have tested to deploy both parts (author and public) separately, and each part works separately, the problem appear when they are together. I'm doing a new instalation, I only change these files:

        - Create a new file for Oracle definition: jackrabbit-bundle-oracle-search.xml, with this PM definition:

            <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.OraclePersistenceManager">
              <param name="driver" value="oracle.jdbc.OracleDriver" />
              <param name="url" value="jdbc:oracle:thin:@localhost:1521:xe" />
              <param name="user" value="MAGNOLIA_AUTH" />
              <param name="password" value="author" />
              <param name="schemaObjectPrefix" value="author_$

        Unknown macro: {wsp.name}

        _" />
              <param name="externalBLOBs" value="false" />
            </PersistenceManager>

        - magnolia-properties: to put: magnolia.repositories.jackrabbit.config=WEB-INF/config/repo-conf/jackrabbit-bundle-oracle-search.xml

        - I put in "WEB-INF\lib" Oracle's library: ojdbc14-10.2.0.3.jar, and I removes derby's library.

        This is the only custom content in my instalation.  Last, these are the errors' log:

        ERROR  org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/magnoliaPublic] 26.04.2010 17:06:57 -- Excepción enviando evento inicializado de contexto a instancia de escuchador de clase info.magnolia.cms.servlets.MgnlServletContextListener
        org.apache.commons.lang.UnhandledException: javax.jcr.NoSuchWorkspaceException: mgnlVersion

        ORA-12519, TNS:no appropriate service handler found
        The Connection descriptor used by the client was:
        localhost:1521:xe


          • I don't see any <param name="schema" value="oracle" />
          • I would use same user/password for both author and public db schemas
          • xe is the author schema, have you specified the right one also for your public?
          • author_ prefix of schemaObjectPrefix value is not needed when you use different schema for each instance (I guess you have it also for versioning).

          Also are you deploying war file into some living application server or are you deploying bundle? What's your version of Magnolia?


  4. I've followed all the points that you've mentioned and it seems that I finally have started. Thank you so much!!!!

    Just one more question, can I use portlets in Magnolia 4.3.1??? How I can integrate them in Magnolia??? I can't find any information about this.

    1. Great, you're welcome, but please note that we have much more suitable channel for user questions where you can receive faster response and wider group of followers - you can subscribe yourself into Magnolia user-list.

      No, we don't support portlets but it's possible to render Magnolia content to some portal environment like Liferay.