Autor Thema: GetDocumentByKey läuft teilweise nicht auf 8.5.2FP1 64bit  (Gelesen 6382 mal)

Offline mind1

  • Junior Mitglied
  • **
  • Beiträge: 93
Hallo zusammen,

ich habe ein seltsames Phänomen auf einer neu aufgesetzten Maschine. Die ist in der version 8.5.2FP1 in der 64bit Version auf Win Server 2008 R2 installiert. Der Dienst läuft mit dem von IBM herausgegebenen Workaround für Win 2008 R2.
An verschiedenen Stellen funktioniert nun "getDocumentByKey" nicht mehr. Und zwar genau dann, wenn ich eine LS-Librory von einer Eingabemaske aus bediene. In der Librory hole ich mir ganz klassisch über eine View ein Document mit dieser Methode, bekomme aber anschließend, wenn ich es benutzen möchte, "Object Variable Not Set". Liegt die Datenbank auf einem 8.5.1FP4 (auch 64bit), funktioniert alles wunderbar. Der Fehler ist beliebig oft reproduzierbar. Alle zugehörigen Variablen (doc, view, key) sind in der Librory global definiert, in der auch der beschriebene Code ist.
Clean und das gesamte LS neu kompilieren halfen nichts. Das einzige, das half, war ein Workaround über "database.search()". Damit funktioniert alles wie geschmiert.

Also anstatt

set doc=view.getDocumentByKey(..)

dies:
set coll = db.search(...)
set doc=coll.getFirstDocument()

Ist das Problem bekannt? Oder gibt es dafür einen allgemeinen Fix?

Danke! Gruß, Bernd

Edit: Load updall -R habe ich auch schon versucht.
« Letzte Änderung: 23.02.11 - 12:59:55 von mind1 »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: GetDocumentByKey läuft teilweise nicht auf 8.5.2FP1 64bit
« Antwort #1 am: 24.02.11 - 00:53:28 »
1. Ich kann mir nicht vorstellen, dass das an der Server-Version liegt, vor allem, da Du lt. Deinem Post das ganze im Client alaufen lässt.
2. Ich kann mir nicht vorstellen, dass das an der Server-Version liegt, vor allem, da diese essentielle Funktion nicht nur von Dir in dieser Konstellation benutzt wird.
3. Was spricht der Debugger?
4. Was ist eine "Librory"??

Bernhard

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: GetDocumentByKey läuft teilweise nicht auf 8.5.2FP1 64bit
« Antwort #2 am: 24.02.11 - 09:27:59 »
Poste mal etwas mehr Code.
Welche "Object Variable is not set" ? (->Debugger/Errorhandler)
Wie holst du dir die View?
Etwa über session.currentDatabase.getView?

Hat einer der Dominoserver vielleicht DIR-Links (siehe: http://atnotes.de/index.php/topic,49963.msg321066.html#msg321066 )

Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: GetDocumentByKey läuft teilweise nicht auf 8.5.2FP1 64bit
« Antwort #3 am: 24.02.11 - 10:29:22 »
hallo,

unter 8.5.2 gibt es bei uns im Haus ebenfalls Probleme mit Backendagenten und dem Zugriff über getdocumentByKey. Die genaue Konstellation kenn ich nicht, aber 8.5.2. ist nicht ganz bugfrei an dieser Stelle.

mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline CarstenB

  • Aktives Mitglied
  • ***
  • Beiträge: 193
  • Geschlecht: Männlich
Re: GetDocumentByKey läuft teilweise nicht auf 8.5.2FP1 64bit
« Antwort #4 am: 24.02.11 - 10:43:43 »
es gab unter 8.5.1 Probleme, da IBM dort die Funktionalität abgeändert hatte. Siehe hier:
http://www.edbrill.com/ebrill/edbrill.nsf/dx/about-that-issue-that-erik-brooks-found

Evtl. hat man es auch unter 8.5.2 noch nicht ganz im Griff.

Allerdings handelt es sich dann nicht um einen "Object variable not set" Fehler.

Gruß
Carsten

Offline kawie

  • Junior Mitglied
  • **
  • Beiträge: 87
  • Ich liebe dieses Forum! Und wie :-)
Re: GetDocumentByKey läuft teilweise nicht auf 8.5.2FP1 64bit
« Antwort #5 am: 24.02.11 - 13:35:24 »
Dieser Fehler wurde bereits im 8.5.1 behoben (ich glaube FP3)

Und ganz recht "Object variable not set"  hatte damit nichts zu tun.


unter 8.5.2 gibt es bei uns im Haus ebenfalls Probleme mit Backendagenten und dem Zugriff über getdocumentByKey. Die genaue Konstellation kenn ich nicht, aber 8.5.2. ist nicht ganz bugfrei an dieser Stelle.

Habe ich bisher noch nichts von gehört. Gibt es diesbezüglich irgendeine Referenz oder ein Beispiel ?

Gruss

