Posts Tagged: ‘admin’

Wichtige Gruppen sind im Domino Administrator 9 vor dem Löschen geschützt.

24. Februar 2013 Posted by Ralf Petter

Im Domino Administrator 9 wurde eine neue Funktion hinzugefügt, die bestimmte systemrelevante Gruppen vor der unabsichtlichen Löschung schützt. Dies ist wirklich eine gute Neuerung, da eine versehentlich gelöschte LocalDomainServers Gruppe eine mittlere Katastrophe auslösen kann. Der neue Schutz betrifft aber nur das UI das Administrators, denn über API's können die Gruppen nach wie vor gelöscht werden.


Dieses Feature wird über das Directory Profile konfiguriert. Dort kann man für eine Gruppe den Schutz entfernen, oder für eigene sehr wichtige Gruppen den Löschschutz aktivieren.



Für weitere Infos zur neuen Version schauen Sie auch auf meine Übersicht über alle Postings zum Thema Notes/Domino 9

Domino 9 neue Optionen beim Datenbank compact

24. Februar 2013 Posted by Ralf Petter

In der Version 9 wurde der compact Task um einige sehr praktische Features erweitert. Leider sind die Features in der Admin Hilfe noch nicht dokumentiert. Deshalb habe ich hier soweit bekannt die wichtigsten Infos zusammengetragen.

Compact mit mehreren Threads durchführen.

Mein absolutes Lieblingsfeature. Heutige Server mit vielen Prozessorcores und vielen Platten haben das Problem, dass bei einem Compact über alle Datenbanken Compact zwar ewig läuft, der Server jedoch nur minimal ausgelastet ist. Man hat sich dann mit .ind Files beholfen um mehr als einen Compact Task laufen lassen zu können. Die Pflege der .ind Files hat aber einen relativ großen Aufwand bedeutet und immer wieder wurden Datenbanken nicht in die .ind Files eingetragen und deshalb beim Compact nicht komprimiert. Jetzt kann man jeden Compact Befehl die Option "-# X" anhängen und es werden automatisch X Threads erzeugt die die Komprimierung ausführen. Die maximale Anzahl von Threads ist 20.

Load compact -c -#=5 z.B. führt ein copy style compact mit 5 gleichzeitig laufenden Thread durch.

Schade das ich kein Admin mehr bin. Der nächste Upgrade der ODS wird soviel einfacher und schneller sein. Ebenfalls eine große Erleichterung bei der Einführung von DAOS, da dann auch gleichzeitig in mehreren Threads Anhänge aus den Datenbanken extrahiert werden können.

Compact mit Hilfe einer neuen Replik.

In einer sehr großen Notesdatenbank kann es passieren, dass die Note ID Tabelle  zu groß, bzw. extrem fragmentiert wird. Es kann dann zu der Fehlermeldung "Unable to extend an ID table - insufficient memory" kommen. Diese ID Table wird nur beim erstellen einer neuen Replik reorganisiert. Dieses erstellen einer neuen Replik kann nun mit dem Compact Task und der neuen Option "-REPLICA" ausgeführt werden. Dabei wird ähnlich wie beim copy style compact eine neue Replik angelegt, die mit der Originaldatenbank synchronisiert wird. Dann werden alle Verbindungen zu der Original Datenbank gedroped und auf .orig  sowie die neue auf den alten Namen umbenannt. Danach werden nocheinmal etwaige Änderungen von der orig in die neue Replik synchroniesiert. Falls die Umbennenung nicht klappt, da die Datenbank trotz drop noch immer in Verwendung ist, wird ein Trigger gesetzt, dass die Umbennennung beim Server Neustart gemacht wird. Um die "-REPLICA" Funktion zu verwenden, muss das ODS auf der neuesten Version sein. Sonst bekommt man die Fehlermeldung, dass die ODS Version zu alt ist. Zusätzlich zu "-REPLICA" kann man noch mit "-IDS_FULL=X" angeben, ab welchen Prozentsatz x eine Bereinigung der ID Tabelle mit Replica durchgeführt werden soll. Mit "-REN_WAIT=X" kann angegeben werden, wie viele Minuten Domino versuchen soll die Datenbank nach dem Erstellen der Replica umzubenennen, damit ein Serverneuststart vermieden werden kann. Falls die Datenbank weiter in Verwendung ist, kann man mit der Option "-RESTART" einen automatischen Serverneustart auslösen. Beim Serverneustart wird dann die neue Replik in die alte umbenannt. Das ist praktisch bei Systemdatenbanken die permanent in Verwendung sind.

