Drools-ant contains a task that can help you configure your Guvnor
instances in a Jackrabbit cluster -
Yes, the cluster_node.id has the same value for all guvnor instances
which might have been created by jackrabbit automatically without the
clustering information in the repository.xml.
at this point, it looks like all I would need is the clustering
setting in the repository.xml and that should create different
cluster_node.ids.
well atleast theoretically .
Since my repository.xml stores workspace,repository and versioning
information in the same sqlserver database, all I would need is to set
the journal type settings in the repository.xml to use the database.
In order to use clustering, the following prerequisites must be met:
* Each cluster node must have its own repository configuration.
*
A DataStore <
http://wiki.apache.org/jackrabbit/DataStore> must
always be shared between nodes, if used.
*
The global FileSystem
<
http://wiki.apache.org/jackrabbit/FileSystem> on the repository
level must be shared (only the one that is on the same level as
the data store; only in the repository.xml file).
*
Each cluster node needs its own (private) workspace level and
version FileSystem <
http://wiki.apache.org/jackrabbit/FileSystem>
(only those within the workspace and versioning configuration; the
ones in the repository.xml and workspace.xml file).
* Each cluster node needs its own (private) Search indexes.
* Every cluster node must be assigned a unique ID.
* A journal type must be chosen, either based on files or stored in
a database.
* Each cluster node must use the same (shared) journal.
*
The persistence managers must store their data in the same,
globally accessible location
anything else I might be missing ?
--- On *Tue, 9/13/11, Tihomir Surdilovic /<tsurdilo(a)redhat.com>/* wrote:
From: Tihomir Surdilovic <tsurdilo(a)redhat.com>
Subject: Re: [rules-users] Guvnor repository database use to store
assets
To: rules-users(a)lists.jboss.org
Date: Tuesday, September 13, 2011, 1:29 PM
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(a)redhat.com>
> </mc/compose?to=tsurdilo(a)redhat.com>/* wrote:
>
>
> From: Tihomir Surdilovic <tsurdilo(a)redhat.com>
> </mc/compose?to=tsurdilo(a)redhat.com>
> Subject: Re: [rules-users] Guvnor repository database use to
> store assets
> To: rules-users(a)lists.jboss.org
> </mc/compose?to=rules-users(a)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(a)redhat.com>/* wrote:
>>
>>
>> From: Tihomir Surdilovic <tsurdilo(a)redhat.com>
>> Subject: Re: [rules-users] Guvnor repository database
>> use to store assets
>> To: rules-users(a)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(a)redhat.com>/* wrote:
>>>
>>>
>>> From: Tihomir Surdilovic <tsurdilo(a)redhat.com>
>>> Subject: Re: [rules-users] Guvnor repository
>>> database use to store assets
>>> To: rules-users(a)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(a)gmail.com>/* wrote:
>>>>
>>>>
>>>> From: Nicolas Héron
<nicolas.heron.java(a)gmail.com>
>>>> Subject: Re: [rules-users] Guvnor repository
>>>> database use to store assets
>>>> To: "Rules Users List"
>>>> <rules-users(a)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(a)lists.jboss.org
>>>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> rules-users mailing list
>>>> rules-users(a)lists.jboss.org
>>>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>>
>>>
>>> -----Inline Attachment Follows-----
>>>
>>> _______________________________________________
>>> rules-users mailing list
>>> rules-users(a)lists.jboss.org
>>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>>
>>>
>>>
>>> _______________________________________________
>>> rules-users mailing list
>>> rules-users(a)lists.jboss.org
>>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>> -----Inline Attachment Follows-----
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/rules-users
>
>
> -----Inline Attachment Follows-----
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org </mc/compose?to=rules-users(a)lists.jboss.org>
>
https://lists.jboss.org/mailman/listinfo/rules-users
-----Inline Attachment Follows-----
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
</mc/compose?to=rules-users(a)lists.jboss.org>
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users