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@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@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users




_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users