Load compact -REPLICA -IDS_FULL=50 z.B. führt ein compact mithilfe einer Replik zum bereinigen der ID-Table durch, wenn die IT-Table bereits zu mehr als 50 % voll ist.

In der Public Beta hat bei mir der Parameter "-IDS_FULL" nicht funktioniert. Er hat den Compact immer gemacht, obwohl ich es an einer ganz kleinen Datenbank probiert habe. Ich habe dieses Problem im Betaforum gemeldet.

Compact upgrade

Ebenfalls neu ist die Option -upgrade die laut Hilfe die DB Classes upgraden kann. Leider konnte ich noch nicht herausbekommen was das bedeutet. Falls da jemand Infos hat bitte um einen kurzen Kommentar.



Lösen von Notes Performanceproblemen mit dem NRPC Parser

4. Februar 2013 Posted by Ralf Petter

Der Notes Client besitzt eine eingebaute Tracefunktion um die NRPC (Notes Remote Procedure Call) Kommunikation zwischen einem Client und dem Server zu tracen. Leider ist das Log, dass diese Tracefunktionalität zur Verfügung stellt, etwas unübersichtlich und kryptisch. Jedoch gibt es auf OpenNTF eine Datenbank mit der man die Analyse vereinfachen kann.

Hier die Schritte um eine Performanceanalyse mit der Datenbank durchzuführen:

Downloaden Sie den NRPC Parser von OpenNTF und signieren Sie die Datenbank mit einer Developer id, damit Sie keine Probleme mit der ECL haben.

Öffnen Sie die Parserdatenbank und klicken Sie auf die

 Schaltfläche. Damit werden in Ihrer notes.ini die Einträge
  • Client_Clock=1
  • Debug_Console=1
  • Debug_Outfile=c:\Program Files (x86)\IBM\Lotus\Notes\Data\RPC.txt
  • CONSOLE_LOG_ENABLED=1
gesetzt. Diese bewirken, dass in die Datei RPC.txt  nach dem Neustart des Clients jeder RPC protokolliert wird.

Jetzt muss der Notesclient neu gestart werden und man kann die Funktion in Notes durchführen mit der man ein Performanceproblem hat. z.B. eine Datenbank öffnen, oder ein Dokument aufmachen.

Danach sollte man die Notes.ini Einträge mit

wieder deaktivieren und den Notesclient neu starten.

Danach kann man mit der Schaltfläche
die erstellte Datei analysieren lassen und bekommt dann für jeden Aufruf einer Funktion auf dem Server eine Zeile in der genau  steht was gemacht wurde, wie lange dieser Aufruf gedauert hat und wieviele Daten vom Server gesendet und empfangen wurden.


Aufwendige Operationen sind rot markiert. Die Spalte Sent gibt die Datenmenge in Bytes an die der Server gesendet hat. Die Spalte Rec'd gibt an, wieviel Daten der Server vom Client empfangen hat.

Achtung Bei der Verwendung neuerer Clientversionen ist standardmäßig die Ausgabe der ThreadID in das Consolelog aktiviert. Wenn diese aktiviert ist, funktioniert die Auswertung des NRPC Parser nicht. Deshalb bei Verwendung des NRPC Parsers mit dem notes.ini Eintrag DEBUG_THREADID=0 die Ausgabe der Thread-ID deaktivieren.









Notes 9 Verbesserung beim e-mail typeahead

14. Januar 2013 Posted by Ralf Petter

Das Typeahead bei e-mail Adressfeldern ist eine sehr praktische Sache, aber seit Einführung dieser Funktion stört mich die Tatsache, dass immer zuerst die lokalen Adressbücher vor den Serveradressbüchern durchsucht werden, obwohl davon auszugehen ist, dass die Serveradressbücher im Normalfall die viel akuraten Informationen enthalten. Mit Notes 9 wurde nun eine neue notes.ini Variable (TypeaheadShowServerFirst=1) eingeführt mit der man dieses Verhalten umkehren kann.

Ohne TypeaheadShowServerFirst=1



Mit TypeaheadShowServerFirst=1

Die Notes.ini Variable kann natürlich auch über eine Desktoppolicy gesetzt werden. Leider gibt es jedoch keine Benutzerschnittstelle für diese meiner Meinung nach extrem wichtige Einstellung.

