Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: ata am 12.11.02 - 08:46:11
-
Hallole @all,
Gibt es eine Möglichkeit per LotusScript herauszufinden, auf welche Notes-Server man zugreifen kann?
Danke im voraus für Eure Beiträge...
ata ???
-
Meinst du welche Server generell verfügbar sind oder welche auch tatsächlich am Draht sind ??
-
generell würde ich mir erst einmal alle Serverdokumente schnappen.
Dann hast du schon mal alle Servernamen.
Dann versuchen, eine Datenbank ( names.nsf) auf dem Server zu öffnen.
Ob das erfolgreich war kannst du über
db.IsOpen
abfragen.
Wenn du da einen fehler bekommst, kannst du nicht drauf zugreifen.
eknori
-
... alles was verfügbar ist...
Ich brauch die Server in einer Auswahlliste...
ata
-
Yoo, dan lies doch einfach aus dem PAB die Serverdokumente aus.
Alternativ dazu kannst du auch die verbindungsdokumente auslesen.
Ulrich
-
... ich denke so werd ich es machen, die Serverdokumente und Verbindungsdokumente checken un das jeweilige NAB öffnen...
danke erst mal...
ata
-
Hier noch in Ergänzung eine kleine Funktion, um einen NotesServer anzupingen. Wenn der Server online ist, gibt die Funktion TRUE zurück ansonsten FALSE
Declare Function NSPingServer Lib "nnotes.dll" ( Byval pServerName As String, pdwIndex As Long, phList As Long) As Integer
Declare Function OSLoadString Lib "nlib.dll" (Byval hModule&, Byval Status%, Byval retBuffer$, Byval BufferLength%) As Integer
Function IsServerAvailable(ServerName$)As Variant
Dim l&,m&,Status%
Status%=NSPingServer(ServerName$, m&,l&)
If status%= 0 Then
IsServerAvailable=True
Else
IsServerAvailable=False
End If
End Function
Sub Click(Source As Button)
Msgbox IsServerAvailable ("DEWVX01/WITTE/DE")
End Sub
eknori
-
Und noch ne nette Sache: Gibt dir die prozentuale Verfügbarkeit wie beim Befehl sh server zurück
Const Button = "Server Latency"
Const APIModule = "NNOTES" ' Windows
Declare Function NSFGetServerLatency Lib APIModule Alias "NSFGetServerLatency" _
( Byval S As String, Byval T As Long, A As Long, B As Long, V As Integer) As Integer
Declare Function NSPingServer Lib APIModule Alias "NSPingServer" _
( Byval S As String, L As Long, pC As Long) As Integer
Declare Function OSLoadString Lib APIModule Alias "OSLoadString" _
( Byval H As Long, Byval S As Integer, Byval B As String, Byval nB As Integer) As Integer
Sub Click(Source As Button)
s$ = Trim$(Inputbox$("Server name:", Button, ""))
If s$ = "" Then Exit Sub
v% = NSPingServer(s$, a&, 0)
If Not v% = 0 Then
APIError v%
Exit Sub
End If
v% = NSFGetServerLatency(s$, 30000, tC&, tS&, sV%)
If Not v% = 0 Then
APIError v%
Exit Sub
End If
Messagebox "Server: " & s$ _
& Chr$(10) & "Availability: " & Cstr(a&) & "%" _
& Chr$(10) & "Outbound: " & Cstr(tC&) & " ms" _
& Chr$(10) & "Inbound: " & Cstr(tS&) & " ms" _
& Chr$(10) & "Version: " & Cstr(sV%) _
, 64, Button
End Sub
Sub APIError(V As Integer)
m$ = String$(1024, " ")
OSLoadString 0, V And &H3FFF, m$, 1024
p% = Instr(m$, Chr$(0))
If Not p% = 0 Then m$ = Left$(m$, p% - 1)
If m$ = "" Or m$ = "No error" Then m$ = "Unknown error (&H" & Hex$(v%) & ")"
Messagebox m$, 16, Button
End Sub
eknori
-
Hallo zusammen
Kleiner Nachtrag, vielleicht hilft es ja mal jemanden der so was sucht und damit ich es wieder finde. ;D
http://openntf.org/Projects/codebin/codebin.nsf/CodeBySubType/735160BB77457CF688256BDC000CC19C
Und sollte der Link mal nicht mehr funktionieren kleiner Tip am besten nach NSGetServerList googeln.
Gruss
Remo