Kai

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: GetDocumentByKey läuft teilweise nicht auf 8.5.2FP1 64bit
« Antwort #6 am: 24.02.11 - 15:19:58 »
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline mind1

  • Junior Mitglied
  • **
  • Beiträge: 93
Re: GetDocumentByKey läuft teilweise nicht auf 8.5.2FP1 64bit
« Antwort #7 am: 25.02.11 - 10:09:50 »
Hallo zusammen,

sorry für die späte Antwort! Bin etwas im Stress :-)

Ich versuche mal, die Fragen zu beantworten.

Es geht um ein Analyse-Tool, mit dem ich Auswertungen über eine Maske anwerfe. Die Maske "used" eine LS-Librory, die die Sub "setGlobals" enthält. Diese hat den Zweck, globale Einstellungen zu setzen, wie z.B. alle beteiligten Datenbanken und auch ein Dokument mit globalen settings. Das ist allerdings das, was ich mit der erwähnten Maske geöffnet habe und von der ich aus "setGlobals" starte. Das Doc ist natürlich vorher gespeichert.

Dies hier ist Teil der setGlobals. Die Variablen sind global in der Librory deklariert.
Code
	
Dim session As New NotesSession
Set db = session.CurrentDatabase
	Set vwGlobalSettings = db.GetView("vwGlobalSettings")
		'##########################################################################################################
	'Set docGlobalSettings = vwGlobalSettings.GetDocumentByKey(strDedicatedTo + "~" + strDominoServer, True)
	'Fix for Version 8.5.2 FP1
	Dim collTmp As NotesDocumentCollection
	Set collTmp = db.search({Form="frmGlobalSettings" & fldDedicatedTo="} + strDedicatedTo + {" & fldServerName="} + strDominoServer + {"},Nothing,0)
	Set docGlobalSettings = collTmp.getFirstDocument
	'##########################################################################################################

Die Ansicht "vwGlobalSettings" enthält in der ersten Spalte zwei Textfelder, die über die Tilde miteinander verbunden sind. (fldDedicatedTo + "~" + fldServerName, z.B. "0~CN=S01/O=COMPANY"). Also ganz simpel. Den Key habe ich schon ausgeprintet, der passt.
Wie man im Code erkennt, ist dort mein angesprochener Fix schon drin. Der bezieht sich ja auf die gleichen Felder und MUSS deshalb eigentlich auch das selbe Ergebnis liefern. Das tut er aber nur, wenn der Agent auf einem 8.5.1FP4 läuft und nicht auf einem 8.5.2FP1. Immer von der gleichen Workstation mit 8.5.2 ausgehend.

Läuft der Code auf dem 8.5.2er, kommt immer exakt dann der Fehler "Object Variable Not Set", wenn ich zum ersten Mal auf das Doc zugreifen möchte. Ich sehe mir das jetzt mal mit dem Debuger an.


Ich hatte bei der Umstellung von 8 auf 8.5 schon einmal ein ähnliches Problem. Damals sah der Domino-Server es bei Server-Agenten plötzlich etwas enger. An einigen Stellen hatte ich versehendlich ein und dieselbe NotesDatabase-Variable doppelt "gesettet", also ein mal in Initialize und ein mal in einer Sub. Beides natürlich mit derselben Datenbank, die dahinter steht (also zwei identische Zeilen in einem Agenten). Bei 8.5. war das ergebnis dann "Object Variable Not Set".

Gruß, Bernd

Offline kawie

  • Junior Mitglied
  • **
  • Beiträge: 87
  • Ich liebe dieses Forum! Und wie :-)
Re: GetDocumentByKey läuft teilweise nicht auf 8.5.2FP1 64bit
« Antwort #8 am: 25.02.11 - 10:35:27 »
Hi Bernd,

ich habe versucht es irgendwie nachzustellen bekomme es aber nicht hin.
Habe eigentlich auch nur zwei ideen für dich.

1) Checken der Selektionsformel der View (Hast du sicher schon gemacht)
2) Ein
Code
Call notesView.Refresh
bevor du das Dokument holst.

Gruss

Kai


Offline mind1

  • Junior Mitglied
  • **
  • Beiträge: 93
Re: GetDocumentByKey läuft teilweise nicht auf 8.5.2FP1 64bit
« Antwort #9 am: 25.02.11 - 11:09:09 »
Oh mann, nach unzähligen Printbefehlen ist mir nun der Fehler aufgefallen. Es gab eine zweite View mit dem gleichen Alias-Namen und anscheinend läuft die "Rangfolge" gleicher Namen bei der neuen Version nun anders herum ab. Zuvor nie als Problem aufgetaucht wird einem so eine Unaufmerksamkeit dann irgendwann doch zum Verhängnis.

Vielen Dank für alles!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: GetDocumentByKey läuft teilweise nicht auf 8.5.2FP1 64bit
« Antwort #10 am: 26.02.11 - 01:11:53 »
In diese Falle ist wohl schon jeder mal gestolpert  ;) Blödes Copy & Paste  ;D

Meine Frage ist aber noch unbeantwortet, Bernd: Was verstehst Du unter einer "Librory"??

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz