Das Notes Forum
Domino 9 und frühere Versionen => Administration & Userprobleme => Thema gestartet von: derhansen am 03.11.03 - 08:01:48
-
Hallo,
wie kann ich in einer Datenbank die Deltion Stubs ausschalten ? Die Datenbank dient nur zum temporäreren Speichern von Dokumenten wodurch eine Menge Deletion Stubs entstehen. Das möchte ich gerne verhindern. Weiß jemand wie das geht ?
Gruß,
derHansen
-
Wirklich unterdrücken lassen sie sich nicht, aber Notes entfernt die Deletion Stubs aufgrund von dieser Einstellung in den Reiplikations-Einstellungen:
"Remove documents not modified in the last [ ] days."
(der erste Eintrag auf dem "Platzspar"-Tab der Replikations-Einstellungen). Fragt sich allerdings, ob das Sinn macht, wenn man den Compact über die Datenbank laufen lässt, werden die Deletion-Stubs in Platzbedarf reduziert, zudem sollte man daran denken, wenn man mehrere Replikationen hat, können einem beim Entfernen der Deletion Stubs bereits gelöschte Dokumente wieder aus einer Replikation "zurückgegeben" werden.
-
Hi,
es gibt keine Einstellung, mit der man die Deletion Stubs "deaktivieren" kann. Das ganze macht ja auch keinen Sinn, denn sonst würden bei einer Replikation ja wieder alle Löschungen als neue Dokumente reinkommen.
Die Deletion Stubs bleiben solange in der Datenbank, bis das Cutoff Datum (wird in den Replizierparametern der Datenbank gesetzt) erreicht ist.
Du könntest also das Cutoff Datum auf gestern setzen, danach werden die Deletion Stubs gelöscht.
Das Cutoff Date lässt sich leider nicht per LotusScript setzen (ist nur ReadOnly in der NotesReplication Klasse).
Andreas
-
Hier ein AgentenCode, der ausgewählte Dokumente ohne deletionStubs löscht ( das zeugs ist schon älter und ich habe nicht getestet, ob es das jetzt auch noch tut )
Declare Function W32_NSFNoteDelete Lib "nnotes.dll" Alias "NSFNoteDelete" _
( Byval hDb As Long, Byval NoteID As Long, Byval UpdateFlags As Integer ) As Integer
Declare Sub W32_OSPathNetConstruct Lib "nnotes.dll" Alias "OSPathNetConstruct" _
(Byval portName As String, Byval ServerName As String, Byval FileName As String, Byval retPathName As String)
Declare Function W32_NSFDbOpen Lib "nnotes.dll" Alias "NSFDbOpen" ( Byval dbName As String, hdb As Long ) As Integer
Declare Function W32_NSFDbClose Lib "nnotes.dll" Alias "NSFDbClose" ( Byval hdb As Long ) As Integer
Sub Initialize
'######### NOTES STANDARD DEFINITIONS #############
Dim ses As New notessession ' one and only session
Dim ndb As notesdatabase ' current DB
Dim doc As notesdocument ' current document being processed:
Set ndb=ses.CurrentDatabase
Set doc = ndb.Unprocesseddocuments.getFirstDocument
Const MAXPATH=256
Const UPDATE_NOSTUB = &h0200
Dim path As String, noteid As Long, dbPath As String*MAXPATH, hdb As Long
dbPath = String$(MAXPATH, Chr(0))
noteID = Val("&h" &doc.Noteid)
W32_OSPathNetConstruct "",ndb.Server, ndb.FilePath, dbPath
W32_NSFDbOpen dbPath, hdb
If hdb=0 Then Exit Sub
Print "deleting... note= " ¬eid
W32_NSFNoteDelete hDb, noteid, UPDATE_NOSTUB
W32_NSFDbClose hdb
End Sub
-
Danke für die vielen Antworten.
Bei "Remove documents not modified in the last [ ] days." habe ich 0 Tage eingetragen, dann bleiben nicht allzuviele Deletion Stubs über (auf jedem Fall besser als die 1.39 Mio. die da noch am Freitag drin waren ;D )
Der Agent-Code zum löschen ohne Deletion Stubs sieht sehr interessant aus. Den kann ich bestimmt woanders gebrauchen, nur leider hier nicht, da ich ca. 310.000 Dokumente auf einmal löschen muss und das dann zu lange dauern würde.
Gruß,
derHansen
-
nun ja, frisst ja kein Brot... , der Code ;D
-
Aha! Bei dieser Menge ist die Frage durchaus gerechtfertigt :)
-
derdiedasHansen, kannst Du den Thread noch auf "erledigt" stellen?
-
Wie setze ich den Thread denn auf erledigt ?
Edit: ...hab den Knopf gefunden.
Gruß,
derHansen
-
Bei jeder Message im Thread hast Du als "Eigner" einen Buhtong mit der Bezeichnung "Erledigt" (oben an der MSG)
-
Ich hätte da noch ein Verständnisproblem: Geht es darum, Dokumete zu löschen, ohne dass Deletion Stubs übrigbleiben. Oder sollen nur die Deletion Stubs beseitigt werden, die "normalen" Dokumente aber erhalten bleiben.
Andreas
-
Es ging darum, Dokumente zu löschen ohne dass Deletion Stubs übrig bleiben.
Gruß,
derHansen
-
auch wenn der Thread schon erledigt ist; der Vollständigkeit halber noch ein Link
http://www.nsftools.com/tools/delstubs.htm