Autor Thema: Internethostnamen via Formel auslesen?  (Gelesen 2674 mal)

Offline Jens_1

  • Senior Mitglied
  • ****
  • Beiträge: 440
  • Geschlecht: Männlich
Internethostnamen via Formel auslesen?
« am: 30.06.10 - 13:41:08 »
Hallo!

Kann mir jemand auf die Schnelle sagen, wie ich via Formelsprache den Internethostnamen des Servers herausfinde auf dem eine datenbank gerade läuft?

Ich will eine simple Webseite in eine Datenbank werfen und die HTML-Adressbasis festlegen....
Da die Datenbank auf mehreren Servern läuft kann ich den Namen nicht fest coden.

Gruß
 Jens
CLP Domino R5 System Administrator
CLP IBM Lotus Domino 6 System Administrator
CLP IBM Lotus Domino 7 System Administrator
IBM Certified System Administrator - Lotus Notes and Domino 8

Offline NoMaam

  • Frischling
  • *
  • Beiträge: 3
  • Geschlecht: Männlich
Re: Internethostnamen via Formel auslesen?
« Antwort #1 am: 01.07.10 - 15:04:03 »
Vielleicht hilft dir ja DNS Round Robin weiter, damit umgehst du das Problem.

Offline Jens_1

  • Senior Mitglied
  • ****
  • Beiträge: 440
  • Geschlecht: Männlich
Re: Internethostnamen via Formel auslesen?
« Antwort #2 am: 02.07.10 - 09:48:18 »
Vielleicht hilft dir ja DNS Round Robin weiter, damit umgehst du das Problem.

Nein - das hilft mir nicht weil ich weder Zugriff auf's DNS habe noch weiss wo die Datenbank im weitverzweigten Unternehmen laufen wird...

Gruß
 Jens
CLP Domino R5 System Administrator
CLP IBM Lotus Domino 6 System Administrator
CLP IBM Lotus Domino 7 System Administrator
IBM Certified System Administrator - Lotus Notes and Domino 8

Offline Keydins

  • Aktives Mitglied
  • ***
  • Beiträge: 163
  • Geschlecht: Männlich
Re: Internethostnamen via Formel auslesen?
« Antwort #3 am: 02.07.10 - 11:26:01 »
Läuft die Datenbank als Replik auf mehreren Servern oder jeweils eigenständig?

Bei eigenständigen Datenbanken könntest du den jeweiligen Hostname des Servers in einem Konfigurationsdokument ablegen. Eine Möglichkeit zur dynamischen Abfrage des Hostnamen eines NotesServers per Formelsprache wäre mir nicht bekannt.


Eine deutlich sauberere Lösung ist die Hinterlegung der Notesserver mit ihrem Servernamen als Alias im DNS, so wird das z.B. bei uns gemacht.

Ein ping auf 'ABC123Notes' liefert mir 'xyz.dummy.url.de' zurück und ich kann über folgende Formel z.B. eine bestimmte Maske aus der aktuellen Datenbank öffnen:

@URLOpen("//" + @Name([CN]; @ServerName) + "/" + @WebDbName + "/Maske?OpenForm");

ohne dass ich den tatsächlichen Hostnamen des Servers kennen muss.
Gruß Dirk

Aktuelle Notesumgebung
~800 BasicClients 9.0.1 FP9 SHF55
  10 FullClients 9.0.1 FP7 SHF143
    7 DominoServer 9.0.1 FP9 HF 139 / 64 Bit

Offline m3

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Internethostnamen via Formel auslesen?
« Antwort #4 am: 02.07.10 - 12:03:21 »
Da die Datenbank auf mehreren Servern läuft kann ich den Namen nicht fest coden.
Läuft die DB auf mehreren Servern unter einem Namen (also als Cluster etwa unter http://intranet.example.com/x/x.nsf erreichbar), oder muss/soll sie wirklich unter mehreren Hostnamen (http://srv1.example.com/x/x.nsf http://srv2.example.com/x/x.nsf http://srv1.example.com/x/x.nsf http://srv1.example.com/x/x.nsf ) erreichbar sein?

Im zweiten Fall wirst Du nicht umhin kommen, mit @Lookups, ... im DD danach zu suchen.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Internethostnamen via Formel auslesen?
« Antwort #5 am: 02.07.10 - 17:59:39 »
Was willst du genau erreichen, willst du beim Klick auf einen Link den Server wechseln?

Falls nicht, reicht es, die Links relativ zum Server anzugeben, also z.B.
  /static_content/impressum.html
um das Impressum dieses Servers anzuzeigen.

Alternativ wüsst ich noch: @GetHTTPHeader("Host")
Wobei diese Info vom Browser zum Server übertragen wird und exakt dem entspricht was in der Adresszeile steht
(d.h. wenn er z.B. die IP eintippt, steht diese in "Host")

Gruß
Roland
Roland Praml

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

Offline Jens_1

  • Senior Mitglied
  • ****
  • Beiträge: 440
  • Geschlecht: Männlich
Re: Internethostnamen via Formel auslesen?
« Antwort #6 am: 05.07.10 - 07:29:35 »
Läuft die Datenbank als Replik auf mehreren Servern oder jeweils eigenständig?

Bei eigenständigen Datenbanken könntest du den jeweiligen Hostname des Servers in einem Konfigurationsdokument ablegen. Eine Möglichkeit zur dynamischen Abfrage des Hostnamen eines NotesServers per Formelsprache wäre mir nicht bekannt.


Eine deutlich sauberere Lösung ist die Hinterlegung der Notesserver mit ihrem Servernamen als Alias im DNS, so wird das z.B. bei uns gemacht.

Ein ping auf 'ABC123Notes' liefert mir 'xyz.dummy.url.de' zurück und ich kann über folgende Formel z.B. eine bestimmte Maske aus der aktuellen Datenbank öffnen:

@URLOpen("//" + @Name([CN]; @ServerName) + "/" + @WebDbName + "/Maske?OpenForm");

ohne dass ich den tatsächlichen Hostnamen des Servers kennen muss.

Die Idee des Konfigurationsdokumentes hatte ich auch schon. Allerdings soll der Aufruf explizit ohne jede Form der Konfiguration sein.
Die Hinterlegung der Notesserver im DNS sollte Selbstverständlichkeit sein - in extrem großen Unternehmen mahlen die Mühlen leider anders.
Da gibt's Befindlichkeiten usw. usw. usw....

Da die Datenbank auf mehreren Servern läuft kann ich den Namen nicht fest coden.
Läuft die DB auf mehreren Servern unter einem Namen (also als Cluster etwa unter http://intranet.example.com/x/x.nsf erreichbar), oder muss/soll sie wirklich unter mehreren Hostnamen (http://srv1.example.com/x/x.nsf http://srv2.example.com/x/x.nsf http://srv1.example.com/x/x.nsf http://srv1.example.com/x/x.nsf ) erreichbar sein?

Im zweiten Fall wirst Du nicht umhin kommen, mit @Lookups, ... im DD danach zu suchen.

Der zweite Fall ist der Fall.
Und mit den Lookups ist das, wenn ich mich nicht vertan habe, nicht so einfach weil es keine Ansicht gibt die in der ersten sortierten Spalte die Servernamen stehen hat die ich via "@Servername" hätte auslesen können.
Und eine extra (verborgene) Ansicht dafür ist undenkbar.

Was willst du genau erreichen, willst du beim Klick auf einen Link den Server wechseln?

Falls nicht, reicht es, die Links relativ zum Server anzugeben, also z.B.
  /static_content/impressum.html
um das Impressum dieses Servers anzuzeigen.

[...]


Das Problem ist der erste Aufruf der Seite. Wenn ich einfach "Servername/datenbank.nsf" aufrufe, dann wird das css der Seite nicht mit eingebunden.
Dass passiert erst wen ich direkt auf die Seite gehe.

Ich habe mir jetzt so beholfen, das ich im Header einer eigens dafür erstellen Einstiegsseite folgenden Eintrag gemacht habe:

Code
<meta http-equiv="refresh" content="0; URL=/<Berechneter Wert = @WebDbName>/Seitenname">

Damit haut das ganze dann hin.


[...]

Alternativ wüsst ich noch: @GetHTTPHeader("Host")
Wobei diese Info vom Browser zum Server übertragen wird und exakt dem entspricht was in der Adresszeile steht
(d.h. wenn er z.B. die IP eintippt, steht diese in "Host")

Gruß
Roland


Jackpot!
Das ist die beste Lösung!
Und wird im nächsten Release auch so gemacht.

Danke @All für die Hilfe!

Gruß
 Jens
CLP Domino R5 System Administrator
CLP IBM Lotus Domino 6 System Administrator
CLP IBM Lotus Domino 7 System Administrator
IBM Certified System Administrator - Lotus Notes and Domino 8

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz