- Jackrabbit Configuration
- Deploying Magnolia as WAR file
- Apache
- JBoss
- Magnolia Docker cookbook
- Magnolia CMS with MySQL
- Generating custom sitemap with Solr
- High availability with HAProxy and memcached sticky sessions for Magnolia CMS
- Hosting Providers
- Push logs in batches to Elasticsearch from Magnolia log4j2
- Deploy Magnolia using Docker
Overview
Content Tools
11 Comments
Sergio Sanchez Curquejo
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!
Zdenek Skodik
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.
Magnolia International
You don't need to create any tables, just an empty database; Magnolia/Jackrabbit will create the necessary tables itself.
Sergio Sanchez Curquejo
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="$
_"/>
</PersistenceManager>
Zdenek Skodik
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.
Sergio Sanchez Curquejo
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
Zdenek Skodik
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.
Sergio Sanchez Curquejo
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_$
_" />
<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
Zdenek Skodik
Also are you deploying war file into some living application server or are you deploying bundle? What's your version of Magnolia?
Sergio Sanchez Curquejo
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.
Zdenek Skodik
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.