[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