Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: DocNotes am 25.03.04 - 16:59:53

Titel: per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: DocNotes am 25.03.04 - 16:59:53
Hallo zusammen,

ich habe eine Anwendung, in der der Benutzer die Auswahl bekommen soll welche Mailboxen auf dem jeweiligen Server vorhanden sind und wie der Dateiname dazu lautet.

Ich habe schon versucht über DbDirectory zu arbeiten, aber dort bekomme ich die Mailboxen nicht  ???

Hat jemand eine Idee??


Code
Sub Click(Source As Button)
   On Error Goto ErrHandler
   
   Dim ws As New NotesUIWorkspace   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim dbDir As NotesDbDirectory
   Dim uidoc As NotesUiDocument   
   Dim doc As NotesDocument
   
   Dim ServerName As String
   Dim FileName As String   
   Dim count As Integer
   
   Set uidoc = ws.CurrentDocument
   Set doc = uidoc.Document
   
   ServerName = Trim(doc.FdServerName(0))
   If ( Ucase ( ServerName )= "LOKAL" ) Or  ( Ucase ( ServerName )= "LOCAL" ) Then ServerName = ""
   Print "Einlesen der Datenbanken von Server " & ServerName & " ... " 
   
   Set dbDir = New NotesDbDirectory ( ServerName )
   count = 0
   Set db = dbdir.GetFirstDatabase ( 1247 )
   While Not ( DB Is Nothing )
      FileName = db.FileName
      If Instr(1,FileName,".box",5) > 0 Then
                     'Hier würde ich gerne die Mailboxen als Database Objekte erhalten
                             Msgbox FileName
   
                             End If
      count = count + 1
      Set db = dbdir.GetNextDatabase    
   Wend   
   Print count & " Datenbanken gefunden!"
   Exit Sub
ErrHandler:
   Messagebox Error$ , 16, "Fehler"
   Exit Sub
End Sub

Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: Semeaphoros am 25.03.04 - 17:12:01
Zuverlässig nur möglich, indem man das Domino Directory auswertet.
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: DocNotes am 25.03.04 - 17:13:29
wie meinst Du dass, über das FileSystem ????

Vielleicht hast Du ein kurzes Beispiel (Ansatz) ???
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: Semeaphoros am 25.03.04 - 17:15:44
Domino Directory seit R5 war PubNAB, Public Name and Adressbook in R4, da steht alles im Personendokument drin.
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: DocNotes am 25.03.04 - 17:17:35
ich meine nicht die Mailbox des Users, sondern die Mailboxen der Server (mail1.box, mail2.box, usw.)
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: Semeaphoros am 25.03.04 - 17:21:10
Nicht zuverlässig machbar
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: DocNotes am 25.03.04 - 17:28:56
schade  :'(
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: eknori am 25.03.04 - 17:35:46
na, jetzt enttäuscht ihr mich aber; die Anzahl der Mailboxen steht im Konfigurationsdokument des Servers im Domino Directory.
Und die Namen der Mail.Box(en) lassen sich doch bestimmt aus der Anzahl ableiten. Oder kann man die benennen, wie man lustig ist?

Nein, kann man nicht. Mailbox 1 heißt mail1.box und MailBox 2 ?

Richtig: mail2.box !!

Ulrich
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: Semeaphoros am 25.03.04 - 17:47:27
Dann sag mir mal, wie Du zuverlässig das Config-Dok des Servers (allgemeingültig) findest? Da gibts Wildcard und Global-Möglichkeiten. Und was, wenn mehrere Config-Docs existieren, welches gilt dann? Sofern ein eindeutiges Config-Doc existiert und gefunden werden kann, hast Du recht.
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: eknori am 25.03.04 - 18:13:01
ist ne gute FRage, Toppt das * Document das individuelle Serverdokument ??
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: Semeaphoros am 25.03.04 - 19:04:28
Wenn ich das richtig im Kopf habe, nein. Default ist fallback. Aber das ist nicht die einzige Schwierigkeit, darüber hinaus gibt es dann noch die Gruppen-Dokumente und dann noch individuelle Server-Konfig-Dokumente. Und dann ist es leider auch noch möglich, dass zwei oder mehr identisch benamste Konfig-Docs existieren und in diesem Fall ist man definitiv aufgeschmissen, weil nicht sicher ist, welches von diesen Docs der Server gefunden hat. Bin jetzt nicht sicher, ob darüber hinaus auch noch Wildcards im Servernamen erlaubt sind, oder ob das hier nicht geht (Muster */server/Ligonet/CH)
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: eknori am 25.03.04 - 19:13:19
hmm, ich glaube, ich gebe mich geschlagen

Ulrich
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: eknori am 25.03.04 - 19:46:05
die PMs von Jens haben mich gerade auf die Idee gebracht, es mal über die Console zu versuchen.

Tell router config

der Router macht dann ein compact auf ( bei mir eine ) mail.box

er sollte es dann auch mit allen anderen Boxen ebenso machen, so daß man aus dem RückgabeWert sowohl Anzahl als auch Namen entnehmen könnte.

Kann das mal jemand mit mailboxen > 1 testen ??
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: Semeaphoros am 25.03.04 - 19:57:21
Das tut er:

25.03.2004 19:51:53   Router: Wird heruntergefahren
25.03.2004 19:51:53   Router: Komprimierung der Mailbox-Datei mail1.box wurde gestartet
25.03.2004 19:51:56   Router: Komprimierung der Mailbox-Datei mail1.box abgeschlossen
25.03.2004 19:51:56   Router: Komprimierung der Mailbox-Datei mail2.box wurde gestartet
25.03.2004 19:51:58   Router: Komprimierung der Mailbox-Datei mail2.box abgeschlossen
25.03.2004 19:51:58   Router: Komprimierung der Mailbox-Datei mail3.box wurde gestartet
25.03.2004 19:52:00   Router: Komprimierung der Mailbox-Datei mail3.box abgeschlossen
25.03.2004 19:52:00   Router: Komprimierung der Mailbox-Datei mail4.box wurde gestartet
25.03.2004 19:52:03   Router: Komprimierung der Mailbox-Datei mail4.box abgeschlossen
25.03.2004 19:52:03   Router: Komprimierung der Mailbox-Datei mail5.box wurde gestartet
25.03.2004 19:52:05   Router: Komprimierung der Mailbox-Datei mail5.box abgeschlossen
25.03.2004 19:52:05   Router wurde wieder aktiviert.



A-Bär, das ist nur ein Teil der Wahrheit, nebst den Meldungen in "Verschiedene Ereignisse" zeigt er auf der Konsole direkt auch noch diese Meldungen, die in den Routingereignissen protokolliert werden:


25.03.2004 19:51:52   Router: Löschrümpfe aus Mailbox-Datei mail1.box werden entfernt
25.03.2004 19:51:52   Router: Löschrümpfe aus Mailbox-Datei mail2.box werden entfernt
25.03.2004 19:51:52   Router: Löschrümpfe aus Mailbox-Datei mail3.box werden entfernt
25.03.2004 19:51:52   Router: Löschrümpfe aus Mailbox-Datei mail4.box werden entfernt
25.03.2004 19:51:52   Router: Löschrümpfe aus Mailbox-Datei mail5.box werden entfernt
25.03.2004 19:51:52   Router: Übertragungswarteschlangen werden freigegeben (0)
25.03.2004 19:51:52   Router: Warten, bis 3 Übertragungs-Thread(s) beendet wurden. Derzeit sind 0 Threads inaktiv.
25.03.2004 19:51:52   Router: Warten, bis 1 Zustell-Thread(s) beendet wurden. Derzeit sind 0 Threads inaktiv.
25.03.2004 19:51:52   Router: Übertragungs-Thread 00000005 wird deaktiviert; 1 inaktive Threads
25.03.2004 19:51:52   Router: Übertragungs-Thread 00000007 wird deaktiviert; 2 inaktive Threads
25.03.2004 19:51:52   Router: Übertragungs-Thread 00000004 wird deaktiviert; 3 inaktive Threads
25.03.2004 19:51:52   Router: Zustell-Thread 00000006 wird deaktiviert; 1 inaktive Threads
25.03.2004 19:51:53   Router: Wird heruntergefahren
25.03.2004 19:51:53   Router: Freigabe der Übertragungswarteschlangen abgeschlossen (1)
25.03.2004 19:51:53   Router: Nachrichtenwarteschlangen werden freigegeben
25.03.2004 19:51:53   Router: Komprimierung der Mailbox-Datei mail1.box wurde gestartet
25.03.2004 19:51:56   Router: Komprimierung der Mailbox-Datei mail1.box abgeschlossen
25.03.2004 19:51:56   Router: Komprimierung der Mailbox-Datei mail2.box wurde gestartet
25.03.2004 19:51:58   Router: Komprimierung der Mailbox-Datei mail2.box abgeschlossen
25.03.2004 19:51:58   Router: Komprimierung der Mailbox-Datei mail3.box wurde gestartet
25.03.2004 19:52:00   Router: Komprimierung der Mailbox-Datei mail3.box abgeschlossen
25.03.2004 19:52:00   Router: Komprimierung der Mailbox-Datei mail4.box wurde gestartet
25.03.2004 19:52:03   Router: Komprimierung der Mailbox-Datei mail4.box abgeschlossen
25.03.2004 19:52:03   Router: Komprimierung der Mailbox-Datei mail5.box wurde gestartet
25.03.2004 19:52:05   Router: Komprimierung der Mailbox-Datei mail5.box abgeschlossen
25.03.2004 19:52:05   Router: Übertragungswarteschlangen werden erstellt
25.03.2004 19:52:05   Router: Maximal 5 Übertragungs-Threads erlaubt
25.03.2004 19:52:05   Router: Maximal 2 gleichzeitige Übertragungs-Threads an dasselbe Ziel erlaubt
25.03.2004 19:52:05   Router: Maximal 5 Zustell-Threads erlaubt
25.03.2004 19:52:05   Router: 3 von 3 Übertragungs-Threads werden aktiviert
25.03.2004 19:52:05   Router: 1 von 1 Zustell-Threads werden aktiviert
25.03.2004 19:52:05   Router: Zustell-Thread 00000006 wird gestartet
25.03.2004 19:52:05   Router: Übertragungs-Thread 00000005 wird aktiviert
25.03.2004 19:52:05   Router: Übertragungs-Thread 00000007 wird aktiviert
25.03.2004 19:52:05   Router: Übertragungs-Thread 00000004 wird aktiviert
25.03.2004 19:52:05   Router: Zustell-Thread 00000006 sucht nach Arbeit
25.03.2004 19:52:05   Router: Übertragungs-Thread 00000007 sucht nach Arbeit
25.03.2004 19:52:05   Router: Übertragungs-Thread 00000005 sucht nach Arbeit
25.03.2004 19:52:05   Router: Übertragungs-Thread 00000004 sucht nach Arbeit
25.03.2004 19:52:05   Router wurde wieder aktiviert.


******


Mach das mal auf einem wirklichen busy, produktiven Server (also gerade die, die zu mehreren Boxen tendieren), ich glaub nicht, dass der Admin Dein Freund wird .......


Die Idee ist aber wirklich exzellent.
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: eknori am 25.03.04 - 20:06:04
ok, verifiziert aber, daß es trotz gegensätlicher Aussage irgendwo was in der API geben muß... auch ohne den ganzen HeckMeck mit router runter und wieder hoch.

Andere Idee: Anzahl der MehlDosen über das FileSystem ermitteln, dann versuchen lokal zu öffnen. Wenn der Router die im Beschlag hat; Errorhandling...

Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: Semeaphoros am 25.03.04 - 20:13:55
Plattfussunabhängig?
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: eknori am 25.03.04 - 20:17:01
wenn wir von Notes API Calls reden sollte das schon so sein...
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: Semeaphoros am 25.03.04 - 20:23:06
Du redest aber vom Filesystem
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: eknori am 25.03.04 - 20:23:38
ich fasse es nicht, selbst sh stat BlaBla bringt nicht zutage ...
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: eknori am 25.03.04 - 20:24:48
>> Du redest aber vom Filesystem

eigentlich nur über db.IsOpen

Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: Semeaphoros am 25.03.04 - 20:26:42
db.isopen bringt nix, da kannst Du nicht feststellen, ob der Router die verwendet oder nicht.
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: eknori am 25.03.04 - 20:27:36
OK, das war dann auch nix... next try ..
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: eknori am 27.03.04 - 09:07:16
OK, einen hab ich noch.

sh stat server.mailboxes liefert die Anzahl der mehldosen eines Servers. Das sollte hinreichend genau sein, da hier keine Konflikte mit Konfigurationsdokumenten und Wildcards entstehen können.

Da der Domino bei mhreren mehldosen die Namen nach einem bestimmten Schema vergibt, sollten nun auch die Namen der Dosen (zuverlässig) ermittelt werden können.

Was ich noch nicht getestet habe ist:

Urzustand 1 Mehlbox  --> mail.box

Dann 2 Mehldosen einstellen --> mail.box bleibt im Filesystem, verwendet werden mail1.box und mail2.box.

Jetzt ist mir das noch zu wenig und ich will sagen wir mal 5 Boxen haben.

Bleben dann mail1.box etc bestehen und es wird nur bis mail5.box hochgezählt, oder fängt der Domino dann erst bei mail3.box usw an.

Aber auch hier könnte man die Namen der verwendeten Boxen ermitteln, in dem man alle mailboxen im filesystem ermittelt und dann einfach rückwärts zählt.

Jens, was meinst du ??

Ulrich
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: Semeaphoros am 27.03.04 - 10:02:02
Das müsste gehen. Der Server zählt bei mehreren Boxen immer von 1 bis x, das ist also einfach. Wie ist das mit verschiedenen Sprachversionen? Wahrscheinlich kein Problem, da man wohl die Zahl einigermassen positionsbasiert lesen kann. Das scheint eine Möglichkeit zu sein.
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: Semeaphoros am 27.03.04 - 10:04:31
Ah, sehe gerade, der gibt das sprachneutral aus. Das ist ja direkt ein Fundstück. Danke Ulrich.
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: DocNotes am 05.04.04 - 11:36:19
Hallo nochmal,

wie kann ich am Einfachsten den Befehl "sh stat server.mailboxes " über mein Script aufrufen und den Rückgabewert erhalten, um dann die weitere Verarbeitung durchführen zu können?

Vielen Dank und Gruss!
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: eknori am 05.04.04 - 11:46:31
Den Befehl kannst du mit dieser Klasse absetzen... (http://www.eknori.de/tipps/detail.php?nr=89&kategorie=tipps)
Ulrich
Titel: Re:per LScript Anzahl und Dateinamen der Mailboxen herausfinden
Beitrag von: Semeaphoros am 05.04.04 - 11:50:38
....oder unter DN6 ganz einfach mit

consoleReturn$ = notesSession.SendConsoleCommand( serverName$, consoleCommand$ )