Laut Doku in der Version 9 soll diese Variable auch in 8.5.3 funktionieren. In meinem 8.5.3 FP1 Client hat die Variable jedoch keine Funktion.


Übersicht Beiträge zu Notes 9 Beta:
  
Notes 9 Volltextsuche kleine Änderung große Usability Verbesserung
Notes 9 Suche in Ansichten wurde vereinheitlicht und verbessert. 
Neues Feature Database Maintenance in Domino 9
Coole neue notes.ini Variable in Domino 9 für Copy style compact
Notes 9 SE erste Eindrücke aus Sicht des Plugin Entwicklers 
Erste Eindrücke vom Browserplugin und iNotes 
Notes 9 als Anwender; erster Blick Hui, zweiter Blick leider Pfui.

Neues Redbook zum Thema IBM Traveler Deployment

6. Januar 2013 Posted by Ralf Petter

Ein neues Redbook "Lotus Notes Traveler hints and tips for a successful deployment"wurde vom IBM Redbook Team publiziert. Es enthält jetzt nicht wirklich viel neues für einen erfahrenen Domino Admin, aber trotzdem ist es gut an einem Ort die Best Practice Empfehlungen für den Traveler zu haben.

Neues Feature Database Maintenance in Domino 9

4. Januar 2013 Posted by Ralf Petter

In Domino 9 Social Edition gibt es ein neues Feature, dass die Datenbankwartung erleichtern soll. Bisher musste man dafür mehrere verschiedene Tasks (Updall, compact, fixup) über Programmdokumente aufrufen. Dies alles sollte nun durch den Datenbank Maintenance Task zusammgengefasst werden. Der Datenbank Maintenance Task bietet dabei den Vorteil, dass man die Maintenancetasks auf mehrere gleichzeitig laufende Threads aufsplitten kann. Das heißt, wenn man über entsprechend leistungsfähige Hardware verfüge, kann der DBMT Task mehrere Compact oder Updall gleichzeitig ausführen. Dies war bisher nur umständlich über .ind Dateien möglich.

Man kann den DBMT Task entweder beim Serverstart über ein Programmdokument aufrufen und ihm als Parameter mitgeben, dass er zu bestimmten Zeiten arbeiten soll, oder man ruft den DBMT Task über ein Programmdokument regelmäßig auf, wobei man dann eine Stopzeit mitgeben kann.

Ein Beispielprogrammdokument für den Aufruf beim Dominoserverstart:


Die Parameter bedeuten, dass 3 Compacts und Updalls gleichzeitig laufen dürfen. Die Datenbankmaintenance wird zwischen 2:00 und 7:00 morgens durchgeführt. Compact soll aber nur alle 3 Tage gemacht werden. Der "-force 1" Parameter bedeutet, dass Fixup am Sonntag (1. Tag der Woche) ausgeführt wird. Der DBMT bleibt in diesem Fall immer aktiv, arbeitet aber nur in den angegebenen Zeiten.

Beispiel für die regelmäßige einmalige Ausführung von DBMT mit einer Stoppzeit mittels eines Programmdokuments.


Hier wird der DBMT Task jeden Tag um 2:00 in der Früh durch das Programmdokument mit 3 Compact und 3 UpdateallThreads gestartet. Spätestens um 6:00  in der Früh wird der DBMT abgebrochen bis zum nächsten Start durch das Programmdokument.

Bei beiden Varianten wird ein abgebrochener Compact beim nächsten Durchlauf an der Abbruchstelle fortgesetzt. Es werden somit also nach mehreren Durchläufen auch wenn die Zeit nicht ausreicht alle Datenbanken mittels copy style compact komprimiert.

Achtung! Bei Verwendung des DBMT Tasks sollte man in der notes.ini des Servers den UPDALL Task entfernen, da er sonst doppelt läuft.

Mit "show stats dbmt" kann man sich diverse Informationen über die Ergebnisse des "DBMT" Task anzeigen:




Es gibt noch ein paar zusätzliche Parameter und notes.ini Einträge die dbmt betreffen, die man in der Doku nachlesen kann.

Mein Fazit: Für alle die Datenbankquotas auf Ihren Maildatenbanken verwenden, ist der DBMT vor allem im Zusammenspiel mit der neuen notes.ini Variable "MailFileDisableCompactAbort" ein riesen Fortschritt, weil man damit die Verkleinerung der mail Datenbanken sehr gut automatisieren kann und durch die Verwendung von mehreren Threads die Compacts auch sehr gut performen. Für alle die keine Datenbankquotas verwenden, wäre meiner Meinung nach ein Parameter für die Auswahl des Compact styles sinnvoll gewesen. Da copy style compacts die Datenbanken im Filesystem extrem fragementieren und ohne quotas nicht so oft notwendig sind.

Wünschenswert wäre es wenn der compact Task und auch der Fixup Task eine Option für mehrere Thread bekommen würden.



 




Coole neue notes.ini Variable in Domino 9 für Copy style compact

3. Januar 2013 Posted by Ralf Petter

Bisher hatte man bei einem copy style compact von mail Datenbanken oft das Problem, dass der Copy style compact abgebrochen wurde, weil der Router eine e-mail in die zu komprimierende mail Datenbank zustellt. Deshalb war es oft notwendig, dass man vor der Datenbankmaintenance den Router Task stoppen musste, damit nicht Datenbanken beim Copystyle Compact übergangen werden. Mit Domino 9 wurde eine neue INI Variable "MailFileDisableCompactAbort=1" eingeführt, die genau dieses Problem löst. Sobald man die INI Variable am Server eingetragen hat, liefert der Router keine e-mails mehr an mail Datenbanken aus, für die gerade ein Compact läuft. Sobald der Compact fertig ist, werden die wartenden mails zugestellt.

Das ist einmal eine wirklich gute Neuerung obwohl erst die Praxis zeigen muss, ob es so gut funktioniert wie in der Doku versprochen ;-)

Selektives Auto Deployment von Widgets

19. Oktober 2012 Posted by Ralf Petter

Das Verpacken von Eclipse Features und Plugins in Widget ist wirklich eine praktische Sache und über den Widgetkatalog kann man diese Widgets auch gut anderen Benutzern zur Verfügung stellen. Weniger elegant sind aber die Möglichkeiten mit denen man die Installation von Widgets automatisieren kann. Standardmäßig kann man einem Widget mehrere Kategorien zuweisen. Man kann dann bei einem Benutzer eine oder mehrere dieser Kategorien in den Benutzervorgaben einstellen (oder per Desktop Policy setzen) und es werden alle Widgets dieser Kategorien bei dem Benutzer installiert und im Bedarfsfall aktualisiert.

So weit so gut, aber bei intensiverer Verwendung dieser Technik zeigen sich doch ein paar Schwachstellen:

  • Man kann zwar über Desktoppolicy festlegen welche Kategorien von Widgets bei einem Benutzer installiert werden sollen, ich kann aber nicht verhindern, dass sich ein Benutzer andere Widgetkategorien selber nachinstalliert. Das ist natürlich problematisch, wenn man Widgets hat die nicht jeder Benutzer installieren können soll.
  • Wenn man mehr als eine handvoll Widgets und Gruppen von Personen die unterschiedliche Arten von Widgets benötigen hat dann braucht man sehr viele verschiedene Desktoppolicy Dokumente und das ganze wird schnell unübersichtlich.
  • Die zur Verfügungstellung von neueren Versionen von Widgets zum Testen ist schwer oder gar nicht möglich.

Da ich in meiner Umgebung mittlerweile von allen oben angeführten Problemen betroffen bin, habe ich eine Möglichkeit zur Lösung der Probleme gesucht die ich kurz erklären möchte.

Ich habe das Design des Widgetkatalogs dahingehend erweitert, dass ich ein Mehrfachwert Leserfeld zu der Widgetmaske hinzugefügt habe. Weiters habe ich das bereits bestehende berechnete Leser Feld in der Maske von "" auf "LocalDomainServers" geändert, damit es keine Probleme bei der Replizierung von Widgets zwischen den Servern gibt.


Nun habe ich die Kategorie aller Widgets auf eine Kategorie gesetzt die bei allen Benutzern installiert wird und kann aber über das Leserfeld ganz exakt steuern wer dieses Widget bekommen soll oder nicht. Natürlich lassen sich in dem Leserfeld auch wieder Gruppen eintragen.

2 Nachteile dieser Lösung:

  • Designänderungen von Systemdatenbanken bergen immer wieder das Risiko, dass es bei Updates zu Problemen kommt. 
  • Wenn man einen Benutzer aus dem Leserfeld entfernt, wird zwar das Widgetdokument aus seinem lokalen Widgetkatalog entfernt aber leider der Provisioningprozess nicht angestartet. Das heißt das Widget wird nicht sofort entfernt, sondern erst bei der nächsten Änderung eines Widgets das auf den Rechner des Benutzers repliziert wird. Ich löse das Problem in dem ich ein Dummywidget habe, dass ich bei einer Entfernung eines Benutzers neu speichere. Dann erkennt der Notesclient die Änderung und entfernt auch das verschwundene Widget aus dem Client.

