Beiträge von CarstenH

    Der beste Weg in solchen Fällen ist immer eine Datensicherung vorrätig zu haben aus der man das Personendokument zurück holen kann.


    Eine neue Person zu registrieren ist eher die letzte Variante, wenn alle anderen Optionen ausgeschöpft sind, da hierbei (u.a.) verschlüsselte Mails und Signaturen verloren gehen. Außerdem sollte man sich genau überlegen, ob man die Person mit exakt dem gleichen Namen registriert - falls ja muss man unbedingt den nach der Löschung angerichteten "Schaden" begrenzen.


    Dazu dann auf jeden Fall die admin4.nsf kontrollieren und …

    a) alle OFFENEN Anforderungen, die sich noch auf die Löschung beziehen, sofort STOPPEN! Der AdminP kennt keinen Unterschied zwischen altem und neuem Namen wenn diese gleich sind! Vergisst man das gibt es am kommenden Montag evtl böse Überraschungen, da ein AdminP in der Defaultkonfiguration Sonntag Nacht die Person aus allen Namens-, Leser- und Autorenfeldern löschen möchte;

    b) alle ERLEDIGTEN Einträge notieren, die sich auf die Löschung beziehen. Daraus kann man ermitteln, in welchen Datenbanken und Dokumenten der Nutzer stand und evtl entfernt wurde um ihn wieder hinzuzufügen


    Wenn Notes nur für Mail usw. benutzt wurde sollte sich der Aufwand in Grenzen halten, ansonsten siehe b)


    HTH

    Carsten

    Die Informationen werden über einen in der Teilmaske (OwnerCheckSchedulesAndPrint) eingebetteten Planer dargestellt.

    Der Planer selbst ist nicht wirklich anpassbar, man kann nur rudimentär ein paar Anzeige-Eigenschaften einstellen.


    Man müsste die komplette Teilmaske neu bauen und das, was der Planer jetzt selbständig macht komplett neu erfinden.


    Klingt nach viel Arbeit, aber wie fast alles bei Notes, theoretisch machbar.


    Carsten

    Ich habe das nur in wenigen Datenbanken aktiv und da, wo es mit hängen gebliebenen Locks Probleme gab hab ich nach und nach nächtliche Aufräumagenten eingerichtet. Nach 24h offenem Lock gibt's i.d.R. eine Warnung an den Nutzer (falls mal jemand absichtlich sein Notes offen stehen gelassen hat oder abgestürzt war und noch weitermachen möchte oder der Laptop mit offenem Dok in den Ruhezustand gefahren ist - alles schon gehabt) mit dem Hinweis bitte das Dokument wenigstens einmal auf- und wieder zuzumachen damit der Nutzer die Sperre selbst aufhebt. In der darauf folgenden Nacht, sofern der Nutzer nicht reagiert hat, wird die Sperre dann rigoros entfernt - auch wieder mit Info an den Nutzer und eine Log-DB. Seitdem ich das so laufen hab bekomme ich keine Hilferufe mehr aus den betreffenden Teams, davor gab es so 1-2 mal im Monat Probleme.


    Wenn ich mir die Art anschaue, wie die Locks gleichzeitig auf mehrere Server unter Umgehung der Replikation geschrieben werden wundert mich da gar nichts. Es erfüllt aber seinen Zweck und ist besser als gar nichts.


    Das viel größere Problem sind für mich in dem Zusammenhang die Kombination Softdeletion + Lock, da lassen sich die Sperren weder manuell noch gescripted aufheben, da kommt dann immer der Fehler, dass das Dokument ja gelöscht ist. Das Lock verhindert ein administratives Undelete. Hier kann nach meinen Tests nur der Sperrer (und Löscher) das Problem selber durch Undelete lösen, erst danach kann man wieder ganz normal die Sperre beseitigen. Das löse ich dann, indem ich in größeren Abständen in den betreffenden DB's am Wochenende oder in der Nacht entweder das Locking oder die Softdeletions kurz komplett abschalte und dann etwas später wieder frisch aktiviere. Alternativ habe ich in einigen Fällen begonnen einen anderen "Lösch"-Mechanismus einzubauen über ein Feld, das dann die betreffenden Dokumente ausblendet statt wirklich zu löschen und die tatsächliche Löschung macht dann wieder später ein Aufräumscript.

    Die Anzeige wird durch die Liste der Personen (An, CC und BCC) in der Einladung und deren Antwortdokumente in der Mailbox des Einladenden erzeugt. Wurden die Antworten gelöscht gibt's auch keinen Status und stattdessen steht dann da "keine Antwort".


    Kommentare, sofern welche angegeben wurden, stehen nur in der jeweiligen Antwort. Die findet man z.B. unter Ansichten > Listen > Gruppierte Einträge wenn man dort die eigene Einladung über den Twistie erweitert, also die Antworten aufklappt.


    HTH

    Carsten

    Ich stimme auch dem zu, was taurec sagt, insbesondere weil die Schnellmarkierung auf Windows-Clients automatisch aktiv ist, im Gegensatz zu Windows Server Consolen, wo das Feature standardmäßig abgeschaltet ist. Mal abgesehen von der Tatsache, dass W10 ein nicht supportetes OS für den Server ist ;)


    Ich würde generell empfehlen, von der klassischen Konsole auf Controller + Java Console umzusteigen bei der es solche Probleme gar nicht geben kann, weil kein Windows-Fenster mehr verwendet wird. Damit hat man viel mehr Kontrolle, kann den Server sogar ohne direkten Zugriff auf die Maschine/VM neu starten, kann Kommandos an mehrere Server gleichzeitig senden, sieht während Start und Shutdown alle Meldungen und weiß ob der Server hängt oder einfach nur etwas mehr Zeit braucht. Die "old School" Console stammt ja eher aus der Notes-Steinzeit und ist entsprechend beschränkt.


    https://www.ibm.com/support/kn…ndthedominoconsole_c.html

    Hallo QuoVadis,


    du vergleichst bei deinem Test Äpfel mit Birnen, da die Protokolle HTTP und NRPC sich nicht ausschließlich durch den benutzten Netzwerk-Port unterscheiden.

    Wenn du also HTTP über den Port 1352 schickst sagt das rein gar nichts über NRPC aus - ansonsten wäre die Lösung deines Problems ja simpel, den Notes-Port auf 80 zu ändern und alles wäre schick ;)


    Wenn also deine erste Aussage stimmt, dass die Firewall1 ausschließlich http/s-Traffic gestattet dann wird kein NRPC direkt durchgehen, egal welche Zieladresse oder Port verwendet wird. Wäre die Firewall1 ein SOCKS-Proxy (circuit-level Proxy) sähe das etwas anders aus, dann würden auch weitere Protokolle (z.B. NRPC, FTP, …) durchgehen können - jenachdem was in der Firewall noch gestattet wurde. Das hat alles immer noch nichts mit den Ports zu tun.


    Wenn wir uns also wieder auf die ursprüngliche Aussage beschränken dass wirklich nur HTTP/S durchgeht dann bleiben zwei Möglichkeiten. Entweder man baut vom Client aus einen Tunnel direkt zum Ziel (VPN oder HTTP tunneling ohne CONNECT, benötigt auf Client und Ziel je eine Softwarekomponente) oder man lässt die Firewall1 das tun (HTTP CONNECT Methode). Firewall1 wird das vermutlich nicht tun (sonst würden wir hier nicht reden) also bleibt nur die erste Methode.


    Wenn ich die vollständige Kontrolle über das Ziel habe wäre z.B. ein einfacher Weg ein ad-hoc-VPN zwischen dem PC mit Notes und dem Domino aufzubauen, ich mache das öfter mit TeamViewer, da brauche ich keine extra Software die ich nicht eh schon verwende. Alternativ eine andere Software, die den Tunnel durch den Proxy schiebt.


    Der Firewall1-Admin kann btw. auch diverse Regeln festgelegt haben, die unkontrollierbare VPN's blockieren sollen, was das ganze sicher nie ganz verhindern aber zumindest erschweren kann.


    HTH

    Carsten

    Dann bauen wir mal eine Fehlerbehandlung und etwas mehr Infos in deinen Agenten ein. Dann sollte die Ausgabe bei dir in etwa so aussehen:


    [09F4:01A3-0EC4] { nserver:#1329} 12.12.2019 13:09:42 Remote console command issued by Carsten: te amgr run "test.nsf" 'agenta'

    [1010:000C-17F0] { namgr:#33BC} 12.12.2019 13:09:43 AMgr: Start executing agent 'agenta' in 'test.nsf'

    [1010:000C-17F0] { namgr:#2E62} 12.12.2019 13:09:43 Agent Manager: Agent printing: Anzahl Dokumente: 2

    [1010:000C-17F0] { namgr:#2E62} 12.12.2019 13:09:43 Agent Manager: Agent printing: 1. Dokument wird aktualisiert: Test1

    [1010:000C-17F0] { namgr:#2E62} 12.12.2019 13:09:43 Agent Manager: Agent printing: 2. Dokument wird aktualisiert: Test2

    [1010:000C-17F0] { namgr:#2E62} 12.12.2019 13:09:43 Agent Manager: Agent printing: Agent beendet.

    [1010:000C-17F0] { namgr:#33BE} 12.12.2019 13:09:43 AMgr: Agent 'agent' in 'test.nsf' completed execution


    Ich lasse mir von jedem Dokument einen Zähler und zur Sicherheit noch den Inhalt eines Textfeldes FeldXYZ ausgeben.

    So wie es hier steht getestet und funktioniert, nur der Name der View und des auszugebenden Feldes sind anzupassen.


    Kleiner Hinweis: wenn es mehr als nur ein paar dutzend Dokumente sein sollten könnte die Ausgabe jedes Dokuments das Log vollschreiben, dann ggf. die View so anpassen dass zum Testen erstmal weniger als 100 Dokumente drin stehen. Alternativ legt man einen Ordner an, legt einige Docs rein und nimmt zum Test den Namen des Ordners statt der View, das sollte problemlos gehen.


    Sub Initialize

    Dim session As New NotesSession

    Dim db As NotesDatabase

    Dim view As NotesView

    Dim doc As NotesDocument

    Dim counter As long


    On Error GoTo ErrorHandler


    Counter = 0

    Set db=session.currentDatabase

    Set view = db.GetView("ViewA")

    Call View.Refresh

    Print "Anzahl Dokumente: " + CStr(view.Allentries.Count)


    Set doc = view.GetFirstDocument

    Do While Not (doc Is Nothing)

    Counter = Counter + 1

    Print CStr(Counter) + ". Dokument wird aktualisiert: " + doc.FeldXYZ(0)

    Call doc.ComputeWithForm(False,False)

    Call doc.save(False,False)

    Set doc = view.GetNextDocument(doc)

    Loop

    Print "Agent beendet."

    Exit Sub


    ErrorHandler:

    Print "Fehler " + CStr(Err) + " in Zeile " + CStr(Erl) + ": " + Error$

    Resume Next

    End Sub

    Der Agent ist völlig in Ordnung und sollte genau das tun was du möchtest.

    Als Vordergrundagent gestartet werden (Fehler-)Meldungen an deinem Client ausgegeben, je nach Fehlerart als Popup oder nur in der Statusbar.

    Als Hintergrundagent gestartet erscheinen die gleichen Meldungen auf der Live-Console des Servers (und zusätzlich in der log.nsf).


    Mögliche Fehlerursachen, wenn scheinbar nichts passiert:


    - es gibt keine Ansicht "Profildokumente"

    - die Ansicht zeigt keine Dokumente

    - der Auslöser des Agenten ist inkorrekt (Stichworte Auslöser oder Zeitplan und korrekter Server)

    - das Ziel des Agenten sollte auf "Kein(e)" stehen wenn du eine eigene Auswahl durchläufst

    - der Account in dessen Namen der Agent läuft hat nicht genügend Rechte zur Agentenausführung auf dem Server (Stichwort: Serverdokument)

    - der Agent (oder der Account in dessen Namen er läuft) hat nicht genügend Rechte auf die DB (Stichworte ACL und Agentensicherheit "Ausführen im Name von")


    Sofern du Zugriff auf die Serverkonsole hast würde ich den Agenten zum Testen auf Zeitplan: Nie und Ziel: Keine stellen und ihn über die Konsole des Servers mit dem folgenden Befehl zu starten versuchen:

    tell amgr run "meinedb.nsf" 'meinagent'


    Wenn etwas nicht stimmt bekommst du das dann dort angezeigt.


    Wenn du keinen Konsolenzugriff hast gehe oben genannte Punkte nach dem Ausschlussverfahren durch und lass dir von einem Admin aus der log.nsf des Servers ggf. die Fehlermeldungen zuschicken.


    HTH

    Carsten

    Du musst zusätzlich zum Item selbst noch die Property IsAuthors des Items setzen, das macht die Maske bei Autorenfeldern automatisch aber bei Items, die per Script angelegt werden, muss das der Programmierer machen.


    notesItem.IsAuthors=True


    Carsten

    Man benötigt keinen Domino Designer Client um sich Ansichten zu erstellen oder anzupassen. Der Standard Client hat alles dabei.


    Lediglich die Berechtigung Ordner/Ansichten zu erstellen und etwas Interesse ist nötig. Wer mit Excel und Formeln klarkommt kann das auch im Notes.

    Ob die Rechte ausreichen sieht man gleich beim ersten Schritt.


    Schritt 1: OBK öffnen und Menü Erstellen > Ansicht... auswählen

    Schritt 2: Details zum Erstellen

    - Links oben einen Namen vergeben (z.B. "Gesendet von")

    - rechts daneben kommt der spannende Teil, Ansichtstyp.

    Typ "Gemeinsam" bedeutet, dass alle Nutzer die Ansicht später sehen/verwenden können, "Privat" ist nur für einen selber sichtbar.

    Stil kopieren von

    - Stil kopieren von: "Gesendet", damit hat man eine sinnvolle Vorgabe mit fast allen Inhalten

    Schritt 3: Speichern und anpassen

    - in der Design-View kann man jetzt neue Spalten einfügen oder vorhandene anpassen.

    Da ich eure OBK nicht kenne nehme ich eine normale Mail-Anwendung als Grundlage fürs Erklären.

    Erstellen > Neue Spalte einfügen (die kann dann mit Drag&Drop an die richtige Stelle geschoben werden, am besten zwischen Empfänger und Betreff.

    Aufpassen, dass man sie nicht ganz links (könnte Sortierung ändern) oder ganz rechts (die letzte Spalte wird meist auf Fensterbreite vergrößert) hinpackt.

    Spaltenwert: hier stehen 3 Varianten zur Verfügung. einfache Funktionen, Feldnamen oder Formeln.

    Wenn es ein Feld mit dem Namen im OBK gibt nimmt man das, ansonsten könnte die Einfache Funktion "Autoren, einfacher Name" schon das Ergebnis liefern.

    Den letzten Bearbeiter (erkennbar im letzter Eintrag im Multivalue-Feld $UpdatedBy) liefert hingegen die Formel: @Name([CN];@Subset($UpdatedBy;-1))

    Man kann nach jeder Änderung mit STRG-S zwischenspeichern und sich in einem extra Tab das Ergebnis schon live ansehen, je nach Größe dauert es ein paar Sekunden.

    Schritt 4: schön machen

    Im letzten Schritt passt man die Eigenschaften der neuen Spalte noch an damit Schriftart, Größe etc das Gesamtbild nicht zerschießen.


    Ich habe das bei diversen Teammailboxen inzwischen mit der obigen Formel direkt in der Gesendet View im Einsatz, wenn es gut aussieht baut euer Admin euch das vielleicht auch in die Gesendet-View aller OBK ein.


    Viel Spaß beim Experimentieren =)

    Carsten

    Die Frage lautet korrekt "Möchtet Sie, dass Ihr Abwesenheitsagent während Ihrer Abwesenheit Ihre Nachrichten verwaltet?" und wird von der Routine AutoEnableOutOfOffice() in der Script-Bibliothek CSEventNotes_de-DE gestellt. Der deutsche Text aus der Meldung kommt per Const Deklaration aus der Common_de-DE.


    AutoEnableOutOfOffice wird durch das Verwenden der Kategorie "Urlaub" (im deutschen Template) in einem Kalendereintrag beim Speichern getriggert.


    HTH

    Carsten


    (Screenshot konnte ich auch nicht hochladen - ebenfalls unbekannter Fehler)

    Es gibt eine Möglichkeit, die man übergangsweise (!) aktivieren könnte, damit der Server nach dem ID-Wechsel auf beide Namen reagiert:

    NETWORK_SPRAYER_ADDRESS=AWServer1,Server1


    Natürlich müssen beide Namen im DNS auch zum gleichen Domino auflösen.


    Damit ist zwar der Connect gesichert aber ein anderes Problem bleibt bestehen (wäre übrigens auch bei Usern mit Alias-Namen nicht anders denn Alias-Namen sind genau genommen eine reine Mail-Geschichte): sämtliche sicherheitsrelevanten Einstellungen funktionieren so nicht: xACL, ACL, Leser-/Autorenfelder etc.


    Hier könnte man sich notfalls (!) mit folgendem Hack behelfen: Man legt eine Gruppe mit dem alten Server-Namen an und packt den neuen Namen als Member hinein. Für Leser-/Autorenfelder funktioniert das super. Bei ACLs eher weniger, wichtig ist in dem Fall dass in den ACLs der Eintrags-Typ natürlich nicht als Server stehen darf sonst greift das nicht. Es greift außerdem niemals bei bestimmten Einstellungen wie Administrations-Server der Datenbank.


    Unterm Strich ist eine Umstellung wie von Torsten empfohlen schon die einzig sinnvolle Lösung.


    Carsten

    Der Port ist laut deinem Listing durchaus aktiv - nur eben ohne sinnvolle Konfiguration (wie ja auch die Fehlermeldung besagt).

    Er findet das IMAP Internet-Site Dokument schlicht nicht, was (ohne das System vor der Nase zu haben) drei mögliche Ursachen am wahrscheinlichsten macht:


    a) Zwischen Anlegen des IMAP Dokuments und aktivieren des IMAP-Ports wurden die Ansichts-Indexe noch nicht aktualisiert, oder es sind mehrere Server in der Domäne und das IMAP Dokument wurde noch nicht zwischen den Servern repliziert - passiert gerne wenn man einen anderen Server am Adminclient benutzt als der, der die Konfiguration erhalten soll.


    b) Die Organisation des IMAP Dokuments stimmt immer noch nicht mit der Organisation des Servers überein.

    Bitte hier auch wirklich exakt den Namen aus dem Certifier benutzen!

    Beispiel: Wenn der Domino den Namen hat "CN=ServerXYZ/OU=Servers/O=MyCompany/C=DE" dann wäre "MyCompany" der richtige Wert.

    Wenn die Organisation Leerzeichen und/oder Sonderzeichen enthält müsste man nochmal gucken, einige sind unzulässig und verursachen möglicherweise Probleme.


    c) Es ist ein deutsches Domino-Directory-Template und es ist ein Übersetzungsfehler in der IMAP-Maske vorhanden, der für falsche Namen/Inhalte bei den Steuerfeldern sorgt.


    Für c) müsste man sich die Feldinhalte in den Dokumenteigenschaften genauer anschauen.


    Carsten

    Welche Domino-Version mit welchem Domino-Directory Template in welcher Sprache ist im Einsatz?

    Der Typ der angelegten Internet-Site ist IMAP-Site?

    Im Feld Organisation steht der gleiche Name, der auch im Zertifikat des Servers (O=.......) steht?

    Stehen die korrekten (Host- und IP-)Adressen im IMAP-Site-Dokument?

    Gibt es weitere Server/IMAP-Site-Dokumente?

    Hat der Server mehrere Ports/IP-Adressen? Wenn ja, wurden die entsprechenden Parameter für den IMAP-Port in der notes.ini gesetzt?

    Bevor ich IF4 installieren kann, muss ich FP10 installieren. Und diese Installation schon bricht ab.

    Nein.


    Das war früher mal so aber die Installation des FP vor der Installation der Hotfixes ist schon seit langer Zeit nicht mehr notwendig. Das sieht man auch an der Größe, es sind längst keine inkrementellen Installer mehr.


    Zitat aus der IBM Technote "Interim Fixes & JVM patches for 9.0.1.x versions of IBM Notes/Domino & add-ons":


    You can install a Notes Client interim fix (or hotfix) without installing a Feature Pack (FP). Namely, if you have a Notes 9.0.1 client, you can install any 9.0.1.x hotfix (where the hotfix is based off a FP) without installing that FP.

    Hallo Thorsten,


    die Startzeiten sind zwar keine "Vorschläge" aber Domino bzw. der Agentmanager sind auch kein Echtzeitsystem. Vielmehr arbeitet der AMgr, wie viele andere Prozesse bei Domino, mit Queues (Warteschlangen), die periodisch (meist 1x je Minute) gepollt werden.


    Eine angegebene Startzeit für einen Agenten sorgt lediglich dafür, dass der Agent von einer Queue in die nächste verschoben und vom nächsten freien Prozess weiter verarbeitet wird. Einige Ereignisse (z.B. "wenn Dokumente erstellt oder geändert wurden") haben standardmäßig sogar konfigurierbare "Sperrfristen" um ein ständiges Dauerauslösen zu unterbinden.


    Es gibt 2 "Bereitschafts"-Queues (Verbose - für Ereignis-gesteuerte Agenten und Scheduled für zeitgesteuerte Agenten) und eine Ausführungs-Queue (Eligible Queue). Jeder Agent, der auf einem Server ausgeführt wird, liegt erst einmal in der V oder S Queue (je nach Typ). Sobald das Ereignis oder die Zeit eintritt wird der Agent in die nächste Queue verschoben bis er in der Eligible-Queue angekommen ist (V => S => E). Dort kümmert sich dann der nächste freie AMgr-Thread um die Abarbeitung in der Reihenfolge des Eingangs. Da die S- und E-Queue periodisch gepollt werden kann es also Minuten dauern, bis die eigentliche Ausführung überhaupt möglich ist - sofern dann auch noch ein Thread zur Bearbeitung frei ist.


    Um zu sehen, welcher Agent sich gerade in welcher Queue befindet kann man an der Konsole folgendes eingeben: tell amgr schedule


    Um also deine Ausgangsfrage kurz und knapp zu beantworten: die einzige Möglichkeit, einen Agenten zu einer bestimmten Zeit auch wirklich zu starten, ist ihn direkt auszuführen (sofern freie Threads vorhanden sind).


    Carsten