Beiträge von CarstenH

    Das Problem und Workarounds sind IBM bekannt:


    MIME header is missing when disclaimer is added by router


    Issues that may occur when using HTML message disclaimers


    Du kannst dich ja an den SPR anhängen, vielleicht nutzt es was, wenn genügend Fälle gemeldet sind.


    Andere Alternative ist der Einsatz eines Tools, z.B. Trailer-Modul der IQ-Suite von Group-Technologies, das sogar sprachabhängige und dynamische Trailer-Texte mit Ausnahmenregelung (z.B. Erkennung, ob der Trailer schon vorhanden oder an anderer Stelle steht) ermöglicht.


    Carsten

    Notes (der Client) hat ein hard coded Limit bei der Verschachtelung von Mailverteilern auf 20 Ebenen.


    Auch wenn der Domino (zumindest laut KnowledgeBase) seit Version 6.x dieses Limit offiziell nicht mehr haben soll so besagt die Admin-Hilfe etwas anderes:


    Zitat

    Für das Mail-Routing können Sie bis zu fünf Gruppenebenen verschachteln. Für alle anderen Zwecke können Sie bis zu sechs Gruppenebenen verschachteln.


    Auf der sicheren Seite ist mal also nur, wenn man sich (freiwillig) auf 5 Ebenen beschränkt.


    Pro Gruppendokument darf die Summe der eingetragenen Zeichen im Feld Mitglieder 32k und im gesamten Gruppendokument 61k nicht überschreiten. 32k bedeutet nicht 32768 Zeichen sondern Speicherplatz. Einzelne Zeichen können je nach Zeichensatz deutlich mehr als Byte belegen.


    Carsten

    Wenn ich den Screenshot alleine sehe fallen mir schon eine Handvoll Gründe ein, warum der Server lahmt:


    - Hat die Maschine (mindestens) 4 CPU-Kerne? Zumindest ist so konfiguriert worden. Ein schnelles Hardware-RAID braucht diese Konfiguration ebenfalls, falls iSCSI verwendet wurde muß nachgemessen werden, was da verkraftet wird.
    - Hat der Cluster wirklich 5 Mitglieder? Zumindest wurde der Clusterreplikator so konfiguriert. Ich glaube es aber eher nicht. Kostet ziemlich sinnlos I/O + Bandbreite.
    - Bei einem so großzügig konfiguriertem Cluster sollte man annehmen, daß zumindest eine extra Cluster-Schnittstelle fürs Netz eingerichtet wurde. Der Screenshot sagt da was anderes. Alles über die gleiche Karte und damit gleicher I/O Bus. Das Netz selbst ist da mit Sicherheit eher weniger belastet.
    - Großzügig wird auch an anderer Stelle mit der I/O umgegangen: sage und schreibe 8 gleichzeitige ausgehende Replikationen wurden da konfiguriert. Eingehende kommen gratis oben drauf, wenn ich mindestens bei den obigen Clusterkonfigurationen mal hochrechne wären das mindestens weitere 5 parallel stattfindende Synchronisationen. Nicht gerechnet connectierte Clients.
    - Apropos Clients: wo sind die eigentlich in dem Screenshot? Da ist nicht einer zu sehen, laut der Konfiguration und dem was da angeblich so gebraucht wird müßten ja etliche IMAP/POP/SMTP oder Notes-Verbindungen von fleissigen Nutzern existieren. Tun sie aber nicht. Lediglich eine ausgehende Mail geht da grad einsam über die Leitung.


    Von den Aufgaben der Tasks her wurde der Server (auf den ersten Blick anhand des Screenshots) wie ein HUB einer Hub+Spoke-Topologie konfiguriert.


    Sollten hier wirklich die ganzen Client-Protokolle wie LDAP, HTTP, POP, IMAP gebraucht werden frage ich mich, wo ein paar andere Dinge abgeblieben sind wie z.B. weitere AdminP-Threads, Überwachungs-Aufgaben (z.B. Statistic Collector, iSpy etc. für die Sammlung der nötigen Überwachungsinformationen), zusätzliche AgentManager-Threads usw.


    Im Screenshot sehe ich stattdessen den Statistics laufen, vermutlich hat den irgendwer in die Servertasks eingetragen ohne zu wissen, was der tut und kurz vor dem Screenshot den Server neu gestartet. Dafür spechen auch die fehlenden Nutzer und die Tätigkeit des Schedulers. Nebeneffekt des Statistics-Tasks, er schaltet mal eben auf allen (!) Datenbanken die komplette Aktivitätsprotokollierung ein, was ebenfalls nochmal eine Menge unnützer I/O bedeutet.


    Unterm Strich scheint da etwas mehr Aufäumbedarf zu bestehen. Selbst ohne Perfmon kommt man durch Nachdenken auf das (hausgemachte) Performance-Problem: I/O


    Carsten

    Es gibt m.E. mehrere potentielle Fehlerquellen, genau genommen fallen mir im Moment nur genau 3 ein:


    1) Papierkorb (Softdeleted Documents)


    => leeren


    2) ein defektes Dokument


    => neue Replik anlegen oder z.B. compact -c sollten hier helfen


    3) ein nicht mehr vorhandenes Dokument (wie z.B. ein Elterneintrag eines Wiederholungstermins)


    z.B. entweder


    => ein Hilfsscript (Agent) schreiben der jedes Dokument und seine Antworten auf Vorhandensein prüft und ggf. korrigiert


    oder


    => die Prüfung auf Antwortdokumente in den Archiveinstellungen abschalten, was die Gefahr mit sich bringt, daß ein paar Wiederholungstermine mehr archiviert werden, als einem lieb ist.


    Carsten

    Zitat

    was ist das für eine Replik-ID? Interessanterweise haben wir quer über unsere Umgebung verteilt je nach Cluster teils unterschiedliche Replik-IDs stehen. Die sind weder vom DD, noch von der dbdirman.nsf, noch von der cldbdir.nsf. Was soll diese ID aussagen? Und wie kommt es dazu, dass hin und wieder in unterschiedlichen cluster.ncf unterschiedliche ID für den selben Cluster vermerkt sind?


    Da wirst du auch lange suchen können ... es ist keine Replik-ID sondern nur exakt die daneben stehende Zeitangabe in ihrer nativen Schreibweise. Deshalb ist die bei jedem Client anders =)


    Und falls jetzt jemand sogar mitdenkt - ja, eine DB-Replik-ID ist auch nichts anderes als eine Zeitangabe: die der DB-Erstellung nämlich (und damit keine geheimnisvolle und im Universum einmalige zufällige Kombination, wie einem manchmal weisgemacht werden soll^^). Und ja, es gibt eine Handvoll Ausnahmen was die Zufälligkeit betrifft, aber das ist ein anderes Thema.


    Zitat

    Laut Hilfe wird die clientseitige cluster.ncf alle 15 Minteun mit der vom Server abgeglichen. Welcher Mechanismus steckt dahinter?


    Das Intervall bezieht sich lediglich auf das in-memory-pendant der cluster.ncf.


    Damit ist jedoch nicht die Häufigkeit des Zurückschreibens gemeint. Die cluster.ncf wird lediglich für das cachen der Informationen beim Start des Clients verwendet, danach beginnt das 15-Minuten-Intervall. Die Dynconfig hat damit allerdings nichts zu tun, das ist native Clientangelegenheit.


    Carsten

    Das Anlegen von Ansichten und Ordnern läßt sich für das geschilderte Szenario nicht wirklich komplett verbieten, da es sich um ein generelles Feature von Notes handelt, daß Nutzer die ihnen zugänglichen Dokumente organisieren, sortieren usw. sollen und dürfen. Sofern es in der ACL verboten wird weicht der Client auf den lokalen Desktop für die Designablage aus.


    Das Kopieren und Modifizieren von Designelementen bzw. Views und Folders im Speziellen läßt sich nur durch das Verbergen des Designs erreichen, sobald das gemacht wurde kommt niemand mehr "mal eben so" an die Elemente, Scripte sind in editierbarer Form nicht einmal mehr enthalten. Auch mit lokalen Repliken läßt sich dann nichts mehr mit zusätzlichen Rechten tricksen.


    Der Entwickler sollte lediglich darauf achten, daß er immer eine "offene" Version irgendwo gesichert behält.


    Carsten

    Wenn ich hier so über die Posts schaue stellen sich mir ebenfalls einige Fragen, z.B.


    - wie viele Domänen? Alle Server in jeweils einer?
    - Anzahl der beteiligten Organisationen und Unterorganisationen (Zertifizierer)? Jeder Server in der O oder in einer OU?
    - Wenn verschiedene Zertifizierer, sind Nutzer und Server in den selbigen?
    - Wenn Nutzer und Server nicht in selbigen, wo ist Gegenzertifizierung? O? alle OU für Nutzer und Server getrennt?
    - Ist irgendwo der Schlüsselvergleich in den Serverdokumenten eingeschaltet?
    - Werden Verzeichnisse ausgetauscht zwischen den Domänen (und/oder Servern) repliziert?
    - wenn Informationen im Serverdokument geändert wurden, erfogte danach jedesmal ein Neustart? Best Practice hier ist, mit Gruppen zu arbeiten, da man diese ohne Serverneustart sondern durch UPDALL -R aktualisieren kann.


    Carsten

    Bernhard: Das glaub ich nicht Tim ^^


    Der Agent vom Typ "wenn Dokumente eingefügt ..." ist ein Frontend-Agent.


    Und - bevor ich widerspreche teste ich natürlich, nur für den Fall dass ich falsch liege.


    Und mein Test sagte mir gerade beim Versuch ein Dokument einzufügen: Notes Error - Sie sind zur Durchführung dieser Operation nicht berechtigt.


    Er hat also ein Dokument eingefügt aber nicht gelöscht.


    w.z.b.w. ^^


    Carsten


    Ich hatte als User mir folgende Rechte eingeräumt:


    Autor, Dokumente erstellen, aber _keine_ Löschrechte


    Der Agent-Unterzeichner ist Manager mit allen Rechten, bei dem funktioniert der Agent natürlich, wenn ich den gleichen Test unter dessen ID durchführe.

    Zitat

    Trotzdem kann auch ein Autor z.B. per Agent aus einer anderen Datenbank über das Backend Items ändern, die er über die Maske gar nicht ändern könnte und somit diverse Regeln aushebeln.


    Das ist so nicht ganz korrekt. Ein Autor kann auch über Tricks nur Dokumente verändern, über die er auch mit Autorenfeldern berechtigt ist. Andere Dokumente kann er nicht manipulieren.


    Anders sieht es natürlich aus, wenn der Programmierer hier eine eigene Berechtigungs-"Logik" mit Script in die Masken einaut.


    Aber genau darauf bezog sich ja meine Aussage: wenn vernünftig (!) mit Autorenrechten und den entsprechenden Feldern arbeitet muß nirgendwo getrickst werden.


    Zitat

    Einfacher gehts mit dem Agent


    "When Documents are pasted" (Der im Deutschen falsch übersetzt wurde, da Passiv und Vergangenheit verwechselt wurden).


    Dim s As New NotesSession
    Call s.CurrentDatabase.UnprocessedDocuments.RemoveAll(True)


    "Super" Idee, der Agent funktioniert aber nur, wenn der Nutzer sowohl Editor als auch Löschrechte hat.


    Anderenfalls würde der Agent (z.B. bei Autorenrechten) nur dann arbeiten, wenn der Nutzer seine eigenen Dokumente dupliziert. Sobald er fremde Dokumente einfügt, für die er keine Autoren-Rechte hat, kommt eine Fehlermeldung und das betreffende Dokument bleibt in der Datenbank stehen.


    Merke:


    Die Kombination Editor + Löschrechte ist für eine saubere Multiuser-Anwendung nur dann sinnvoll, wenn das Einfügen, Löschen und Editieren beliebiger Einträge aus organisatorischer Sicht auch gewollt ist. In allen anderen Fällen ist mit Autorenrechten zu arbeiten.


    Löschungen sind über Felder zu handhaben, die umgesetzt werden und die Dokumente ausblenden, damit lassen sie sich durch Verantwortliche später nachvollziehen, rückgängig machen oder eben durch einen Aufräumprozeß endgültig machen.
    Der Hilfsagent zum Anlegen ist nur gegen den im Eingangspost erwähnten Mißbrauch nötig, um Nutzern das Einfügen fremder Dokumente zu verwehren, da das ausschließlich über das Erstellen-Recht handhabbar ist.


    Carsten

    Nette Diskussion über ein hausgemachtes Problem. Daher auch meine 5 Cents mal dazu, und (weils so schön ist) lasse ich mal den Besserwisser-Trainer raushängen:


    Beispiel 1:


    Ich gebe jemanden das Recht als Entwickler und wundere mich hinterher warum er sich munter Agenten erzeugt und überlege, wie ich das unterbinden kann.


    Lösung für 1: ich gebe ihm halt das entsprechend niedrigere Recht.


    (Das Thema war insbesondere bei älteren Notesinstallationen im Zusammenhang mit dem Out-Of-Office Agenten und dessen Aktivierung gern angefragt).


    Beispiel 2:


    Ich gebe jemanden das Recht als Editor und wundere mich, warum er munter Dokumente erzeugen kann (übrigens nicht nur per Copy und Paste, aber das nur nebenbei).


    Lösung für 2: ich gebe ihm das für Nutzer eigentlich auch vorgesehene Recht als Autor. Der Rest ist easy per Programmierung lösbar. Haken beim Recht zum Dokumente erstellen fliegt weg und wenn er Dokumente im Sinne der Anwendung erzeugen muß tut der Knopf das über einen Hintergrundagenten, der mit anderen Rechten läuft und den Nutzer in ein Autorenfeld einträgt.


    Alles andere ist "Bastelei". Selbst wenn hier mit supertollen Scripten an Stelle a) das Einfügen verhindert wird kann der Nutzer es über Stelle b). Ich werde jetzt hier nicht ausführlich werden, welche Wege es noch gibt, aber ein Beispiel als die simple Version: neuen Ordner anlegen ohne Gestaltung eines anderen zu übernehmen und schon geht da drin auch wieder das Einfügen (wenn ich Editor bin).


    Der Editor ist nunmal das höchste Recht (!) auf Dokumentebene, das es innerhalb einer Datenbank überhaupt gibt. Also fangt bitte nicht an mit superaufwändigen Programmierungen Rechte neu abzubilden, die es schon lange gibt, nur weil der eigentliche Programmierer nicht in der Lage war/ist mit Leser- und Autorenfeldern vernünftig umzugehen!


    Carsten

    Das stimmt alles Ralf, es gibt (auch und insbesondere außerhalb von Notes) noch etliche Dinge die zu einem sicheren Netzwerk gehören. Und wenn sich jeder mit einem beliebigen PC (oder einer VM) ins Netz einstöpseln kann und noch per DHCP bedient wird...ich rede mal nicht weiter, worums geht sollte klar sein.


    Wenns tatsächlich ein TS ist dann tippe ich aber sogar mal darauf, dass der Kollege einen anderen Kollegen beauftragt hat, während seines Urlaubs mal ein weinige Spam aufzuräumen. Auch dass solls geben. Und es würde erklären, warum der Kollege an die ID rankommt.


    Carsten

    Es ist ein reiner Konsolen-Befehl, den übrigens der Admin-Client sowieso jedesmal ausführt, wenn man mit diesem z.B. die Nutzerliste abruft.


    show users


    Liefert ganz normal die Nutzer, die gerade eine Session geöffnet haben und


    show users debug


    liefert noch deren IP dazu.


    Allerdings ist es ein reiner Konsolenbefehl, da wird nichts permanent aufgezeichnet zum späteren Nachschauen. Und bitte keine "Ideen" wie z.B. per Programmdokument alle 5 Minuten aufrufen...


    Ich verstehe generell die Schwierigkeit an der Nachvollziehbarkeit gerade nicht so richtig, schließlich hat jedes Personendokument ein deutlich sichtbares Feld mit der Bezeichnung "Notes Client-Computer" wo die Liste der PC's drinsteht, von denen aus mit dieser ID bereits irgendwann einmal zugegriffen wurde. Sogar Betriebssystem und Version stehen dabei.


    Das sollte sehr schnell zum Erfolg führen und funktioniert auch im Nachhinein, es sei den der "Täter" ist jemand, der seine Spuren zu beseitigen wußte. In dem Falle ist es aber entweder ein Admin oder aber ihr solltet ihn sofort zum Admin machen oder sein Gehalt verdoppeln, scheinbar weiß der dann nämlich mehr über Notes als eure aktuellen Admins ^^


    Carsten

    Da wir gerade erst einen ähnlichen Fall hier hatten (siehe hier) hatte ich mir auch dieses Tool mal runtergeladen und getestet. Hat nicht ein Dokument "gerettet". Hat nichtmal ansatzweise was gemacht.


    Meines Erachtens ist das ein reines Dokument-Kopier-Tool, sobald eine DB wirklich im Eimer ist wird das nicht gehen.


    Aber das kann man ja testen bevor man da bezahlt. Und sollte es doch as taugen kannst du es gern hier berichten.


    Abgesehen davon liegt der Fall hier doch scheinbar etwas anders, die DB an sich ist ja wohl nicht kaputt im Sinne von Fehlermeldungen etc.


    Für mich sieht es eher nach Löschungen aufgrund von Reparaturversuchen aus. Dann hast du schlechte Karten. Ganz schlechte. Genaugenommen Null. Da Notes die Daten nicht einfach nur zum Löschen markiert sondern aus Sicherheitsgründen ausradiert und mehrfach überschreibt. Ist ein Feature, was Leute davon abhalten soll das zu tun worüber wir grad reden. Gelöschte Daten zurückholen.


    Die Frage ist, wann und wie versucht wurde zu reparieren. Und, wie Ralf im Posting vor mir schrieb, die Anzahl der Deletion Stubs wäre interessant, wobei sicher nicht so 100%ig aussagekräftig, da ein Fixup gar keine erzeugt. Daher die Frage was jetzt im einzelnen unternommen wurde, wo die DB in der ganzen Zeit stand (Server oder lokal) und und und.


    Ein Design Replace löscht keine Dokumente - es überschreibt höchste die Speicherbereiche wo mal welche standen...


    Der einzige Reparatur-Versuch bzw. Servertask der wirklich Dokumente ohne Vorwarnung selbständig löscht ist Fixup. Wenn er ohne Parameter läuft. Er schreibts aber wenigstens hinterher aus, es ist im Log also nachvollziehbar.


    (Deshalb verstehe ich übrigens Admins nicht, die Fixup einmal die Woche ohne Zusatz-Schalter per Programmdokument laufen lassen)


    Carsten

    Es gibt sogar eine ganze Menge Besonderheiten, u.a.:


    - bessere Performance als bei DB's (durch komplette Umgehung der Domino-Engine)
    - Zugriffsschutz ist anders als bei Datenbanken geregelt (aber kann eingerichtet werden)
    - Files nicht per Browser/Notes editierbar


    Den FTP-Zugriff halte ich übrigens für eine saudumme Idee, mal so nebenbei. Wer weiß, was da noch alles über die Leitung wandert, vielleicht die Maildatenbank des Chefs? Die Server-ID? Könnte man ja vielleicht brauchen...


    Carsten

    Wenn du nicht schreibst was genau dein Problem ist kommen natürlich falsche Hinweise. In deinem ersten Post stand nur, du hast ein Problem damit. Aber nicht wie das Ergebnis deiner Meinung nach genau aussehen soll.


    Jetzt hast du zwar schon etwas mehr geschrieben aber m.E. auch wieder etwas vergessen, nämlich wann jetzt genau bei dir die falsche Anzeige passiert.


    Wenn ich eine Mail schreibe, egal wie die Hotspot-Anzeige eingestellt wurde, wird nie eine Adresse automatisch umgewandelt.


    Erst wenn ich hinterher die Mail nochmal zum Anschauen öffne zeigt mir (je nach Einstellung) mein Client einen Link an der Stelle. Aber das ist ein reines Anzeigefeature des Clients, versendet hat er trotzdem Plain-Text.


    Gleiches gilt übrigens auch für andere Mailprogramme, die gerne aus URL's einen Link generieren, obwohl da gar keiner ist.


    Wenn bei dir ein mehrzeiliger Link aus deiner Signatur heraus angezeigt wird tippe ich eher darauf, dass mit der Signatur etwas nicht stimmt. Könnte es sich um eine eingebundene HTML-Signatur handeln oder ist die als reiner Plain-Text in den Vorgaben hinterlegt?


    Hast du schon einmal probiert, die Signatur rauszulöschen und manuell einzutippen ob sich dann etwas ändert?


    Hast du schonmal versucht, die Signatur aus den Vorgaben zu löschen und dort neu reinzuschreiben? Und das bitte nicht per Copy & Paste.


    Carsten

    Da es sich scheinbar um eine reine Web-Ansicht handelt noch eine Anmerkung:


    Für den Browser kann man sowas sehr wohl machen, allerdings nicht mit einem @DbLookup in der Spalte.


    Wenn die View eine reine HTML-View ist, dann kann man z.B. die IMG-Tags beliebig erzeugen und so auch aus anderen Views/Dokumenten zur Laufzeit im Browser noch Dinge nachladen lassen. Lediglich im Designer bzw. Notes-Client wirds reiner HTML-Quellcode bleiben.


    Carsten

    Ich hatte schon häufiger mit angeblichen "sich selbst vervielfältigenden" Mails zu tun. Ursache waren bisher:


    - ein "spinnendes" Mailrelay (eher selten der Fall),


    - mail.box als Replik im Cluster angelegt (auf die Idee muss man erstmal kommen),


    - Verteiler-Gruppenname = Domänenname (ganz böse Geschichte),


    - externe Mailadressen in der Form: meier, fritz <x@y.de>
    (wem es nicht auffällt: es fehlen Anführungszeichen um den Namen, dadurch wird das zu 2 Adressen statt einer)


    - dito nochmal, aber einer der Namen wieder mit dem einer Gruppe identisch


    - dito nochmal, diesmal aber die Gruppe verschachtelt angelegt und in der zweiten Ebene eine der vorherigen nochmal eingetragen


    Unter Strich tippe ich darauf, dass (mindestens) einer der Einträge Blödsinn ist. Einfach mal kontrollieren, wer zuletzt an der Gruppe dran war und was der genau geändert hat.


    Carsten

    taurec: Das ID-File ist nur zur Hälfte fertig (noch keine Zertifikate enthalten) - deswegen ja die Warnung mit dem Abbruch.


    Ich kenne diesen Fehler eigentlich nur im Zusammenhang mit einem nicht aktivierten oder nicht freigeschalteten CA.


    Mach doch bitte mal an der Konsole tell ca status und schaue nach, ob wirklich bei allen angezeigten Zertifizierern der Status auf Active: Yes steht.


    Im Zweifelsfalle sollte immer helfen: CA beenden, neu starten und mit tell ca status kontrollieren.


    Anschließend noch ein te adminp proc all sollte auch "Hänger" wieder beleben.


    Carsten