Eclipse Befehlszeilenparameter an notes.exe übergeben.

23. August 2012 Posted by Ralf Petter

Eclipse als Basis für Lotus Notes ab der Version 8 bietet jede Menge praktischer Befehlszeilenparameter. Normalerweise kann man diese bei einer RCP Anwendung einfach hinter die ausführbare Datei anhängen.

z.B. "eclipse.exe -console" um die OSGI Console mit eclipse mitzustarten.

Bei Lotus Notes geht das nicht so einfach, da Notes eigene Befehlszeilenparameter wie z.B. den "-sa" Parameter verwendet. Es gibt aber Abhilfe, in dem man den  Parameter "-RPARAMS" + den eclipse RCP Befehlszeilenparameter voranstellt.

z.B. um die OSGI Console mit Notes mitzustarten kann man "notes.exe -RPARAMS -console" aufrufen.

Ein anderer praktischer Befehlszeilenparamter ist "-clean" Es weist Eclipse an nicht den Extension Registry Cache zu verwenden, sondern die Plugins neu einzulesen. Dies muss man z.B. machen, wenn man neue Plugins in die Verzeichnisstruktur von Lotus Notes einkopiert hat und diese beim start von Notes verwendet werden sollen.


Eine Übersicht über alle Befehlszeilenparameter die Eclipse und damit auch Lotus Notes unterstützt findet man in der Eclipse Doku.

Automatisches Upgrade der ODS am Client

22. August 2012 Posted by Ralf Petter

In jeder grösseren Notes/Domino Version wird die sogenannte ODS (On Disk Structure) verändert. Die ODS Version ist das Dateiformat in dem Notes/Domino die Daten der betreffenden Replik lokal speichert. Die ODS Version wird nicht repliziert. Das heißt eine Replik am Server kann eine andere ODS Version als der Client haben. Bei einem Upgrade auf eine neue Version wird die ODS Version am Server meistens mit einem copy style compact auf die aktuelle Version gehoben. Diese Änderungen wird aber dann nicht auf lokale Repliken übertragen.

Um auch die lokalen Repliken auf den neuesten Stand zu bringen, gibt es aber seit 8.5.2 den Notes.ini Parameter NSF_UpdateODS=1. Wenn dieser Parameter gesetzt ist, versucht Notes alle Datenbanken auf die neueste ODS Version zu konvertieren. Ein Teil der Datenbanken wird als Hintergrundtask konvertiert. Der Rest wird beim nächsten Starten des Client abgearbeitet. Ab Version 8 aufwärts muß man zusätzlich noch die Verwendung  der neuen ODS mit der Notes.ini Variable Create_R85_Databases=1 (oder für ODS 4.8 Create_R8_Databases=1) erlauben.

Der Parameter  NSF_UpdateODS=1 kann auch über eine Desktop Policy (Mail Tab->Alle lokalen NSF-Datenbanken auf die neueste ODS-Version aktualisieren) gesetzt werden.

 Für Details zu dieser neuen Funktion gibt es auch eine Technote der IBM
 

Lösung für Probleme mit belegten Zeiten in der busytime.nsf

3. Mai 2012 Posted by Ralf Petter

Ab und zu kann es in einer Dominoumgebung passieren, dass die belegten Zeiten einer Ressource oder Person nicht mehr stimmen. z.B. das ein Besprechungsraum zu einer bestimmten Zeit als belegt gekennzeichnet ist, obwohl gar keine Reservierung in der Ressource.nsf vorliegt. Ich habe zwar den Grund dafür noch nicht gefunden, dass Problem lässt sich aber mit folgenden Befehl auf der Serverkonsole beheben:

tell rnrmgr check Testroom/TestOrganisation

Testroom ist natürlich der hierachische Name des Raums oder der Person bei der es Probleme mit der belegten Zeit gibt.

In den Version <8.0 muss der Begriff rnrmgr durch "sched" ersetzen.

Für Details siehe die IBM Knowledgebase

Systems Engineer Groupware und Messaging gesucht

29. März 2012 Posted by Birgit Krüger

Die VR Kreditwerk AG bzw. ab 1.4.2012 die Schwäbisch Hall Kreditservice AG sucht einen "Systems Engineer Groupware und Messaging".