Showing posts with label Admin. Show all posts
Showing posts with label Admin. Show all posts

Thursday, August 8, 2013

Force the Notes client to refresh policies from the server

One of the best Admin features of the Domino Notes eco system are the Policies. With Domino policies you can control many aspects of the configuration of your notes clients in your environment. You can prevent your users from accidentally change configuration settings to values which will not work in your environment, or you can enforce security settings in the client to match your security policies in your company. So Domino Policies are really very important part of a successful Notes client deployment. If you need information what you can do and how to implement policies properly you can find many good advice in the "Using IBM Lotus Domino 8.5 Policies to Manage Your Clients" from Darren Duke.

But one major annoyance of the implementation of Domino policies is that it is very unpredictable when the notes client will refresh his policies from the server. Especially in test environments you restart your clients often only to see that your changes on Policies are still not pushed to your test client. Or something in your client goes wrong and policies will not be updated anymore. So i have created a small lotus script program to delete the local cache of the policies and refresh all policies from the server which you can put in the click event of a button.


Sub Click(Source As Button)
 Dim s As New NotesSession
 Call s.SetEnvironmentVar("PoliciesLocalViewModTime","",True)
 Forall db In s.AddressBooks
  Call db.open("", "") ' Must open database
  'Refresh Policies View on Server  
  If db.IsPublicAddressBook Then
   Set view=db.getView("($Policies)")
   view.refresh
   Set view=db.getView("($PoliciesExt)")
   If Not view Is Nothing Then
     view.refresh
   End If
  End If
  'Remove all policydocuments on the local client  
  If db.isPrivateAddressBook And db.server="" Then
   Set view=db.getView("($Policies)")
   Set doc=view.getFirstDocument
   view.autoupdate=False
   While Not doc Is Nothing
    Set tempdoc=doc    
    Set doc=view.getNextDocument(doc)
    tempdoc.remove(True)
   Wend
   view.autoupdate=True
   view.refresh
  End If
 End Forall
 'Run Dynamic client configuration to repopulate the local policy view 
 Set s=Nothing 
 result=Shell ("ndyncfg.exe ""1""",1)
End Sub
I have tried this code in our Domino 8.5.3 environment. If you have any problems please leave a comment.

Have a look at my other postings relating policies

Tuesday, April 23, 2013

Notes Domino 9 group 1 language versions are availabe now.

The first national language versions (Group 1) for example Catalan, Italian and German of Notes Domino 9 are available in passport advantage now.

So there is no more reason to postpone your upgrade to the greatest version of Notes/Domino.

The GA2 languages like Finnish, Norwegian, Swedish, Danish, Dutch will be availabe on 04.06 and the remaining languages like Greek, Slovenian, Thai, Turkish, Russian, IB Portuguese, Hungarian, Slovakian, Hebrew, Kazakh, Polish, Czech should be available on 23.07



Saturday, April 20, 2013

Improve File enumeration performance in the admin client

Since Domino 8.5 there have been many files in the data/domino directory on the server. So every time you refresh the files tab you have to wait while the server scans the whole data/domino directory. Although some contents like domino/js is not scanned this can take some time. Fortunatly there is a notes.ini setting which disable file scans in the domino directory.

To enable this feature you cann add ADMIN_CLIENT_SKIP_DOMINO=1 to the notes.ini of the server or you can set this value with SET CONFIGURATION ADMIN_CLIENT_SKIP_DOMINO=1 on the console.

I have tried this on my development server. Without ADMIN_CLIENT_SKIP_DOMINO=1 the file enumeration runs 4 seconds and with this setting in the notes.ini of the server the enumeration has finished immediatly after pressing the F9 key.


Sunday, April 14, 2013

Improve your Domino Server Performance on the System i

On Windows it is pretty clear that Domino Servers only perform well, when the admin regulary defragment the file system where the Domino data is stored. Unfortunatly many System i admins do not know that fragmentation of Domino databases is a problem on their system too. So they do not get the best performance possible and with every year of using the server the problem of framgentation gets bigger and bigger.

The defragmentation of the disks in a System i Server can be done with the command STRDSKRGZ.

So login into your System i with a 5250 Terminal client and execute the STRDSKRGZ command:

Thursday, April 4, 2013

Cool tool to analyze TCP Port activity

Windows has a command line tool to monitor which ports are used by which process called "netstat". But this tool is not very easy to use and on some operations very slow. But fortunatetly the genius guys from Sysinternals provide the great tool TCPView for this task. With this tool you see a overview of all used tcp ports and their status. So for example you can easily find out which process listens on which ports. You can even kill processes to free the ports in this tool.


Sunday, March 31, 2013

Configure Domino to ignore whitespace during quota check.

When you have set quotas for your mail files on a server with transaction logging enabled (I really hope everyone has logging enabled.) your users have the problem, that after they have deleted some mails there is no possibility to remove  the whitespace from the database, because the option to compact is not available for databases which are transaction log enabled*. So many admins run "compact -c" regulary on all mail files to remove whitespace. But from a performance point of view copy style compacts are a really bad idea (I will provide more infos on this in a future blog post).

So the much better way to solve the problem is to change the "quota enforcement" setting on the "Transaction Logging" tab in your server document from the default "Check file size when extending the file" to "Check space used in file when adding a note". With this setting the white space is ignored on quota calculation and your users are happy again.


* The compact for user is disabled, because a copy style compact will generate a new DBIID and a change of the DBIID of a database make a new full backup of this database necessary.  

Friday, March 29, 2013

Using contig.exe to analyze and remove fragmentation

The split of files in fragments can have serious impact on the performance of the Notes client or the Domino server. So it is very important to control the framgentation of the installation directory of Notes Domino and the data directories. The on board defrag tool of Windows is often not much help, because it can only defrag the whole harddisk and it cannot generate a report to show which file are fragmented and which are not. But Microsoft provides a tool which can analyze single files, directories or whole directory trees. It is called contig.exe. Contig.exe can be downloaded from http://technet.microsoft.com/en-us/sysinternals/bb897428.aspx.

The download contains one file (contig.exe) which should be extracted to a directory contained in the Windows path for example "c:\windows\system32". To analyze the fragmentation of the notesinstall directory you can use the following command line:

contig -a -v -s "c:\Program Files (x86)\ibm\Notes" > c:\temp\analyze.txt

-a only make an anaylze and do not defrag the files.
-v Verbose
-s Recursive subdirectorys
">c:\temp\anaylze.txt" write the report in the specified file.

The report contains for every file a entry with the count of fragments and a summary at the end:


....
Processing c:\Program Files (x86)\ibm\Notes\nlnotes.exe:
Scanning file...

[Cluster] Runlength
  [0] 247

  [2140] 150
  [3400] 250 
File size: 2759272 bytes
c:\Program Files (x86)\ibm\Notes\nlnotes.exe is in 3 fragments
------------------------
Summary:
     Number of files processed   : 22382
     Average fragmentation       : 10 frags/file


When you want to really defrag this files then remove the -a option and run the command again.

Contig.exe allows the use of wildcards to select files for defragmentation. So when you want to defrag all your nsf's in the Domino Data directory you can use:

contig -s "c:\Program Files (x86)\ibm\Domino\data\*.nsf"

Tuesday, March 5, 2013

Messen der Netzwerklatenz bei TCP/IP Verbindungen

Bei Client Server Anwendungen wie z.B. Lotus Notes spielt nicht nur die Bandbreite sondern auch die Netzwerklatenz der Verbindung eine große Rolle. Unter Netzwerklatenz versteht man die Zeit die es braucht bis auf eine Anfrage eine Antwort vom Server zurückkommt. Wenn man weiß, dass Lotus Notes beim Öffnen eines Dokuments sämtliche Abfragen, wie DBLookups und ähnliches synchron hintereinander durchführt, spielt es schon eine große Rolle, ob jeder Netzwerkzugriff unter 1 Millisekunde oder eher im 100 Millisekundenbereich dauert. Dazu ein Beispiel: Das Öffnen von einem Notes Dokument benötigt 15 NRPC Aufrufe. Wenn nun die Netzwerklatenz 1 ms beträgt, dann ist der Overhead durch das Netzwerk nur 15 Millisekunden. Wenn man aber über einen WAN Link mit langsamer Latenz (ca. 100 ms)  arbeitet, dann ist der Overhead durch die Netzwerklatenz schon 1,5 Sekunden. Damit sollte klar sein, warum Notes ohne lokalen Repliken so bescheiden über WAN Links funktioniert.

Wie kann man nun aber die Netzwerklatenz messen. Eine ganz rudimentäre Möglichkeit bietet der Befehl "PING" den alle Betriebssysteme bereits mitbringen. Aber ping hat den Nachteil, dass es erstens nur kleine ICMP Pakete zum Messen verschickt, die unter Umständen wesentlich besser performen als große Datenpakete wie sie in Anwendungen normalerweise auftreten. Weiters kann es die Latenz nur mit einer Auflösung von 1 ms angeben.

Doch es gibt ein Ping Tool von Microsoft (Sysinternals), dass alle diese Probleme lösen kann.

Nach dem Entpacken des Download kopiert man den "PSPING.EXE" Befehl einmal auf den Client und einmal auf den Server zwischen denen man die Latenz messen will. Danach startet man auf dem Server PSPING im Sever Modus.

psping -s x.x.x.x:y

x.x.x.x ist dabei die Adresse der Netzwerkschnittstelle im Server z.B. 10.0.0.15.
y ist die Portnummer auf der PSPING auf eingehende Anfragen antworten soll.

Natürlich muss man auf dem Server auch noch den gewählten Port auf der  Windows Firewall freigeben, oder die Windows Firewall während der Messung deaktivieren.

Auf dem Client kann man dann die Messung mit folgenden Befehl starten.

psping -l 4096 -n 500 -h 20 x.x.x.x:y


Der Befehl sendet 500 4k große Datenpakete an den Server x.x.x.x:y und misst die Latenzzeit. Nach Abschluss der Messung gibt er dann die geringste, die durchschnittliche und die maximale Latenz aus. Weiters erstellt er eine Verteilung der einzelnen Messungen. Die Anzahl der Verteilungen wird über den Paramter -h gesteuert.

Hier ein Beispiel für eine schnelle LAN Verbindung:

TCP latency test connecting to x.x.x.x:y: Connected
505 iterations (warmup 5) sending 4096 bytes latency test: 100%

TCP roundtrip latency statistics (post warmup):
  Sent = 500, Size = 4096, Total Bytes: 2048000,
  Minimum = 0.26ms, Maxiumum = 7.41ms, Average = 0.34ms

Latency Count
0.26    496
0.63    2
1.01    0
1.39    1
1.76    0
2.14    0
2.51    0
2.89    0
3.27    0
3.64    0
4.02    0
4.40    0
4.77    0
5.15    0
5.52    0
5.90    0
6.28    0
6.65    0
7.03    1
7.41    0


 und das selbe über ein WAN Link:
 
TCP latency test connecting to x.x.x.x:y: Connected
505 iterations (warmup 5) sending 4096 bytes latency test: 100%

TCP roundtrip latency statistics (post warmup):
  Sent = 500, Size = 4096, Total Bytes: 2048000,
  Minimum = 42.39ms, Maxiumum = 445.09ms, Average = 50.24ms

Latency Count
42.39   457
63.59   37
84.78   2
105.98  0
127.17  0
148.36  0
169.56  0
190.75  0
211.95  0
233.14  0
254.34  0
275.53  0
296.73  2
317.92  0
339.12  0
360.31  0
381.51  0
402.70  1
423.90  1
445.09  0


Vor allem wenn man bei seinem WAN Link sehr viele Ausreißer nach oben hat, sollte man unbedingt an seinem Netzwerk arbeiten. z.B. Quality of Service einführen. Nach den Tuningmassnahmen kann man dann wieder bequem mit PSPING prüfen, ob die Massnahmen auch etwas gebracht haben.







Monday, February 25, 2013

Server 9 Probleme bei compact -replica

In einem meiner letzten Postings habe ich über den Befehl Load compact -replica geschrieben. Dabei ist mir jetzt noch ein Problem aufgefallen. Wenn man während der Ausführung des Befehls andere Befehle auf der Serverkonsole eingeben will, dann werden die "drop database" Befehle die der Compact Task zum Beenden der Verbindung ausgibt mit den Befehlen die man selber eingibt vermischt. Diese funktionieren dann natürlich nicht. Also aufpassen, dass man während eine compact -replica keine Befehle am Server eingibt.


Ich habe das Problem auch im Beta Forum gemeldet.

Sunday, February 24, 2013

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

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

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.

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



Monday, February 4, 2013

Lösen von Notes Performanceproblemen mit dem NRPC Parser

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.

Update 11.11.2013 Wie in den Kommentaren angeführt hat Andrew Magerman eine neue Version des NRPC Parser veröffentlicht, die jetzt auch mit aktuellen Version von Notes korrekt funktioniert. Die Angabe von Debug_ThreadID=0 die man in älteren Versionen des NRPC Parsers benötigte ist daher nicht mehr notwendig. Vielen Dank für dieses Update und das fantastische Tool.











Monday, January 14, 2013

Notes 9 Verbesserung beim e-mail typeahead

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.


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

Sunday, January 6, 2013

Neues Redbook zum Thema IBM Traveler Deployment

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.

Friday, January 4, 2013

Neues Feature Database Maintenance in Domino 9

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.


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

Thursday, January 3, 2013

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

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 ;-)

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

Friday, October 19, 2012

Selektives Auto Deployment von Widgets

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.

Thursday, August 23, 2012

Eclipse Befehlszeilenparameter an notes.exe übergeben.

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.

Wednesday, August 22, 2012

Automatisches Upgrade der ODS am Client

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
 

Thursday, May 3, 2012

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

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

ad