Domino 9 und frühere Versionen > ND6: Entwicklung

db.compact bringt Fehler

(1/3) > >>

William Wallace:
Hallo,

ich biete in einem Portal eine Funktion, womit der User sein Mailfile compacten kann:


Sub Click(Source As Button)
   
   Dim session As New NotesSession
   Dim workspace As New NotesUIWorkspace   
   Dim reg As New NotesRegistration
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   
   Set doc = workspace.CurrentDocument.Document
   
   server = doc.Mail_Server(0)
   path = doc.Mail_Path(0)
   
   Dim db As New NotesDatabase( server, path )
   If ( db.PercentUsed < 85 ) Then
      Call db.Compact
      Print ("Beginne mit dem Compact. Sie können wie gewohnt weiterarbeiten...........")
   Else
      Msgbox ("Die Auslastung Ihres Mailfiles liegt bei: " & db.PercentUsed & "%. Ein compact ist nicht notwendig!")
   End If
End Sub


Einige User bekommen jedoch die Meldung:

Only local databases can be compacted (Servername!!!mail\name.nsf)

Woran kann das liegen ??? Ein manueller compact über das Mailfile funktioniert...

Gruß,
William

TMC:
Das liegt daran:


--- Zitat von: Notes 6 Designerhilfe ---Compact method

This method raises an error if the database is not local.
--- Ende Zitat ---

Warum willst Du denn, dass ein User *manuell* sein Mailfile auf dem Server compacten soll? Das kannst Du doch über den Domino automatisch machen lassen.
Und welches Interesse hätte ein User daran? Es bringt ihn aus User-Sicht doch keinen Schritt weiter.
Lokale Komprimierung aber durchaus, z.B. wegen Festplattenplatz seines Notebooks.

flaite:
Ist das Wort "Portal" das neue Wort für Notes-Datenbank  ;D
Mich würde interessieren welche Notes-Anwendung nach dieser Benutzung des Begriffes kein Portal ist?
Ein Begriff, dessen semantische Bedeutung keine Grenzen mehr hat, macht keinen Sinn mehr. Ich arbeite nicht im Portalbereich, deshalb weiss ich auch keine Definition. Bin aber mit der Benutzung vorsichtig.

Compacten von Datenbanken gehört eindeutig in den Aufgabenbereich des Admins.
Es gibt verschiedene Standardmöglichkeiten, um das zu automatisieren (z.B. Programmdokumente, soviel ich weiss).

Ich würd dieses Projekt abbrechen, aber das Problem ist, dass dies auf dem Client läuft.
Du könntest die User Compact-Anforderungsdokumente auf dem Server erstellen lassen. Das sind dann normale Notes Dokumente, in dem alle benötigten Infos drinstehen (z.B. Pfad zu diesem Mailfile). Und dann ein zeitgesteuerter Agent, der die angeforderten Mail-Datenbanken compacted. 

Als nächstes werden User fragen, ob sie nicht ein Anforderungsdokument erstellen können, das bewirkt, dass die Datenbank jede Woche compacted sind.
Ein paar User werden es vergessen.
Um den Usern die Arbeit zu ersparen ist es besser, dass per automatisierten, zeitgesteuerten Task für alle Datenbanken einzustellen.  8)

Man sollte immer hinterfragen, ob die Anforderungen an deren Realisierung wir arbeiten Sinn machen. Für diese schwierige Aufgabe, gibt es keine einfache Lösung. Techies neigen dazu, zu sehr auf der Implementierungsseite zu sein und die Motivation der Lösung, an der sie arbeiten, zu wenig kritisch zu hinterfragen.
Nicht-Techies wissen zu wenig über das System, auf dem eine modellhafte Lösung für die Aufgabenstellung erstellt wird. Wissen über das System der Lösungsplattform selbst beeinflusst aber in der Praxis die Anforderungen. Und dieses Wissen kann die Anforderungen effizienter machen. Diese ganze alte Theorie mit: Kunde ohne Ahnung von System schreibt Lastenheft und technische Leute erstellen daraus ein Pflichtenheft ist aus heutiger Sicht einfach naiv. Aber das ist ein anderes Thema.

Aber grundsätzlich: Sei agil und trage Verantwortung-> hinterfrage die Motivation der Anforderungen.

Gruß Axel

William Wallace:
hm...also als portal definiere ich unsere eigenprogrammierte willkommensseite,
wo etliche Funktion von anderen Datenbanken integriert sind, um sie hier einfacher
aufrufen zu können.

ich weiß auch, dass der compact serverseitig gesteuert werden kann. wir haben jedoch seit längerer zeit das problem, das unser server bei diesem task abbricht und sich verabschiedet.
die admins haben dafür keine lösung - deshalb meine angebotene lösung: ich habe eine report-datenbank, wo alle dbs auf dem server gelistet werden inkl. acl entries. hier kann man u.a. auch änderungen an der acl vornehmen (vorteil sie bleiben dokumentiert). desweiteren läuft ein agent über alle dbs, der die auslastung prüft: ist sie unter einem bestimmten wert bekommt a) bei mailfile der besitzer eine mail mit aufforderung zum compact und b) bei anwenderdatenbanken der jeweilige manager der db eine mail, usw.

nehme mir deine kommentare trotzalledem mal an...

Gruß,
William

Roalf:
du laborierst hier an den Wirkungen statt dich um die Ursachen zu kümmern.


--- Zitat ---die admins haben dafür keine lösung -
--- Ende Zitat ---
.

Das der Compact abbricht hat i.d.R. ganz simpele Ursachen (zumeist eine korrupte DB). Welche das ist kann man leicht im Log sehen. Manchmal hilft ein Fixup, sonst einfach eine neue Kopie der DB anlegen.
Lange Rede kurzer Sinn: dieses Admins sind unfähig. Du darfst mich ihnen gegenüber auch gerne zitieren.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln