Wolfgang hat vollkommen Recht, die MAPS Task erzeugt ein Profildokument das wiederum vom Client zum Generieren der grafischen Darstellung ausgelesen wird. Der MAPS kann auf einem beliebigen Server der Domäne ausgeführt werden da er immer die gesamte Domain analysiert. Einzige Ausnahme: wenn der Server nur einen Teil des Domino Verzeichnisses lokal führt, also kein primärer Verzeichnisserver ist, dann fehlen Informationen und die Topology wird unvollständig.
Ich hatte das verdrängt, da ich die "Topologiekarte" für reine Spielerei und deren praktischen Nutzen als nicht vorhanden betrachte und selbst in Seminaren führt das Vorführen immer wieder zum Stirnrunzeln, wer sich sowas ausdenkt. Ebenso halte ich den permanent laufenden MAPS-Task für eine reine Ressourcenverschwendung - und das für gefühlt nur alle paar Jahre vielleicht mal auftretende Änderung an der tatsächlichen Topologie. Aber das ist nur meine persönliche Meinung.
Wie auch immer. Wenn der MAPS Fehler wirft scheint es einen Überlauf in einem der Felder des Profils zu geben. Also MAPS stoppen, Profil "$topology" löschen und MAPS wieder starten. Wie oben schon erwähnt würde ich den MAPS dafür nur bei Bedarf kurz starten und anschließend wieder beenden.
Da es sich um ein Profildokument handelt könnte es sein, dass der Client es aus dem Cache holt - hier muss ggf. der Client auch einmal neu gestartet werden nachdem der MAPS tätig war.
Kurzes Löschscript (als Button oder Agent im Domino Verzeichnis) und darauf achten, dass man es auf dem Server ausführt, auf dem man danach auch den MAPS startet bzw. den man im Adminclient eingestellt hat.
Dim s As New NotesSession
Dim db As New NotesDatabase("","")
Dim pdoc As NotesDocument
On Error GoTo ERRH
Set db = s.Currentdatabase
Set pdoc = db.Getprofiledocument("$topology")
If pdoc.Isnewnote Then
Print "Kein Topologieprofil '$topology' vorhanden. Bitte MAPS Task starten und die Ausgabe an der Konsole beachten."
Else
Call pdoc.Remove(True)
Print "Topologieprofil '$topology' wurde gelöscht. Bitte MAPS Task starten und die Ausgabe an der Konsole beachten."
End If
ENDH:
Exit Sub
ERRH:
Print "Error " & CStr(Err) & ": " & Error$ & " in Zeile " & CStr(Erl)
Resume ENDH
HTH
Carsten