Domino 9 und frühere Versionen > Entwicklung

View sporadisch leer?

(1/2) > >>

wflamme:
View in einer DB auf dem Server zeigt ein Dokument an. LS greift mit folgendem Primitiv-Code zu:

set vw=db.getview({ViewName})
set doc=vw.getfirstdocument
if doc is nothing then
....


So 2-3x/Monat tritt ein Fall ein, der darauf hindeutet, daß der Code einen leeren Auto-Update-View sieht, obwohl 100%ig mindestens ein Doc auf die Selektionsformel paßt.

Kann es sein, daß der Zugriff vielleicht gerade in dem Moment erfolgt, wo irgendeine Task auf dem Server den View plattmacht und neu aufbaut?

Falls ja, würde dann ein vorgeschaltetes vw.Refresh dazu führen, daß der Code anhält, bis der View aufgebaut ist?

TMC:
Ich glaube ich hatte mal den umgekehrten Fall, nämlich dass mehr Dokumente zurückgegeben werden als tatsächlich in der DB vorhanden  :P
Hatte was mit SoftDeletions zu tun soweit ich noch weiss, und man musste überprüfen ob doc.size = 0, um die auszufiltern.


--- Zitat von: wflamme am 01.09.04 - 22:58:23 ---Falls ja, würde dann ein vorgeschaltetes vw.Refresh dazu führen, daß der Code anhält, bis der View aufgebaut ist?
--- Ende Zitat ---

Ohne selbst das Prolem mal gehabt zu haben, hätte ich jetzt auch pauschal mal ein view.refresh eingebaut. Ich habe allerdings keine Ahnung, ob das hier die Lösung ist  ::)

wflamme:
Danke für die schnelle Rückmeldung.

Ja, ich hätte einen vw.Refresh auch eingebaut. Aber die DB läuft nicht hier, alles was ich habe ist fremder Quellcode und die Beschreibung eines Nebeneffektes, den ich mir nach Blick auf die Sources erstmal nur so erklären kann.... kurios!

TMC:
Ist das Notes-Dokument - Objekt = Nothing, wenn der Fehler auftritt?

Nicht dass bei Dir auch der Fall zutrifft, wie ich das glaub ich mal hatte: Dein view.GetFirstDocument ist ein gelöschtes Dokument, ist auch als Objekt soweit dann vorhanden, aber hat doc.size = 0.

**Edit: ich lese gerade, dass Du leider die DB nicht da hast, und wohl der Fehler nur sporadisch auftitt - wohl auf die schnelle schwierig, das rauszufinden

koehlerbv:
Normalerweise (!) wird ein View Index durch nix platt gemacht, sondern "nur" geupdated. Wie es sich für ein zünftiges Client-Server-System gehört, steht der (bekannte Teil des) Index in dieser Zeit aber auch zur Verfügung.

Mit gelöschten Dokumenten, die in Views noch auftauchen (auch wenn nicht sichtbar, aber beim LS-Semmeln durch die View) hatte ich auch schon ab und an zu tun. Nach meiner Erfahrung (was nix zu sagen hat) reicht das NotesDocument.Size da nicht sicher aus. Ich prüfe auf IsValid UND HasItems. Wenn es da scheppert, ist was faul mit dem "Treffer".

Ein NotesView.Refresh schadet natürlich nie  ;D

Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln