Standalone-Applikation in Java hört bei 7.0.2 auf zu funktionieren.

  • Einen schönen guten Morgen miteinander,




    seit der V5.0.11 lief der u.g. Code zum Öffnen einer Notes-Datenbank auf einem Server vom Client aus ohne Probleme:



    Auf einmal jedoch weigert sich "lnSession.getDatabase(Server, Database)" auf einem 7.0.2er Client zu funktionieren. Auf einem 7.0.1er Client - mit den ansonsten gleichen Einstellungen und Berechtigungen - funktioniert dieser Code zum Öffnen einer Datenbank jedoch wie gewünscht.


    Der Effekt ist der, daß zwar ein instantiiertes und initialisiertes Datenbankobjekt in "lnDB" zurückgeliefert wird, dieses Objekt jedoch nicht verwendbar ist, da lnDB.isOpen()==false ist.



    Greift man auf dieses lnDB-Objekt dann im weiteren Verlauf zu, entsteht die folgende Exception:


    2007-02-09 03:03:34.739 INFO1 : Lese Systemprofil profil_replika_ewb
    NotesException: Database Servername!!Database.nsf has not been opened yet
    at lotus.domino.local.Database.NgetProfileDocument(Native Method)
    at lotus.domino.local.Database.getProfileDocument(Unknown Source)



    Obwohl beim getDatabase()-Call ausdrücklich ein Server angegeben wurde, ist bei einer Messung des Netzwerktraffics auf dem Server kein Netzwerktraffic von dem Client aus feststellbar. Selbstredend ist die restliche Connectivity zwischen den beiden Clients und dem Server tadellos.


    Da dieser Code am Anfang dieser Woche auf R7.0.2 auch schon mal funktionierte, kann es sich somit nur um eine Einstellung auf dem Client bzw. um eine Policy-Geschichte handeln.


    Frage: Welche Einstellung kann dafür verantwortlich sein, daß getDatabase() auf einmal nur noch lokale Datenbanken versucht zu öffnen und den Serverparameter ignoriert. Interessanterweise findet auch keine Frage nach dem Passwort statt und ein testhalber eingebautes lnSession.getUsername() liefert '' zurück.


    Bevor die Frage auftaucht: "logMessage()", "logError()" und "logStacktrace()" sind Funktionen zum Protokollieren, die keinerlei Bezug auf lotus.domino.*-Klassen nehmen und von daher seiteneffektfrei sein sollten.


    a--

  • Zitat


    Akane schrieb:
    seit der V5.0.11 lief der u.g. Code zum Öffnen einer Notes-Datenbank auf einem Server vom Client aus ohne Probleme:
    ...
    Auf einmal jedoch weigert sich "lnSession.getDatabase(Server, Database)" auf einem 7.0.2er Client zu funktionieren. Auf einem 7.0.1er Client - mit den ansonsten gleichen Einstellungen und Berechtigungen - funktioniert dieser Code zum Öffnen einer Datenbank jedoch wie gewünscht.


    Problem erledigt. Der Fehler trat auf den Plätzen auf, die den Designer nachträglich installiert bekommen hatten.


    Diese Designer-Installation legte im Programmverzeichnis eine notes.ini ab, die von der abwich, die bei uns im data-Verzeichnis liegt. Interessanterweise wird beim Start von Notes die notes.ini verwendet, die im Data-Verzeichnis liegt, von den Standalone-Anwendungen jedoch die notes.ini, die zuerst im Pfad gefunden wird.



    a--

  • Ein Designer wird immer als Single User Installation installiert, d.h. wenn du erst nen Client als Multi User Installation und dann einen Designer installierst, dann nehmen externe Programme immer die zuletzt installierte Version, da deren Informationen so in der Registry abgelegt sind.