[SQLDMO] Merge Replication

Pagina: 1
Acties:
  • 125 views sinds 30-01-2008
  • Reageer

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:31
Ik ben bezig met een C# programma, waar ik mbhv SQLDMO merge replication wil opzetten.
Het lukt me om merge - replication te 'enablen' op een 'publisher', ik kan ook een 'publication' aanmaken met een aantal 'articles', etc....
Als ik in SQL Server Enterprise manager ga kijken, zie ik ook dat dit allemaal goed gegaan is.

Mijn probleem zit 'm nu echter bij het aanmaken van een 'subscription' voor de 'publication' die ik net aangemaakt heb.
Ik doe dit mbhv volgende code:
code:
1
2
3
4
5
6
7
8
9
10
11
SQLDMO.MergeSubscription2Class subscr = new MergeSubscription2Class();
subscr.Subscriber = "servername";
subscr.SubscriptionDB = "subscrdatabasename";
subscr.SyncType = SQLDMO_SUBSYNC_TYPE.SQLDMOSubSync_Auto;
subscr.MergeSchedule.FrequencyInterval = 1;
subscr.MergeSchedule.FrequencyType = SQLDMO_FREQUENCY_TYPE.SQLDMOFreq_Autostart;
subscr.MergeSchedule.FrequencyRelativeInterval = SQLDMO_FREQRELATIVE_TYPE.SQLDMOFreqRel_First;
subscr.MergeSchedule.DoAlter();
subscr.Priority = 0.0f;

publi.MergeSubscriptions.Add (subscr);

(Waar publi dus een 'publication' is.

Echter, op die laatste regel (waar ik de subscriber dus aan de publication toe ken), krijg ik volgende exception met deze extra info:
[Microsoft][ODBC SQL Server Driver][SQL Server]The remote server is not defined as a subscription server.
Blijkbaar moet ik dus nog de server (die in mijn geval wel niet remote is), als een subscription server definieren. Echter, hoe moet ik dat doen ? Welke classes heb ik er voor nodig ?
Op internet en in de Books Online kan ik zowiezo niet veel informatie vinden hierover.
Ik heb ook al ff gekeken naar het 'DistributionSubscription' object. Ik heb zo'n object aangemaakt, maar heb geen idee welke properties ik allemaal moet zetten, en waar ik dat object dan kan gebruiken / toewijzen.

Iemand hier misschien ervaring met het opzetten van (merge) replication in Sql Server via SQLDMO ?

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:31
\o/

Gevonden.

Ik moest nog een 'RegisteredSubscriber' aanmaken, en deze dan toevoegen aan de registered-subscribers collection van de publisher.

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:31
OK.
Ik heb nu dus alles kunnen opzetten, maar, de Agents (snapshot agent en merge agent) willen niet starten.
Ook bij 'Publishers' onder 'Replication monitor' heb ik een fout.
Blijkbaar kan er niet ingelogd worden, ik heb echter de user-name & pwd meegegeven.

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:31
Dit is ook opgelost. :P
Je moet natuurlijk bij de subscriber ook de authentication-mode en username & pwd meegeven

(Toch zou de documentatie ivm SQL-DMO in de Books Online heel wat beter kunnen...).


Hmm, het werkt blijkbaar toch nog niet zo goed...
Ik zet nu wel m'n security enzo, maar het boeltje werkt toch nog niet.
Als ik dan echter in Enterprise manager ga gaan kijken, naar de properties van m'n publisher en subscriber, zie ik wel dat de username goed ingevuld staat. Als ik dan het wachtwoord zelf nog eens zet (in enterprise manager dus), en ik start dan de snapshot agent etc.... dan werkt het allemaal.
:?

[ Voor 52% gewijzigd door whoami op 14-09-2005 16:06 ]

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 27-04 18:17

gorgi_19

Kruimeltjes zijn weer op :9

whoami, zou je voor de vorm anders niet een clone account kunnen maken? :P Zo lijkt het meer op een discussie in plaats van een monoloog :P

* gorgi_19 runs

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 16:47

Pelle

🚴‍♂️

n00bs

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:31
He, verkloot mijn topic niet. :(

https://fgheysels.github.io/


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Ik wil je wel helpen, maar je bent te snel voor mij....

Oops! Google Chrome could not find www.rijks%20museum.nl


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:31
Ik snap het ff niet....

Ik heb de security gezet van de distributor.
Ik heb de security gezet van de subscriber.

Echter, ik vind nergens hoe ik de securiity kan zetten van de publisher. Ik kan dit via Enterprise manager doen, maar ik vind nergens een manier hoe ik het kan doen via sql-dmo.

Ik heb wel een manier gevonden hoe ik dit zou kunnen doen als ik gebruik maak van merge-pull replication, maar ik maak gebruik van merge-push replication.

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:31
Pfff, eindelijk gevonden.
Ik moest natuurlijk ook de security-mode van de publisher zetten, en dat had ik fff over het hoofd gezien.

code:
1
2
3
4
5
DistributionPublisherClass publisher = new DistributionPublisherClass();
publisher.Name = "bliep";
...
publisher.PublisherSecurity.SecurityMode = SQLDMO_REPLSECURITY_TYPE.SQLDMOReplSecurity_Normal;
...

https://fgheysels.github.io/


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
\0/ Ik wist dat ik op je kon rekenen :Y)

Oops! Google Chrome could not find www.rijks%20museum.nl

Pagina: 1