|
[WD9] PB : Replication - l'abonné n'utilise pas les bons Id |
Débuté par GAGNON.RENAUD, 10 jan. 2006 10:53 - 1 réponse |
| |
| | | |
|
| |
Posté le 10 janvier 2006 - 10:53 |
bonjour,
j'ai un petit probleme de replication, mon abonné n'utiliste pas la plage d'id indiqué par le RPL, il commence a 1 alorsqu'il devrai commencer a 100000
le resultat est que sur le maitre je fait tout les insertions sur les tables que je veut, je peut syncroniser, sans probleme, j'ouvre l'abonné, il a bien tout les enregistrements ajouté par le maitre, mais quand je veut en rajouter un autre, mon abonné essaie d'utiliser l'ID1 et non celui defini par le RPL ce qui fait que j'ai une erreur de doublon sur clé : ID auto.
pour etre le plus clair possible je vous publie un extrai de code ainsi qu'une image. [URL]
[/URL] Création du maitre
HChangeRep("*",SCSelecteurRépertoire.SAIS_REP) HChangeRepJnl("*",SCSelecteurRépertoire.SAIS_REP,SCSelecteurRépertoire.SAIS_REP) HCreation(Replication_config,"swap") HRAZ(Replication_config) Replication_config.Poste="A" Replication_config.MOI=1 Replication_config.Type=1 Replication_config.Chemin=SCSelecteurRépertoire.SAIS_REP HAjoute(Replication_config) HCréationSiInexistant("*","swap") HCréeRéplicaMaître(SCSelecteurRépertoire.SAIS_REP+"\ReplicaMaitre.RPM") Création de l'abonné
SI fRep(Csrepertoire.SAIS_REP+"client.fic", frFichier)<>"" ALORS Erreur("Les fichiers données pour ce poste ont déjà été créés.") RETOUR SINON SI fRepCrée(Csrepertoire.SAIS_REP) ALORS
SI HCréeRéplicaAbonné(G_BDD_Path+"\ReplicaMaitre.RPM",Csrepertoire.SAIS_REP,Replication_config.IDReplication_config,plage_ID) ALORS HFerme("*") Multitâche(40) HOuvre(Replication_fichier,"swap") HLitPremier(Replication_fichier,Fichier) TANTQUE PAS HEnDehors(Replication_fichier) csmsg="copie de : "+Replication_fichier.fichier fCopieFichier(G_BDD_Path+"\"+Replication_fichier.fichier+".FIC", Csrepertoire.SAIS_REP) fCopieFichier(G_BDD_Path+"\"+Replication_fichier.fichier+".NDX", Csrepertoire.SAIS_REP) SI Replication_fichier.mmo=Vrai ALORS fCopieFichier(G_BDD_Path+"\"+Replication_fichier.fichier+".MMO", Csrepertoire.SAIS_REP) FIN HLitSuivant(Replication_fichier) FIN HChangeRep("*", Csrepertoire.SAIS_REP) HChangeRepJnl("*", Csrepertoire.SAIS_REP, Csrepertoire.SAIS_REP) HOuvre("*","swap") HInitAbonné("*", Csrepertoire.SAIS_REP+"\Replica_"+Replication_config.IDReplication_config+".RPL")SI HFichierExiste(Replication_config) ALORS
FIN HFerme("*") Multitâche(40) HChangeRep("*", G_BDD_Path) HChangeRepJnl("*", G_BDD_Path)HSynchroniseRéplica(G_BDD_Path, Csrepertoire.SAIS_REP,rplVersAbonné) FIN FIN FIN j'ai mis des test sur l'initabonné et la fonction a l'air de s'executer correctement
si vous avez eu ce soucis, ou bien si vous trouvez une solution, j'en serai heureux, car comme toujours c'est assez urgent :s ! merci ! |
| |
| |
| | | |
|
| | |
| |
Posté le 10 janvier 2006 - 12:08 |
C'est bon j'ai trouvé tout seul comme un grand ! en fait ce n'etait pas une erreur poorté sur la replication mais une etourderie sur les variables quand je met :
HInitAbonné("*", Csrepertoire.SAIS_REP+"\Replica_"+Replication_config.IDReplication_config+".RPL") en fait j'avais fermé replication_config.
il suffisait d'utiliser une variable intermediaire
HInitAbonné("*", Csrepertoire.SAIS_REP+"\Replica_"+ID_poste+".RPL")
voila ! pour ceux a qui ca aidera ! |
| |
| |
| | | |
|
| | | | |
| | |
|