Das Notes Forum

Lotus Notes / Domino Sonstiges => Java und .NET mit Notes/Domino => Thema gestartet von: Fraiser am 07.02.08 - 11:54:32

Titel: komplett leeres Document
Beitrag von: Fraiser am 07.02.08 - 11:54:32
Mir ist gerade aufgefallen, daß ich beim rumspielen mit der Java API auf einmal ein komplett leeres Document habe. Wie ist denn dies möglich?

Code
         DocumentCollection x = db.getAllDocuments();
         
         Document current;
         current = x.getFirstDocument();
         int i = 0;
         
         System.out.println("----------- DOCUMENTS -----------------");
         
         while( (current = x.getNextDocument()) != null )
         {
            System.out.println( current.getUniversalID() + " - " + current.getNoteID() );
            if(current.getUniversalID().length() == 0)
            {
               for(Item item : (Vector<Item>)current.getItems())
               {
                  System.out.println("\t\t\" + item.getName() + " - " + item.getValueString());
               }
            }
            
            i++;
         } 
         System.out.println(i + " documents found"); 

Als Ausgabe kommt nur:

Code
....
  CFF2D3EFD0B26436002568B7003C90AE - 235A
   - 
   -  
...


1531 documents found



Ich hätte dafür gerne mal eine Erklärung.

Titel: Re: komplett leeres Document
Beitrag von: m3 am 07.02.08 - 12:03:15
Deletion Stub?
Im Backend erstellt und keine Felder befüllt?
Titel: Re: komplett leeres Document
Beitrag von: Fraiser am 07.02.08 - 12:13:31
Deletion Stub ?

Sorry, k.A. was "Deletion Stub" ist.  ???

Ich hab mir ne Testdatenbank gebastelt, mit der ich arbeite.

Hat bis heute auch gut funktioniert.

Zitat
Im Backend erstellt und keine Felder befüllt?
Habs mit der Java.API erstellt. Keine Felder befüllt, könnte durchaus sein.
Aber da müsste das Doc ja wenigstens eine UNID / NID haben

 :-:
Titel: Re: komplett leeres Document
Beitrag von: m3 am 07.02.08 - 12:17:58
http://www.ipi.org/help/help65_designer.nsf/f4b82fbb75e942a6852566ac0037f284/d55d66fa9e5fb2d685256e0000494c8f?OpenDocument
Titel: Re: komplett leeres Document
Beitrag von: Fraiser am 07.02.08 - 13:22:56
Also sind "leere" Documente gelöschte Documents, die für Replicationen genutzt werden?

=> "leere" Documents können/sollten für die Verarbeitung mit JAVA ignoriert werden?

Aber welchen Sinn steckt dahinter, auf solche Documents per z.B. DocumentCollection zuzugreifen??

Titel: Re: komplett leeres Document
Beitrag von: m3 am 07.02.08 - 16:28:56
"Deletion Stubs" sind die überbleibsel von gelöschten Dokumenten. Es KANN sein, dass es sich bei Deinen leeren Dokumenten um solche handelt.

Ob man Deletion Stubs bei der Programmierung (egal in welcher Sprache) ignorieren sollte, hängt von der Anwendung an, das kann man so nicht verallgemeinern.

Aus der Hilfe zur NotesDocumentCollection class:
Zitat
A deletion stub is returned for a document deleted after creation of the collection or for a document to which you do not have read access. Use IsValid in NotesDocument to check whether a document is real (True) or a deletion stub (False).
Titel: Re: komplett leeres Document
Beitrag von: koehlerbv am 07.02.08 - 19:09:33
Aber da müsste das Doc ja wenigstens eine UNID / NID haben

Lt. der geposteten Ausgabe hat das betreffende Dokument ja wohl eine UNID und eine NID, oder was für ein Zeug hast Du da gepostet?

Ich tippe auch auf einen deletion stub. Bei NotesDatabase.GetAllDocuments ist sowas durchaus üblich.

Bernhard
Titel: Re: komplett leeres Document
Beitrag von: ata am 08.02.08 - 10:17:04
... solche Dokumente haben nach meiner Beobachtung tatsächlich keine DocID mehr - UniversalID ist leer...

Toni
Titel: Re: komplett leeres Document
Beitrag von: koehlerbv am 08.02.08 - 11:19:51
Oh doch, Toni - sonst könnten ja auch die Löschungen in Repliken nicht durchgeführt werden.

Bernhard
Titel: Re: komplett leeres Document
Beitrag von: Fraiser am 08.02.08 - 12:32:38
Zu dem was ich gepostet habe...

Code
....
  CFF2D3EFD0B26436002568B7003C90AE - 235A     // reguläres Doc
   -                                                                              // "leeres" Doc
   -  
...

1531 documents found

... das ist ein Ausschnitt der Ausgabe, meines Quellcodes.

Hab jetzt mit der Datenbank noch ein bissl gearbeitet und irgendwie sind die Dokumente jetzt weg.

Leider, denn ich wollte nochmal versuchen an die Docs ein paar Items oder so ranzuhängen.

Wenn das nochmal auftritt, kann ich ja die Datenbank mal zur verfügung stellen.

Laut euren Aussagen scheint das aber nicht ganz normal zu sein.

Aber erstmal danke für eure Hilfe
Titel: Re: komplett leeres Document
Beitrag von: ata am 11.02.08 - 08:22:13
@Bernhard

... ich hatte in der Vergangenheit immer wieder solche Dokumente, die zu Fehlern führten. Ich habe sie damals mit der Prüfung auf die doc.UniversalID abgefangen, indem ich auf den Leerstring geprüft hatte. Damit konnte ich die Fehler abfangen - im NotesPeak habe ich damals nicht nachgesehen - im Notes brachte dies die Lösung. Es soll auch mit IsValid funktionieren - was den Hinweis auf einen Deletion Stub gibt...

Toni
Titel: Re: komplett leeres Document
Beitrag von: flaite am 11.02.08 - 10:28:27
Code
Du kannst dir ja in der Datenbank einfach eine Ansicht erstellen. 
Erste Spalte sortiert. Formel: @text(@documentUniqueID)
Zweite Spalte: Formel: Form

Es kommt recht häufig vor, dass solche "Leichen" in Notes Datenbanken rumschwirren. Vielleicht hat ein Entwickler die vorher irgendwann durch unachtsame Programmierung erstellt und die vergessen. 
Gut um das zu kontrollieren sind diese Notes Entwicklungstools von Ytria oder/und Teamstudio. 
Es hat jedenfalls nichts mit Java oder der Notes Java Api zu tun. 
Wenn du Inspektor Walander spielen willst, helfen diese Methoden weiter: 
[code]
doc.getAuthors(); 
doc.getCreated();

[/code]