2009-07-08 2 views
0

Wir haben Probleme mit unserem Mailserver, die auf eine Schwachstelle in einem System hinweisen, das ich vor einigen Jahren eingerichtet habe, um Abteilungen nach Abschluss von Berichten per E-Mail zu kontaktieren.Domino Server von VBA aus erkennen und wechseln

Der Code, der zur Zeit den Mail-Server einrichtet als

Set objNotesMailFile = objNotesSession.GETDATABASE("XXX-BASE-MAIL-04/CompanyName", dbString) 

fest einprogrammiert ist das Problem, das wir ist haben, das der 04-Server bestenfalls im Moment flockig ist und jeder durch eine der geroutet wird Replikationsserver, wenn es umfällt. Kein Problem für die Desktop-Notes-Clients, die damit umgehen, aber die Anwendung kann einfach keine E-Mails mehr versenden und tut dies auch ohne Fehlermeldung.

Gibt es eine Möglichkeit, das Vorhandensein einer verfügbaren Datenbank auf dem Hauptserver zu testen, und wenn nicht, auf einen der Replikationsserver zurückgreifen?

Antwort

3

Das NotesDatabase-Objekt hat eine Eigenschaft "IsOpen" - boolean - mit der überprüft werden kann, ob eine Datenbank nach einem Aufruf von notesSession.getDatabase erfolgreich geöffnet wurde.

Set objNotesMailFile = objNotesSession.GETDATABASE("XXX-BASE-MAIL-04/CompanyName", dbString) 
if not (objNotesMailFile.IsOpen) then 
    ' try next server 
    ... 
end if 

EDIT: Also, könnten Sie so etwas wie die folgenden tun Nur der Vollständigkeit halber ... Es gibt auch ein optionales drittes Argument Sie zum GetDatabase Methode übergeben kann - ein boolean - die legt fest, ob eine gültige zurückzukehren Objekt, wenn die Datenbank (oder der Server) nicht geöffnet werden kann oder der Wert NOTHING zurückgegeben wird. Wenn Sie das 3. Argument als FALSE angeben, wird NOTHING zurückgegeben, nach dem Sie suchen können. Das gleiche Ergebnis, am Ende.

+0

Spot auf, Prost. – Lunatik

1

Sie wahrscheinlich so etwas wie diese verwenden möchten:

Dim db As New NotesDatabase("", "") 
Call db.OpenWithFailover("XXX-BASE-MAIL-04/CompanyName", dbString) 

Wenn die Datenbank nicht auf dem bestimmten Server geöffnet werden kann, aber der Server gehört zu einem Cluster, sieht OpenWithFailover automatisch für eine Replik des angegebenen Servers auf demselben Cluster. Wenn die Methode ein Replikat findet, wird diese Datenbank stattdessen geöffnet, und die Servereigenschaft wird entsprechend angepasst.

Verwandte Themen