[rules-users] Guvnor repository database use to store assets

Tihomir Surdilovic tsurdilo at redhat.com
Sun Sep 4 16:29:05 EDT 2011


Using the JCR import/export feature to make copies of your repository 
works, but is really not the best solution, as you loose all repository 
metadata information such as asset version info, discussion comments, etc.
If you use Jackrabbit as your JCR implementation, drools-ant has a 
migration task (more info and a video here: 
http://blog.athico.com/2011/03/using-drools-ant-to-migrateback-up.html) 
which allows you to make a complete copy of your JCR repository no 
matter if you use the filesystem or an RDBMS to store the JCR 
repository. In any production environment I would recommend using the 
ant task over the xml-based import/export any day.

When you configure jackrabbit in repository.xml, you will still see it 
create the repository directory. This is because Lucene search indexes 
cannot be persisted to a db. It is safe to delete this directory, as it 
will be re-created on consequent Guvnor restarts.

Modeshape is definitely a possibly alternative to the default Jackrabbit 
jcr implementation that Guvnor uses, however it is still in it's early 
stages, and afaik is not yet ready to be considered a viable 
alternative. This should change in the near future I think.

To the question: Guvnor looks up the location of the repository on 
startup. The location is defined in 
$drools-guvnor-war/WEB-INF/components.xml:

<!-- JackRabbit  -->

<property name="properties">
<key>org.drools.repository.configurator</key><value>org.drools.repository.jackrabbit.JackrabbitRepositoryConfigurator</value>
<!--  the root directory for the repo storage the directory must exist. -->
<!-- 
<key>repository.root.directory</key><value>/path/to/directory/containing/repositoryconfig</value> 
-->
</property>

By default, if the repository.root.directory is not specified, a 
repository.xml fill be created in your $jboss_as/bin directory on first 
guvnor startup. If one already exists there, Jackrabbit will pick it up. 
Typically in a prod environment you would want to change the default 
location on your repository.xml. In this case, when you deploy a new 
Guvnor war, you need to change the location to your repository.xml here 
again, otherwise your $jboss_as/bin directory (default) will be used.

Yes, Jackrabbit will create all tables/indexes/triggers in your RDBMS, 
what you need to make sure however in the repository.xml configuration 
is that the db schema you define exists, and that the user you define in 
the config has read+write permissions onto that db schema.

Hope this helps.

On 9/4/11 2:15 PM, Nicolas Héron wrote:
> Hi,
> Guvnor stores everything in the database.
> The directories workspace and repository are for the lucene indexes 
> used by jackrabbit.
> The best thing when you move guvnor from one database to another is to 
> use the export/import function that will work even if you export from 
> one type of database to another type of database. It is how I do in my 
> projects.
> After importing, il may be necessary to delete those two directories 
> as sometimes jackrabbit (which is behind guvnor to store the assets) 
> does not update the index correctly. Yes it is normal and a good 
> practice when you install guvnor to a new server.
> Now if you are using jboss 5 or 6, modeshape may be a good candidate 
> also in replacement of Jackrabbit. But I have never used Modeshape (my 
> customer are using jboss 4 or apache tomcat, etc..)
> Now are you using the community version ? The question you ask is 
> typically one that you would ask to a professional support.
> Regards
> Nicolas Heron
>
> 2011/9/4 puja nandamuri <med_9501 at yahoo.com <mailto:med_9501 at yahoo.com>>
>
>     Hi All,
>
>     we are currently using SQLServer as the database repository for 
>     Guvnor 5.2.0.CR1
>
>     Can somone throw some light on how the database is used by Guvnor
>     in the following scenario?
>
>     the first time we deploy Guvnor,we create an empty database and
>     let Guvnor create the necessary Table and other structures
>     necessary for it to save and load assets .
>
>     assuming that Guvnor creates the required structures such as
>     Tables etc during the first deploy and may not need to create any
>     further tables , we lock down the database from creating any
>     further tables. Guvnor works fine for all subsequent rules
>     creation and save.
>
>     we had to redeploy Guvnor a second time without changing anything
>     with respect to the database.we however, had to delete the
>     existing workspace and repository directories created on local
>     file system to let Guvnor create them afresh.
>
>      the expectation is that Guvnor will read the assets from the
>     existing database and create new repository and workspace
>     directories on file system .
>
>
>     Guvnor threw errors saying
>
>     Caused By: java.sql.SQLException: [OWLS][SQLServer JDBC
>     Driver][SQLServer]CREATE TABLE permission denied in database
>     'GuvnorRules'.
>
>
>     does Guvnor create new Tables everytime we deploy a fresh instance
>     of Guvnor to weblogic ?
>
>
>     or is it the way that I have generated my repository.xml that is
>     causing Guvnor to create new tables to save non asset related data
>     such as indexing etc?
>
>
>     I have attached a sample of my repository.xml for reference.
>
>
>     I appreciate your thoughts and feedback.
>
>
>     Thanks,
>
>
>     Ram
>
>
>
>
>
>
>
>     _______________________________________________
>     rules-users mailing list
>     rules-users at lists.jboss.org <mailto:rules-users at lists.jboss.org>
>     https://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20110904/0ce51095/attachment.html 


More information about the rules-users mailing list