cancel
Showing results for 
Search instead for 
Did you mean: 

Problème synchronisation cluster

rokad
Champ in-the-making
Champ in-the-making
Bonjour

J'ai mis en place un Alfresco en cluster sur deux postes sous Ubuntu.

Les répertoires alf_data et share sont dans le répertoire srv/alfresco sur les deux serveur et les répertoires contentstore de ces deux répertoires sont des répertoires partagés par un lien symbolique.

Quand je crée un document sur le serveur 1, je le vois bien sur le serveur 2 et je peux le lire et le modifier.

Mon problème arrive, ne vous inquiétez pas…

Donc sur le serveur 2 j'ai bien mon fichier créé par le serveur 1. Et je peux modifier le fichier, mais justement, si je le modifie et que je valide l'enregistrement alors la modification n'est pas visible sur le serveur 1 et lorsque je veux le modifier j'ai une erreur :

quand je fais éditer en ligne (la première fois) j'ai le message :

Impossible d'extraire une copie de travail du contenu suite à une erreur système :Failed to update node 553

Si je re-clique sur Editer en ligne, je peux modifier mon fichier mais je ne vois pas les modifications du serveur 1.

Si je relance tomcat sur le serveur 1, je vois bien les modifications du serveur 2.

Est ce que quelqu'un sait d'où cela peut venir ? Un oubli d'un paramétrage pour la synchronisation ?

Résumé :

Fichier créé sur serveur 1
Fichier modifié sur serveur 2
Serveur 1 ne voit pas les modifications sauf si on relance tomcat

Merci pour votre aide  Smiley Very Happy
21 REPLIES 21

jayjayecl
Confirmed Champ
Confirmed Champ
Edition suite erreur d'interprêtation.

rokad
Champ in-the-making
Champ in-the-making
Si mais je sais pas trop quoi mettre dans le ehcache-custom.xml

le fichier properties est bien configuré pour faire du jgroups mais pour de l'unicast en TCP, tout ce que j'ai trouvé sur le site ehcache me fait planter le lancement du tomcat.

Et quand je mets du RMI dans le ehcache ça fonctionne à peu prêt mais je perd la session au bout de 3 minutes et j'ai la réplication que dans un sens…

En gros, je suis dans une impasse.

rguinot
Confirmed Champ
Confirmed Champ
Utilisez le fichier ehcache-custom.xml.sample.cluster fourni dans votre version, si vous n'en comprenez pas tous les tenants et les aboutissants.

rokad
Champ in-the-making
Champ in-the-making
Bon j'ai remis le ehcache.xml qui est fourni avec les sources de Alfresco que je n'ai pas modifié.

Le but est de faire du TCP en unicast avec JGroups

Dans mon alfresco-global.properties j'ai rajouté les lignes :


dir.root=/srv/alfresco/alf_data
db.username=test
db.password=test
ooo.exe=soffice
ooo.enabled=false
jodconverter.officeHome=./OpenOffice.org
jodconverter.portNumbers=8101
jodconverter.enabled=true
img.root=/usr/
swf.exe=pdf2swf
db.driver=org.postgresql.Driver
db.url=jdbc:postgresql://172.11.42.02:5432/test
alfresco.context=alfresco
alfresco.host=${localname}
alfresco.port=8080
alfresco.protocol=http
#
share.context=share
share.host=${localname}
share.port=8080
share.protocol=http
avm.rmi.service.port=50501
avmsync.rmi.service.port=50502
attribute.rmi.service.port=50503
authentication.rmi.service.port=50504
repo.rmi.service.port=50505
action.rmi.service.port=50506
wcm-deployment-receiver.rmi.service.port=50507
monitor.rmi.service.port=50508

index.recovery.mode=FULL
alfresco.cluster.name=alftestcluster

index.recovery.stopOnError=false
index.recovery.maximumPoolSize=5
index.tracking.cronExpression=0/2 * * * * ?
index.tracking.adm.cronExpression=${index.tracking.cronExpression}
index.tracking.avm.cronExpression=${index.tracking.cronExpression}
index.tracking.maxTxnDurationMinutes=10
index.tracking.reindexLagMs=1000
index.tracking.maxRecordSetSize=1000
index.tracking.maxTransactionsPerLuceneCommit=100

alfresco.tcp.initial_hosts=172.11.42.01[7800],172.11.42.02[7800]
alfresco.jgroups.defaultProtocol=TCP
log4j.logger.org.alfresco.repo.jgroups=debug
log4j.logger.org.alfresco.enterprise.repo.cache.jgroups=debug

J'ai fais ça sur les deux serveurs. Je n'ai mis en place que le fichier alfresco-global.properties, rien mis dans repository.properties ni dans custom-repo…

Quand je crée un fichier sur le serveur 2 je le vois et je peux le modifier sur le serveur 1 mais une fois modifié sur le serveur 1 je ne vois pas la modif sur le serveur 2 et je ne peux plus le modifier en ligne sur le serveur 2 (impossible d'extraire une copie de travail du contenu suite à une erreur système 01100001 ce noeud a déjà été archivé). Et pourtant sur le serveur 1 j'ai juste fais une modification en ligne puis terminer l'édition.

J'ai loupé quelque chose ? Est ce que JGroups est activé par défaut ? Y'a moyen de vérifier que les deux postes se voient bien ?

Merci pour votre aide

rokad
Champ in-the-making
Champ in-the-making
Je précise que la base de donnée est sur le serveur 1 et que les fichiers sont sur le serveur 2 dans des répertoires alf_data et share avec des liens virtuels.

rokad
Champ in-the-making
Champ in-the-making
En fait il doit manquer quelque chose car chacun de mes fichiers vis sa vie sur les deux serveurs. A la création on voit ce qu'à écrit l'autre mais ensuite quand je modifie d'un côté ou de l'autre, je ne vois que les modification du serveur où je suis et pas du tout celui de l'autre. Il n'y a aucune synchro entre les deux serveurs…

Si quelqu'un a une idée…

rokad
Champ in-the-making
Champ in-the-making
Une dernière question avant l'abandon car j'ai essayé toutes les docs et pas une ne fonctionne…

Dans un exemple j'ai trouvé ça


Before starting Tomcat on the two nodes, I enabled a log4j logger so I could see nodes join and leave the cluster:

log4j.logger.org.alfresco.enterprise.repo.cache.jgroups=INFO

After starting up Tomcat, I eventually saw this in catalina.out:

06:24:52,043 INFO [repo.jgroups.AlfrescoJGroupsChannelFactory]
Created JChannelFactory:
Cluster Name: testcluster
Stack Mapping: {DEFAULT=TCP}
Configuration: file:/opt/apache/apache-tomcat-5.5.27/webapps/alfresco/WEB-INF/classes/alfresco/jgroups-default.xml

Je ne vois jamais le message concernant le cluster dans Catalina.out, c'est normal ?

rguinot
Confirmed Champ
Confirmed Champ
le multicast est il autorisé dans votre environnement ? il semble que avez configuré jgroups en tcp , avez vous essayé de lister statiquement les peers  (initial hosts) ?

rokad
Champ in-the-making
Champ in-the-making
Non malheureusement le multicast n'est pas autorisé sur le réseau.

Je ne sais pas quoi mettre dans le ehcache pour lister statiquement les peers.

J'ai essayé de mettre ça dans le ehcache :

<cacheManagerPeerProviderFactory
        class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
        properties="peerDiscovery=manual,
            rmiUrls=
//host2:7800/org.hibernate.cache.StandardQueryCache|
//host2:7800/org.hibernate.cache.UpdateTimestampsCache|
//host2:7800/org.alfresco.repo.domain.hibernate.NodeImpl|
//host2:7800/org.alfresco.cache.node.rootNodesCache|
//host2:7800/org.alfresco.cache.node.nodesCache|

avec tous les titres des sections qui sont dans le ehcache mais j'ai les mêmes symptômes : je ne peux pas modifier un fichier sur les deux postes de travail.

rguinot
Confirmed Champ
Confirmed Champ
le fichier ehcache cluster n'est pas a modifier (sauf si vous savez ce que vous faites).

un exemple de mise en oeuvre avec est dispo ici : http://www.ziaconsulting.com/technology/alfresco-technology/alfresco-ha-cluster-on-amazo-ec2/ (google).
ec2 n'autorise pas le multicast donc c'est similaire à votre cas.