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

Tihomir Surdilovic tsurdilo at redhat.com
Tue Sep 13 16:29:43 EDT 2011


On 9/13/11 4:13 PM, puja nandamuri wrote:
> Initially, we had Guvnor deployed to only one instance of weblogic and 
> using the database to store workspace, repository and versioning 
> information in the database . This configuration was generated using 
> the Manage Repository configuration option  in Guvnor
>
> later, Guvnor was mistakenly deployed to more than one instance of 
> weblogic in a cluster , but each of the Guvnor using the same database 
> through jndi datasource.
>
> The repository.xml remained the same without any clustering setup.
>
> Now, we see that each Guvnor instance has created a cluster_node.id 
> file and also a revision.log file on the local file system.
>
> could the multiple instances of Guvnor created a need for jackrabbit 
> to recreate/update the Table ?
>

Yes this is very well possible. If the Jackrabbit instance thinks it is 
a node in a Jackrabbit cluster, it will create and maintain its own 
tables while also sharing its local data with the shared journal.  I did 
not think that this would happen automatically without specifying the 
clustering information in each of the instances repository.xml files ( 
see more here: http://wiki.apache.org/jackrabbit/Clustering). It seems 
in your case jackrabbit clustering seems to happen on it's own?

>
> we see that this Table FS_WS_DEFAULT_FSENTRY seems to have been 
> recreated /updated after the permissions for the Guvnor database user 
> was changed back to db_owner  from db_datareader and db_datawriter.
>
> Could the multiple instances of Guvnor one each in a weblogic cluster 
> setup have required changes to the Table structure ?
>
> As always,Thank you for your feedback .
>
> --- On *Fri, 9/9/11, Tihomir Surdilovic /<tsurdilo at redhat.com>/* wrote:
>
>
>     From: Tihomir Surdilovic <tsurdilo at redhat.com>
>     Subject: Re: [rules-users] Guvnor repository database use to store
>     assets
>     To: rules-users at lists.jboss.org
>     Date: Friday, September 9, 2011, 12:06 PM
>
>     If you choose to store your repository in an external db, then you
>     should do it in all places of your repository.xml. Mixing the file
>     system with external db in repository.xml is not recommended.
>
>     Regarding:
>     >> we have another Guvnor which uses the following setting for
>     workspace.This seems to be working without any issues when we
>     delete the workspace and repository  directory and deploying
>     Guvnor again. it is likely that this setting does not store
>     workspace information in the database and hence does not need to
>     create additional tables?
>     On 9/9/11 1:07 PM, puja nandamuri wrote: <<
>     Well of course, If you use the LocalFileSystem, you are not using
>     your external database. The root of your initial problem was as
>     you mentioned: >> The DBA had locked the userid permissions to
>     prevent any new table creation in the Guvnor database. <<
>     Also mentioned previously was that Jackrabbit will create the
>     tables in an external db only the first time, so any consequent
>     start will not as the tables already exist. Also was mentioned
>     that Jackrabbit will still try to query the table metadata, and
>     for you to make sure the db user you specify in your
>     DroolsRepositoryDatasource config has the permissions to do that.
>
>     I would look on your end for couple of things:
>     1) What repository.xml file is being accessed by Guvnor when you
>     deploy a new war? Is it really the one you think it should?
>     2) Check with your DBA so he can play with permissions to see what
>     is the least amount of permissions he can give your db user in
>     order for this to work.
>     3) Check if this could be related to you importing a repository
>     xml file after re-deployment. AFAIK this operation should not
>     create any new tables, but you could check.
>
>     Since Jackrabbit has it's own db schema, I do not really see a
>     need to "lock down" permissions of the user. Not sure why this is
>     necessary on your end tobegin with. Could you explain?
>
>     Thanks.
>
>>     I got some additional details on the issue. i would appreciate
>>     some advice on whether I should be storing the workspace to a
>>     local file system or database .
>>
>>     In my repository.xml, I have the following setting for the
>>     workspace file system.
>>
>>     <Workspace name="${wsp.name}">
>>
>>     <!--
>>
>>     virtual file system of the workspace:
>>
>>     class: FQN of class implementing the FileSystem interface
>>
>>     -->
>>
>>     <FileSystem class="org.apache.jackrabbit.core.fs.db.MSSqlFileSystem">
>>
>>     <param name="driver" value="javax.naming.InitialContext"/>
>>
>>     <param name="url" value="droolsRepositoryDataSource"/>
>>
>>     <param name="schema" value="mssql"/>
>>
>>     <param name="schemaObjectPrefix" value="FS_WS_${wsp.name}_"/>
>>
>>     </FileSystem>
>>
>>
>>     Is it likely that because Guvnor seems to be storing the
>>     workspace information in the database , it is trying to create
>>     the database tables again for workspace during guvnor restart
>>     after deleting workspace and repository directories on file system?
>>
>>
>>
>>
>>     we have another Guvnor which uses the following setting for
>>     workspace.This seems to be working without any issues when we
>>     delete the workspace and repository  directory and deploying
>>     Guvnor again. it is likely that this setting does not store
>>     workspace information in the database and hence does not need to
>>     create additional tables?
>>
>>
>>     <FileSystem
>>     class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
>>
>>     <param name="path" value="${wsp.home}"/>
>>
>>     </FileSystem>
>>
>>
>>
>>
>>     --- On *Tue, 9/6/11, Tihomir Surdilovic /<tsurdilo at redhat.com>
>>     </mc/compose?to=tsurdilo at redhat.com>/* wrote:
>>
>>
>>         From: Tihomir Surdilovic <tsurdilo at redhat.com>
>>         </mc/compose?to=tsurdilo at redhat.com>
>>         Subject: Re: [rules-users] Guvnor repository database use to
>>         store assets
>>         To: rules-users at lists.jboss.org
>>         </mc/compose?to=rules-users at lists.jboss.org>
>>         Date: Tuesday, September 6, 2011, 9:33 AM
>>
>>         All Jackrabbit template ddl files are in the jackrabbit-core
>>         jar. That would be a good place to start.
>>
>>         Thanks.
>>         On 9/6/11 12:18 PM, puja nandamuri wrote:
>>>         the account configured for the repository database has the
>>>         following change of permissions after the intial tables
>>>         creation by Guvnor.
>>>
>>>         changed db_owner to db_datareader,db_datawriter and as
>>>         usual, it has public rights.
>>>
>>>         I am not an database expert but, should not the above
>>>         permissions allow for ( DatabaseMetaData#getTables) ?
>>>
>>>         any pointers on what exactly might be the sql used in this
>>>         case  ?
>>>
>>>         Thanks,
>>>
>>>         Ram
>>>
>>>         --- On *Mon, 9/5/11, Tihomir Surdilovic
>>>         /<tsurdilo at redhat.com>/* wrote:
>>>
>>>
>>>             From: Tihomir Surdilovic <tsurdilo at redhat.com>
>>>             Subject: Re: [rules-users] Guvnor repository database
>>>             use to store assets
>>>             To: rules-users at lists.jboss.org
>>>             Date: Monday, September 5, 2011, 11:02 AM
>>>
>>>             Jackrabbit will not try to create any new tables after
>>>             it initially created them. However it does call a
>>>             *PersistenceManager.checkSchema() method which AFAIK
>>>             tries to read from the db metadata (
>>>             DatabaseMetaData#getTables). If the user does not have
>>>             permissions to do that, it will fail which I think is
>>>             the case in your scenario.
>>>
>>>             Thanks.
>>>             On 9/5/11 1:04 PM, puja nandamuri wrote:
>>>>             Hi,
>>>>
>>>>             Sorry, I think the original question I had asked still
>>>>             seems to have been unanswered.
>>>>
>>>>             This is the question I had.
>>>>
>>>>             does Guvnor keep creating additional tables as per the
>>>>             need or is the Table structure that Guvnor creates in
>>>>             the beginning where all the assets are stored remains
>>>>             the same until we manually delete the Tables?
>>>>
>>>>
>>>>             after creating rules and assets for several days, we
>>>>             had to re deploy  a freshly compiled Guvnor war file(
>>>>             everything remaining the same)  using the same
>>>>             repository xml and same database connected through jndi
>>>>             datasource.
>>>>
>>>>             In other words, just the war file has been recompiled.
>>>>             we also deleted the workspace and repository
>>>>             directories previously created by Guvnor.
>>>>
>>>>             The DBA had locked the userid permissions to prevent
>>>>             any new table creation in the Guvnor database.
>>>>
>>>>             During Guvnor startup, Guvnor had complained about not
>>>>             having permission to create Tables.
>>>>
>>>>             My question is :
>>>>
>>>>             why does Guvnor need to create any additional tables
>>>>             and not use the existing Table structure in the database.
>>>>
>>>>              I would appreciate any thoughts on this.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>             --- On *Sun, 9/4/11, Nicolas Héron
>>>>             /<nicolas.heron.java at gmail.com>/* wrote:
>>>>
>>>>
>>>>                 From: Nicolas Héron <nicolas.heron.java at gmail.com>
>>>>                 Subject: Re: [rules-users] Guvnor repository
>>>>                 database use to store assets
>>>>                 To: "Rules Users List" <rules-users at lists.jboss.org>
>>>>                 Date: Sunday, September 4, 2011, 10:52 PM
>>>>
>>>>                 Hi,
>>>>
>>>>                     Sorry, but you do not have to delete the
>>>>                     workspace directory. Not sure where you are
>>>>                     getting this from? In cases where you have a
>>>>                     large number of packages/assets in Guvnor it is
>>>>                     rather recommended _not_ to delete the search
>>>>                     indexes written onto the file system, because
>>>>                     it takes extra time to re-create them.
>>>>
>>>>                 May be it is recommended. But when you modify a lot
>>>>                 the assets, rename, copy, delete,etc.. Guvnor gets
>>>>                 lost.
>>>>
>>>>>                     At startup, Jackrabbit (containent in Guvnor)
>>>>>                     reads all the database and creates the two
>>>>>                     directories. You do not need to backup them.
>>>>                     Again, I don't know where you are getting this
>>>>                     from. Jackrabbit does _not_ read the entire DB
>>>>                     on startup and does not write any of the JCR
>>>>                     content stored in an RDBMS to the file system
>>>>                     if you have configured it to store to the
>>>>                     RDBMS. If you for any weird reason are seeing
>>>>                     this on your end, you should really have
>>>>                     another look at your repository.xml.
>>>>
>>>>
>>>>
>>>>                 The search indexes, they are stored on the file
>>>>                 system no ? And with no index, you cannot reach any
>>>>                 of the assets. So when you delete thoses
>>>>                 directories, at startup, they are re-created and
>>>>                 the database is read. I do not know what is read,
>>>>                 but it can take quite some times, depending on the
>>>>                 size of the package. Now If there is a way to store
>>>>                 thoses indexes in the database, I would be happy to
>>>>                 know how.
>>>>
>>>>                 The project I am on has many rules and many big web
>>>>                 decision tables that end up with more than 100000
>>>>                 rules.  I am using 5.3 snapshot with MVEL beta6 =>
>>>>                 Startup time =5 minutes and building the package, 3
>>>>                 to 5 minutes on a HP G6 processor. On my PC that
>>>>                 has an i5 processor and a 32 bits linux, I cannot
>>>>                 build anymore the package.
>>>>                 With those sizes, which is not that much,
>>>>                 Guvnor/jackrabbits gets lots on the indexes : it
>>>>                 gives jackrabbit exceptioorn or spaces are not
>>>>                 considered. So then, what I do is delete those two
>>>>                 directories and restart guvnor and everything is
>>>>                 fine again.
>>>>                 Thanks
>>>>                 Nicolas
>>>>
>>>>
>>>>
>>>>                 -----Inline Attachment Follows-----
>>>>
>>>>                 _______________________________________________
>>>>                 rules-users mailing list
>>>>                 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
>>>
>>>
>>>             -----Inline Attachment Follows-----
>>>
>>>             _______________________________________________
>>>             rules-users mailing list
>>>             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
>>
>>
>>         -----Inline Attachment Follows-----
>>
>>         _______________________________________________
>>         rules-users mailing list
>>         rules-users at lists.jboss.org
>>         https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>>
>>     _______________________________________________
>>     rules-users mailing list
>>     rules-users at lists.jboss.org  </mc/compose?to=rules-users at lists.jboss.org>
>>     https://lists.jboss.org/mailman/listinfo/rules-users
>
>
>     -----Inline Attachment Follows-----
>
>     _______________________________________________
>     rules-users mailing list
>     rules-users at lists.jboss.org
>     </mc/compose?to=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/20110913/7d69dcbe/attachment.html 


More information about the rules-users mailing list