Domino 9 und frühere Versionen > Entwicklung

laufende nummer für Dokumente vergeben

<< < (4/4)

koehlerbv:
Meinst Du, wenn Du beim Speichern erst die Nummer vergeben wird ? Wieso? Du mußt nur den gleichen Algorithmus verwenden, wie Du es jetzt beim Erstellen des Docs machst.

Läuft Deine App. nur auf einem einzigen Server ? Der könnte ja auch - mehr oder weniger - on the fly Nummern vergeben mit einem Agent, der auf neue Dokumente reagiert ...

Bernhard

ata:
... der Weg über das Profildokument schlägt auf jeden Fall fehl, wenn mehr als eine Person gleichzeitig in der Datenbank arbeiten. Das Profildokument wird temporär geladen und liegt während der Session ständig vor...

... man kann den Weg über ein Konfig-Doc ( auch Setup-Doc genannt ) wählen. Dort wird für diesen Server die zuletzt vergebene Nummer gespeichert. Im Save eines Dokumentes wird dort die Nummer ausgelesen und um einen Wert erhöht. Wenn man das einigermaßen sicher haben möchte, dann unterlegt man diesem Konfig-Doc noch ein Locking ( absperren des Dokumentes, solange ein User darauf zugreift )

... es gibt noch den Weg über Konfig-Doc und eine Ansicht zu gehen. Im Konfig-Doc wird eine Serverkennzeichen geladen. Die Nummer ergibt sich aus der in der Ansicht ermittelten höchsten Nummer. Wird das Dokument verworfen, und ist noch kein weiteres Dokument angelegt worden, dann ist die letzte Nummer weiterhin verfügbar...

... man kann eine Nummer auch aus einem Textfile ziehen. Hier besteht die Systemsicherheit, daß nicht 2 User gleichzeitig das Dokument speichern...

... die Hinweise von Bernhard sind ernst zu nehmen. Eine fortlaufende Nummernvergabe ist unter replizierenden Systemen nicht einwandfrei und vollkommen sicher lösbar...

ata

CodeWarrior:

--- Zitat von: koehlerbv am 17.09.03 - 21:09:36 ---@CodeWarrior:
Ich mag hier zwar die vollommen unnütze, weil das Thema Notes absolut verfehlende Diskussion "Laufende Nummern in Notes" nicht wieder aufleben lassen, aber auch Dein Vorschlag geht völlig am Thema vorbei.
- Was passiert, wenn sich jemand eine lokale Replik zieht ?
- Was passiert, wenn neben Server 1 plötzlich doch ein Server 2 da ist ?

"Notes und fortlaufende Nummern" ist so ungefähr das gleiche wie "Weichensteller bei der Lufthansa" - es gibt keine Zusammenhänge.

Bernhard

--- Ende Zitat ---

Hi Bernhard,
im Prinzip ist Deine Aussage schon richtig, wenn da nicht die Kunden wären ... ;)

Das Problem ist auch nicht Notes an sich, sondern verteilte Anwendungen. Eine übergreifende Nummerierung ist nur dann möglich, wenn alle Repliken jederzeit Verbindung zu einem "Master-Server" hätten, der dann die eigentliche Nummerierung vornimmt. Ist natürlich mit lokalen Repliken kaum machbar.

Viele Kunden benutzen aber ihre Datenbanken nur serverbasierend (z.B. Web-Anwendung mit Domino). Da ist eine saubere Nummerierung on-the-fly beim ersten Speichern schon machbar. Bei mehreren Repliken auf verschiedenen Servern natürlich auch nur mit getrennter Nummerierung (jeder Server zählt für sich).

Tom

koehlerbv:
Hi, Tom,

da stimme ich Dir vollkommen zu ;-)
Besser kann man es nicht sagen !

Ich werde mir Dein Posting speichern, denn die nächste Frage in diese Richtung kommt bestimmt.

Herzlichst,
Bernhard

cgorni:
Hallo,

hier mein Senf dazu. Prinzipiell gibt es meiner Meinung nach zwei "gute" Möglichkeiten laufende Nummern zu erzeugen:

1. Über Datum/Username
--------------------------------
Hier erzeugt man wie oben schon angedeutet einen Schlüssel über das aktuelle Datum. Damit sich zwei Personen nicht gegenseitig in die Quere kommen, kann man den Username noch integrieren.

In Lotus Workflow zum Beispiel sieht eine eindeutige Nummer so aus:

Admin/Gorni-23.01.2006-ADMN-6LBE8K

Wobei ich jetzt allerdings nicht weiss wie der hintere Teil erzeugt wird  ;D Wenn man anstelle dessen noch Minuten und Sekunden integriert hat man seine Nummer.

Nachteil: eventuelle Nummernvorgaben für die Struktur durch den Kunden kann man nicht berücksichtigen.


2. Agent
-----------
Die meiner Meinung nach einzige Möglichkeit strukturierte Nummern eindeutig zu machen ist ein Background-Agent, der auf einem(!) Server läuft und allen Dokumenten, die noch keine Nummer haben eine geben.

Das heisst wir haben eine zentrale Stelle, die die Nummer verteilt.

Nachteil: man hat die Nummer erst am nächsten Tag oder (wenn man den Agenten tagsüber laufen lässt) eventuell Replikationskonflikte.


   Admin/Gorni-23.01.2006-ADMN-6LBE8K

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln