Domino 9 und frühere Versionen > ND8: Administration & Userprobleme
Replikation von Templates verhindern
Peter Klett:
--- Zitat von: sommersprosse am 10.09.14 - 10:41:00 ---... ist doch echt unglücklich wie eingeschränkt IBM hier Möglichkeiten vorsieht...., oder? ...
--- Ende Zitat ---
Nein, das kann ich so nicht stehen lassen. Eine Replik ist dazu da, damit sie repliziert, wozu sollte IBM also einen großen Verwaltungsapparat schaffen, damit sie es nicht tut?
Außerdem bietet IBM eine ganz einfache Möglichkeit, die Replikation zu verhindern, nämlich, wie Tode schon schrieb, aus der Replik eine Kopie zu machen. Und wenn es einem zu mühsam ist, das auf mehreren Datenbanken / Schablonen auszuführen, schreibt man sich halt ein Script, das im Kern aus ein paar Zeilen besteht
'Quelldatenbank kopieren und löschen
Dim quelldb As NotesDatabase
Dim zieldb As NotesDatabase
Set quelldb = New NotesDatabase (server1, dateiname1)
Set zieldb = quelldb.CreateCopy (server2, dateiname2)
Call quelldb.Remove
Welche weiteren Möglichkeiten erwartest Du von IBM? Wieviel einfacher hättest Du es denn gerne?
Tode:
@Sommersprosse: Ja, wir haben da was selbstentwickeltes. Und "unglücklich" finde ich das nicht, man hat ja die Möglichkeit vorzusorgen mit verhältnismässig geringem Aufwand.
@Peter: Vorsicht... Gerade bei den Templates ist folgender Passus aus der Designer- Hilfe zur Methode "CreateCopy" extrem wichtig:
--- Zitat ---The copy contains the design elements of the current database, an identical access control list, and an identical title. It does not contain any documents.
--- Ende Zitat ---
z.B. Die events4.ntf enthält sämtliche Vorgaben für Event Messages / Default Statistic Thresholds / etc. Beim Start des entsprechenden Tasks werden diese mit der events4.nsf verglichen und fehlende / neuere aktualisiert, etc. Wenn man also nur mit CreateCopy arbeitet, gehen diese Daten verloren, und man hat kein aktualisiertes Event- Handling. Bei einigen anderen Schablonen ist es ähnlich (schema.ntf).
Das heisst: Dein Code muss auf jeden Fall erweitert werden um ein Kopieren aller Dokumente von quelldb nach zieldb (und zwar soweit möglich unter Beibehaltung der UNIDs, auch die spielt ab und zu eine Rolle)... Aber ansonsten hast Du vollkommen recht.
Pfefferminz-T:
Hallo Ulli,
würde ich auch nicht so stehen lassen... das muss pro Version einmal gemacht werden und es gibt Tools oder einfachen Programmcode dafür (z.Bsp. Antrid oder http://www.turtleweb.com/turtleweb70.nsf/pages/toolsandtoys). Wenn die NTFs auf dem Server eine andere ReplicaID haben, kann auch nicht mehr versehentlich der Admin lokale Schablonen des Clients replizieren.
Ausserdem empfiehlt es sich, auf einem Server nur die notwendigen Schablonen vorzuhalten.
Gruß,
Thorsten
Peter Klett:
--- Zitat von: Tode am 10.09.14 - 11:23:05 ---...
@Peter: Vorsicht... Gerade bei den Templates ist folgender Passus aus der Designer- Hilfe zur Methode "CreateCopy" extrem wichtig:
--- Zitat ---The copy contains the design elements of the current database, an identical access control list, and an identical title. It does not contain any documents.
--- Ende Zitat ---
z.B. Die events4.ntf enthält sämtliche Vorgaben für Event Messages / Default Statistic Thresholds / etc. Beim Start des entsprechenden Tasks werden diese mit der events4.nsf verglichen und fehlende / neuere aktualisiert, etc. Wenn man also nur mit CreateCopy arbeitet, gehen diese Daten verloren, und man hat kein aktualisiertes Event- Handling. Bei einigen anderen Schablonen ist es ähnlich (schema.ntf).
Das heisst: Dein Code muss auf jeden Fall erweitert werden um ein Kopieren aller Dokumente von quelldb nach zieldb (und zwar soweit möglich unter Beibehaltung der UNIDs, auch die spielt ab und zu eine Rolle)... Aber ansonsten hast Du vollkommen recht.
--- Ende Zitat ---
Das sollte ja auch nur ein Beispiel sein, und kein fertiges Tool, allerdings wäre diese Ergänzung nicht wirklich sehr aufwändig (5 Minuten) ...
--- Code: ---'Quelldatenbank und Dokumente mit identischer UniversalID kopieren und löschen
Dim quelldb As NotesDatabase
Dim quellcol As NotesDocumentCollection
Dim quelldoc As NotesDocument
Dim zieldb As NotesDatabase
Dim zieldoc As NotesDocument
Set quelldb = New NotesDatabase (server1, dateiname1)
Set zieldb = quelldb.CreateCopy (server2, dateiname2)
Set quellcol = quelldb.AllDocuments
Set quelldoc = quellcol.GetFirstDocument
Do While Not quelldoc Is Nothing
Set zieldoc = New NotesDocument (zieldoc)
Call quelldoc.CopyAllItems (zieldoc)
zieldoc.UniversalID = quelldoc.UniversalID
Call zieldoc.Save (True, True)
Set quelldoc = quellcol.GetNextDocument (quelldoc)
Loop
Call quelldb.Remove
--- Ende Code ---
Sommersprosse:
Hallo zusammen,
da hab ich ja ne Welle losgetreten.....
Unglücklich nur in Bezug auf die templates (oder auch nicht), ansonsten genießen wir die Replikation innerhalb des Konzerns und sind begeistert über die reibungslose Funktion.
Unglück in dem Sinn da es mich voll erwischt hat und ich jetzt zwei Tage Nacharbeit geleistet habe, aber Ihr habt natürlich recht das IBM etwas nicht abschalten will mit einfachen Mitteln, was sie hier auszeichnet.
Peter ich erwarte auch kein fertiges Script von Euch, die erste Antwort von Tode war für mich völlig ausreichend. Den Rest der Arbeit musste ich erledigen. Ich war hier etwas in Zeitnot und konnte mir nicht erst noch die Script Optionen anschauen, da ich einfach zuwenig programmiere.... abgesehen davon daß ich erst gar nicht auf die Idee gekommen bin. Aber danke für den Impuls.
Ich habe meinen Bock gerade gezogen, ich habe daraus gelernt, passiert mir nicht mehr.
Was mir nur aufgefallen ist beim händischen kopieren daß er den Titel nicht mitgenommen hat... War mir so nicht in Erinnerung.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln