Domino 9 und frühere Versionen > Entwicklung
Laufende Nr. die 1000ste
Semeaphoros:
Profildokumente können mit ihrem Caching-Mechanismus tatsächlich ein Problem darstellen. Vermutlich lässt sich das aber in diesem Falle umgehen, weiter unten darüber.
Nachschauen in einem View ist tatsächlich unzweckmässig, da bei der nichthierarchischen Netzwerkstruktur, die Domino schlussendlich bildet, nicht sichergestellt ist, dass alle Dokumente auch tatsächlich immer vorliegen.
Damit es zuverlässig läuft, muss der Prozess - notesuntypisch - an einen bestimmten Server gebunden werden.
Damit gibt es immer noch 2 unterschiedliche Ansätze:
A
Die Nummern werden nur vom Server über einen Agenten vergeben (egal ob periodisch oder angestossen durch neue/geänderte Dokumente). Dadurch ergibt sich zwar eine Verzögerung in der Nummernvergabe, aber es ist relativ einfach sicherzustellen, dass die Nummern sequenziell vergeben werden. In diesem Szenario ist es ziemlich unwesentlich, ob der Zähler in einem normalen Dokument, in einem Profil-Dokument oder direkt aus einer Ansicht ausgelesen werden.
B
Die Nummern werden von Clients vergeben. Dabei dürfen diese nur vergeben werden, wenn der Client direkt auf dem designierten Nummerierungsserver arbeitet. In diesem Fall sollte der Zähler in einem dedizierten normalen Dokument abgelegt werden, hier wirkt sich das Caching-Problem der Profildokumente sonst aus. Hier haben wir dann auch die Situation, dass mehrere Prozesse gleichzeitig Nummern anfordern bzw. vergeben können. Damit ist a) sicherzustellen, dass Nummern nicht doppelt und b) keine Löcher im Käse entstehen. Für beides gibt es Strategien: Wird ein neues Dokument erstellt, wird entweder bis zum Speichern keine Nummer oder nur eine provisorische Nummer vergeben. Nach dem Speichern wird ein Abbrechen/Löschen verboten. Oder, man vergibt die Nummer grundsätzlich erst beim Speichern.
So long
Jens
ata:
... ich habe mehrfach mit sequentiellen Nummern gearbeitet. Profildokumente eignen sich nur dann, wenn ich alleine in dieser DB arbeite - ansonsten wegen Cache absolut kein Weg...
... in meinen Datenbanken habe ich zwei Wege:
1. Konfig-Doc mit der aktuell zu vergebeneden Nummer. Pro Server wird in der Nummer ein Serverkennzeichen vergeben. Damit kann es auf einem Server keine doppelten Nummern geben.
2. In einer Ansicht nach der höchsten Nummer suchen und dann einen Zähler hochzählen. Für die Server wird ebenfalls ein Konfig-Doc benötigt, in welchem ich die Nummer speichere.
Ohne Serverkennzeichen kann nur dann gehen, wenn ein bestimmter Server jederzeit und von jedem Ort erreichbar ist - Ausnahmen müssten dann eben zurückgestellt werden und per Agent nachbenannt werden.
Da Notes keine Echtzeitdatenbank ist, kann man die Vergabe der Nummer auch über eine ASCII-Datei erzwingen. Sie darf zur Bearbeitung nur durch eine Person geöfnet werden.
... so ein grober Überflug - es gibt hier im Forum bereits einige Beiträge, an denen ich beteiligt war. Ein Beispiel für eine sequentielle Nummernvergabe per Konfig-Doc wurde mal von Doliman ins Forum gestellt...
ata
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln