AFAIK, CND or Node Types will replicate over a cluster, provider
a) All the namespaces referenced in the CND files are on all of the cluster nodes.
b) The Node Types on each node dont conflict.

I would set the default logging level to debug in both JVM's and start up a clean cluster with both JVM's in different orders (eg A first then B, clean repo, B first then A) looking for exceptions around the repository initialization.

I would suspect that you will get some NodeType or namespace related errors at startup that are preventing one cluster from understanding the events from the other.

Thomas may be able to give more insight, but this is what my gut is saying is wrong.
HTH
Ian

On 27 Apr 2009, at 14:15, Nilshan wrote:


Hello Ian and Thomas ,

I am really sorry that I am replying after a long time, actually I was busy
with some other component.

When I tried Clustering without drools 5.X It worked absolutely fine
(Without shared N/W drive).
e.g : param name="directory" value="c:/Repo_Journal". And this is working
fine.

Both the clusters are on the same machine but different JVMs.

Now, When I introduced drools in clustering It started crying. (Unable to
read revision).

I think this is because...

Accessing Repository using ...

1.JCRRepositoryConfigurator config = new JackrabbitRepositoryConfigurator();
2.RuleAssetManager.repository =
config.getJCRRepository(REPOSITORY_HOME_DIR);
3.repoSession = repository.login();
4.config.setupRulesRepository(repoSession);     

At line 4 it setupRulesRepository which initially (At very first time)
registers different CND files.

i.e

//Note, the order in which they are registered actually does matter !
this.registerNodeTypesFromCndFile("/node_type_definitions/ tag_node_type.cnd",
ws);
this.registerNodeTypesFromCndFile("/node_type_definitions/ state_node_type.cnd",
ws);
this.registerNodeTypesFromCndFile("/node_type_definitions/ versionable_node_type.cnd",
ws);
this.registerNodeTypesFromCndFile("/node_type_definitions/ versionable_asset_folder_node_type.cnd",
ws);
this.registerNodeTypesFromCndFile("/node_type_definitions/ rule_node_type.cnd",
ws);
this.registerNodeTypesFromCndFile("/node_type_definitions/ rulepackage_node_type.cnd",
ws);

These CND files contain special characters ( like *) introduced by one
cluster which are not properly interpreted (understood) by the second
cluster. I feel that, this is the reason that clusters are not working in
harmony.


Thanks,
Nilshan.


Hello Ian and Thomas,
Thank you for your quick reply.
We will definitely try the suggested option to share the drive for the
clusters..
We will get in touch  soon..
Thanks a ton.

:rules:

Nilshan and Arpan.




Ian Boston wrote:

I see Thomas has picked up the thread, and he knows far more about
this than I do, so listen to him more than me.

1. I see that the journal directory is  on the c: drive, do that mean
that both Jackrabbit instances are running on the same physical
machine ?
2. It would be normal to put the local revision file with the local
repository storage eg


and the journal in a shared space.



You may be getting name clashes between nodes as a result of using the
same directory for both the private and the public shared locations.

---

The failure on the DB Journal looks like the DB connection is being
refused by the db server (url, username, password etc ).

"Unable to create connection.: Unable to
create connection." is probably from the JDBC driver.

Ian


On 31 Mar 2009, at 10:41, Nilshan wrote:


Hello Thomas,

Thanks for the reply...

Using FileJournal, we are facing the problem that is mentioned in the
previous message.....

Using DatabaseJournal, we are facing the following error:-


The following is the Error log while using DatabaseJournal..

**********************************************************
javax.jcr.RepositoryException: Unable to create connection.: Unable to
create connection.
at
org
.apache
.jackrabbit
.core.RepositoryImpl.createClusterNode(RepositoryImpl.java:650)
at
org .apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:
288)
at
org .apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:
557)
at
org.apache.jackrabbit.core.TransientRepository
$2.getRepository(TransientRepository.java:245)
at
org
.apache
.jackrabbit
.core.TransientRepository.startRepository(TransientRepository.java:
265)
at
org
.apache
.jackrabbit.core.TransientRepository.login(TransientRepository.java:
333)
at
org
.apache
.jackrabbit.core.TransientRepository.login(TransientRepository.java:
363)
at
com
.amicas
.rulemanagement
.RuleAssetManager.initializeRepository(RuleAssetManager.java:555)
at
com
.amicas
.rulemanagement.RuleAssetManager.getSession(RuleAssetManager.java: 517)
at
com
.amicas
.rulemanagement
.RuleAssetManager.getServiceImpl(RuleAssetManager.java:494)
at
com
.amicas
.rulemanagement
.RuleAssetManager.categoryExists(RuleAssetManager.java:420)
at
com
.amicas
.rulemanagement
.RuleAssetManager
.initializeRuleRepoAndMetaConfiguration(RuleAssetManager.java:1718)
at
com
.amicas
.rulemanagement
.RuleAssetManager.getRuleAssetManager(RuleAssetManager.java:167)
at
com
.amicas
.gwt
.rulemanagement
.servlet
.RuleServiceServlet.getAllRuleByCategory(RuleServiceServlet.java: 256)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:
528)
at
com
.google
.gwt
.user
.server
.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:265)
at
com
.google
.gwt
.user
.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java: 187)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at
org
.apache
.catalina
.core
.ApplicationFilterChain .internalDoFilter(ApplicationFilterChain.java:
252)
at
org
.apache
.catalina
.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 173)
at
org
.springframework
.orm
.hibernate
.support
.OpenSessionInViewFilter
.doFilterInternal(OpenSessionInViewFilter.java:172)
at
org
.springframework
.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:
76)
**********************************************************

My configuration for the DatabaseJournal is also mentioned in the
previous
message....

I hope that I have provided sufficient information to you.
If we are missing anything, let us know....


Thank You,
Nilshan and Arpan.





Thomas Müller-2 wrote:

Hi,

I tried shared Journal (as it is must and clearly suggested on
clustering
wiki) but it didn't work.

Could you tell us what the problem was?

Regards,
Thomas



--
View this message in context:
http://www.nabble.com/JackRabbit_Clustering-tp22785285p22801622.html
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.






--
View this message in context: 
http://www.nabble.com/JackRabbit_Clustering-tp22785285p23256026.html
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.


Reply via email to