Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Johnson am 10.02.09 - 17:21:57

Titel: Server-Adressbuch identifizieren
Beitrag von: Johnson am 10.02.09 - 17:21:57
Hallo Leute,

ich hab zwar schon im Forum gesucht, aber zum Thema Server-Adressbuch einfach Unmengen.

Ich habe eine Datenbank auf einem Client. In dieser ist ein Button, der das Adressbuch eines zuvor angegebenen Servers öffnen.

Muss das Adressbuch des Servers IMMER im Hauptverzeichnis liegen und muss es IMMER names.nsf heißen?
Wenn nicht, wie kann ich per LS das Adressbuch finden, ohne das DBDirectory durchsuchen zu müssen?


Gruß
Johnson
Titel: Re: Server-Adressbuch identifizieren
Beitrag von: Axel am 10.02.09 - 19:32:11
Schau dir in der Designer-Hilfe mal die Property NotesSession.Addressbooks an. Vielleicht hilft dir das weiter.

Axel
Titel: Re: Server-Adressbuch identifizieren
Beitrag von: Johnson am 10.02.09 - 20:53:13
Damit bekomme ich mein lokales und das meines Mailservers. Wir haben aber noch 14 weitere Server, die nicht in der Auflistung sind.
Titel: Re: Server-Adressbuch identifizieren
Beitrag von: koehlerbv am 10.02.09 - 21:01:44
Addressbooks liefert eine Liste der dem Client bekannten Adressbücher.

Wenn dem Client via Programm die Server bekannt sind, warum gibst Du dann nicht auch die ReplicaID des Adressbuchs mit?

Gegenfrage (an alle) Kennt jemand eine Organisation, die das DD nicht als NAMES.NSF im Root hat? (Die Thease ist natürlich gewagt, ich weiss)

Bernhard
Titel: Re: Server-Adressbuch identifizieren
Beitrag von: Johnson am 10.02.09 - 22:36:05
Ich weiß nicht, ob das auf allen Servern bei uns so ist.
Die Frage, die sich mir stellte ist, ob es überhaupt möglich ist. Technisch gesehen.
Titel: Re: Server-Adressbuch identifizieren
Beitrag von: koehlerbv am 10.02.09 - 23:35:45
Die Frage, die sich mir stellte ist, ob es überhaupt möglich ist. Technisch gesehen.

Klar, aber wir kennen ja Deine ggf. schräge Umgebung nicht.
Was immer geht, wenn Du den Server kennst: Server anfunken und aus der NOTES.INI sich die Zeile names= holen. Ohne die kann er nämlich wirklich nicht  ;)

Es werden auch weitere Wege nach Rom führen (auch wenn da gerade kaum einer hin will).

Bernhard
Titel: Re: Server-Adressbuch identifizieren
Beitrag von: Axel am 11.02.09 - 08:18:46
Damit bekomme ich mein lokales und das meines Mailservers. Wir haben aber noch 14 weitere Server, die nicht in der Auflistung sind.

 ??? ???

Ähm, ich verstehe jetzt aber bei dieser Aussage nur Bahnhof. Sie diese Server nicht Mitglied eures Notes-Netzes bzw. Domäne?

Axel
Titel: Re: Server-Adressbuch identifizieren
Beitrag von: m3 am 11.02.09 - 09:59:49
IBM hat bereits auf der Lotusphere 2008 eindringlich und mehrfach davor gewarnt, einfach nur davon auszugehen, dass das (erste) Adressbuch immer "names.nsf" heißt und empfohlen, die entsprechenden API-Funktionen  (NotesSession.Addressbooks, ...) zu benutzen.

Hintergrund: Directory Independence (http://tactics.wordpress.com/2007/04/11/domino-next-great-things-to-come/), die ja mit Domino 8.5.1 endlich und wirklich kommen soll.
Titel: Re: Server-Adressbuch identifizieren
Beitrag von: Johnson am 11.02.09 - 10:05:31
Zur Erklährung:
Wir haben mehrere Server in mehreren Domänen.
Über die Property NotesSession.Addressbooks bekomme ich lediglich die Adressbücher zurück, die dem Client bekannt sind (wie Bernhard richtigerweise gesagt hat). Als da wären: mein lokales Adressbuch und die Adressbücher des in meiner Arbeitsumgebung eingetragenen Home- und Mailservers. Die Adressbücher der anderen Server sind nicht in dem Array drin.
Es ist mir schon klar, dass ich mit der Funktion NotesSession.GetDatabase([Server], "names.nsf") NORMALERWEISE und in einer normalen Umgebung das Adressbuch zurückbekommen. Davon kann ich doch aber nicht immer ausgehen.

Ich habe grad die API-Funktion NAMEGetAddressBooks gefunden. Die muss ich mir aber noch genauer anschauen.
Titel: Re: Server-Adressbuch identifizieren
Beitrag von: m3 am 11.02.09 - 10:11:50
Aus der Designer-Hilfe:
Zitat
notesSession.AddressBooks

If the program runs on a server, this property includes only Domino Directories and directory catalogs on the server.
Du brauchst also nur einen Agent, der auf dem dortigen Server läuft. ;)

Oder Du nutzt die Methode via Java & IIOP:
Zitat
If the program runs on a server or through remote (IIOP) calls, only Domino Directories on the server are included.
Titel: Re: Server-Adressbuch identifizieren
Beitrag von: Johnson am 11.02.09 - 10:16:41
Das wollte ich auch erst.
Aber ich habe die DB lediglich auf einem Client und die soll auch nicht auf den Servern verteilt werden. :-\ Diese Entscheidung konnte ich leider nicht treffen.
Titel: Re: Server-Adressbuch identifizieren
Beitrag von: m3 am 11.02.09 - 10:26:04
Tja, dann gehts entweder nicht oder Du probierst noch den Java-Weg.
Titel: Re: Server-Adressbuch identifizieren
Beitrag von: eknori am 11.02.09 - 10:29:04
Zitat
Du brauchst also nur einen Agent, der auf dem dortigen Server läuft
Oder der andere Server "vertraut" deinem Server. Dann kannst du den Agenten auch auf deinem Server  zentral laufen lassen.
Titel: Re: Server-Adressbuch identifizieren
Beitrag von: m3 am 11.02.09 - 10:34:12
Ulrich, das nützt ihm aber nix, weil dann notesSession.AddressBooks noch immer nicht die Adressbücher des entfernten Servers zurückliefert sondern von dem Server, auf dem der Agent liegt.