18.07.2014

Quick Tip: Get rid of those Scheduler messages each time the Domino server starts

Category: Quick-Tipp, IBM Domino, Administration, Entwicklung

Quick-TippIBM Domino
Chris Miller  is one of the best Domino administrators alive. He regularly writes for the SocialBiz user group and answers difficult questions about  Domino administration, like last week's From the SocialBiz Mailbox: Excluding Calendars from Mail-in Databases  


You all probably know those unnecessary "errors" the Scheduler writes each time, when it encounters a mail database, where it cannot find the database's owner in the Domino directory anymore.
SchedMgr: Error processing calendar profile document (NoteID: NT....) in database...:
Can't find $BusyName field on profile

SchedMgr: Error processing calendar profile document (NoteID: NT...) in database ...:
Cannot find user in Domino Directory


Perhaps, the user has left the company, doesn't use this mail database anymore or the database simply is a mail-in database.

The Scheduler task is important to validate and update freetime information about current users, but in the above cases, the mail database doesn't include important calendar information anymore. Thus it would be great to just tell the Schedule: "Please, ignore this database".

And Chris knows a solution: There is a small program "NoCal" to do this magic little trick.

But it has some limitations:
  • It's really, really old: Release: R5, Platform: Windows 95/98/NT, Date Posted: 04.05.2001
  • it has to be run from the command line and
  • it just can switch off the "Has Calendar" database option.
I felt this itching again: Can't I do better than this?  
  • Something small and transportable like an agent, you can easily put in your mail(-in) database template or any database, you want,
  • it should be easy to switch on and off this option and
  • it can be run comfortably in the Notes client.
 And I did it with through investigations, lot of tries (and failures) and some C API calls:

The basic agent looks like this:

Sub Initialize
        '/**
        ' * gets current database's options, prints "Has Calendar" option,
        ' * toggles it and prints new status
        ' *
        ' * @author        Thomas Bahn/assono <tbahn@assono.de>
        ' * @version        2014-07-17
        ' */                

        Dim session As NotesSession
        Dim returnCode As Integer
        Dim hDB As Long
        Dim retDbOptions As Long
       
        On Error GoTo miniErrorHandler

        Set session = New NotesSession
       
        ' open the current database
        returnCode = NSFDbOpen(session.CurrentDatabase.FilePath, hDB)
        Call ShowCAPIErrorIfAnyAndEnd(returnCode, "NSFDbOpen", hDB)

        ' get current options
        returnCode = NSFDbGetOptions(hDB, retDbOptions)
        Call ShowCAPIErrorIfAnyAndEnd(returnCode, "NSFDbGetOptions", hDB)
       
        ' print current status
        If retDbOptions And  DBOPTION_HAS_CALENDAR Then
                Print "Database has calendar"
        Else
                Print "Database doesn't have calendar"
        End If
       
        ' toggle option
        returnCode = NSFDbSetOptions(hDB, _
                        retDbOptions Xor DBOPTION_HAS_CALENDAR, _
                        DBOPTION_HAS_CALENDAR)
        Call ShowCAPIErrorIfAnyAndEnd(returnCode, "NSFDbSetOptions", hDB)
       
        ' get current options
        returnCode = NSFDbGetOptions(hDB, retDbOptions)
        Call ShowCAPIErrorIfAnyAndEnd(returnCode, "NSFDbGetOptions", hDB)
       
        ' print new status
        If retDbOptions And  DBOPTION_HAS_CALENDAR Then
                Print "Database now has calendar"
        Else
                Print "Database now doesn't have calendar"
        End If
       
        ' close the database
        returnCode = NSFDbClose(hDB)
        Exit Sub
       
miniErrorHandler:
        MessageBox "Error #" & Err & " occurred in line " & Erl & Chr$(10) &_
                "Error message: " & Chr$(10) & Error$, 48, "Error"
       
        If hDB <> 0 Then ' if there is a valid handle, try to close database
                returnCode = NSFDbClose(hDB)
        End If
End Sub

Read More

11.07.2014

Neue Traveler Client App 9.0.1.1 erschienen

Category: IBM Notes Traveler, Administration

Lotus Notes Traveler
Wie Mat Newman in seinem Blog ganz richtig bemerkt, ist dieses Release nicht einfach nur ein Punkt-Release. Es ist eine Generalüberholung mit neuen Funktionen und ganz neuer Benutzerführung.


Die nachfolgende 29(!)-seitige Präsentation zeigt mit sehr schönen Screenshots, was sich geändert hat:
Matnewman.com IBM Notes Traveler 9.0.1.1 from Mat Newman

Um Missverständnissen vorzubeugen: Damit geht kein neues Traveler Server Release einher. Wer diese neue App also haben möchte, muss sie sich im Google Play herunterladen und ggf. manuell auf seinem Traveler Server einbinden.

06.07.2014

Quick-Tipp: Domino Console verbindet sich nicht mit lokalem Server

Category: Quick-Tipp, IBM Domino, Administration

Quick-TippIBM Domino
Seit einigen Versionen des Windows-Servers kann man nicht mehr direkt die Konsole des Domino-Servers sehen - aus Sicherheitsgründen.

Als Ersatz kann man die Domino Console (jconsole.exe) auf dem Server starten, die auch deutlich vielseitiger und leistungsfähiger als die "alte" Serverkonsole ist.

Normalerweise (soll heißen: in meiner Erfahrung bisher immer) findet die Domino Console nach dem Start den lokal laufenden Domino-Server und verbindet sich ohne weitere Authentifizierung mit diesem. Letzten Donnerstag habe ich das erste Mal erlebt, dass es nicht funktioniert hat.

Der Server wurde migriert von Hardware auf VM, die Version von 8.5.3 FP6 auf 9.0.1 FP1 IF1 angehoben. Er ist ein Cluster-Server mit einer zweiten Netzwerkkarte und IP-Adresse für den Cluster-internen Verkehr. Der "Hauptserver" des Clusters wurde vorher schon umgestellt und alles lief auf Anhieb wie erwartet. Bei diesem, zweiten Server jedoch hat sich die Domino Console nicht mit dem laufenden Domino-Server verbunden - weder automatisch beim Start der Console, noch auf "Aufforderung".

Man konnte sich mit der Domino Console auf andere Server über Netzwerk verbinden, indem man Server-Adresse, Name und Passwort angab.

netstat -a -n zeigte, dass der Dienst auf tcp/2050 lauschte und zwar auf der Hauptadresse des Servers. Die Domino Console versucht beim Start sich mit dem lokalen Server zu verbinden und benutzt dazu den Namen des Windows-Servers (der abweicht vom Namen des Domino-Servers).

Ein ping auf den Windows-Namen nutzte IPv6, ein ping -4 zeigte, dass der Windows-Name auf die IP-Adresse des Cluster-Netzwerks aufgelöst wurde. Das ließ sich erstaunlicherweise aber weder über den DNS-Eintrag noch über einen entsprechenden Eintrag in der lokalen hosts-Datei ändern. Windows halt.

Die Lösung fand ich in einer Technote, die sich eigentlich mit etwas anderem beschäftigt: Domino running on Windows 2008, Is there way to set the Lotus Domino Console starts, it would connect to the local Domino server ?

Dort stand in der dconsole.ini im ersten Abschnitt:
LocalHost=Name:2050

Flugs habe ich eine solche Zeile auf dem problembehafteten Server eingetragen - mit dem Domino-Server-Namen, der per DNS-Eintrag auf die "richtige" IP-Adresse übersetzt wird, und nach einem Server-Neustart und dem Aufruf der Domino Console verbindet sich diese automatisch mit dem lokalen Domino-Server! Ich habe fertig!

04.07.2014

Quick-Tipp: Fehler beim Signieren von Datenbanken mit der Server-ID

Category: Quick-Tipp, IBM Notes, IBM Domino, Administration

Quick-TippIBM NotesIBM Domino
Das war mal wieder ein ganz mysteriöser Fehler: Im Domino Administrator unter dem Reiter Dateien eine Datenbank ausgewählt, im Rechtsklick-Kontextmenü "Signieren..." und im folgenden Dialog "ID des aktiven Servers" gewählt. Sofort kommt eine Dialogbox mit der Fehlermeldung "Sie sind zur Durchführung dieser Operation nicht berechtigt." (You are not authorized to perform that operation).

Kurze Recherche und viel Überprüfen der aktuellen Einstellungen:
  • Aktueller Benutzer muss Administrator auf dem Server sein (Server-Dokument, Sicherheit-Reiter): gecheckt.
    Er hat sogar das Recht für Administration mit voller Berechtigung - und selbst wenn diese aktiviert ist, kommt der Fehler.
  • Er muss mindestens Autor sein auf der Datenbank admin4.nsf (Administrationsanforderungen) und Dokumente erstellen können: gecheckt, sogar Manager mit allen Rechten.
  • Er ist Manager auf der zu signierenden Datenbank
  • Er kann die Gestaltung der Datenbank mit seiner ID problemlos signieren.
Als Entwickler im Herzen probiere ich es über einen Agenten, den ich in der zu signierenden Datenbank erstelle:

Option Public
Option Declare

Sub Initialize
        '/**
        ' * signs this database by manually creating a request with NotesAdministrationProcess.
        ' *
        ' * @author                Thomas Bahn <tbahn@assono.de>
        ' * @version        2014-07-03
        ' */
       
        Dim uiws As New NotesUIWorkspace
        Dim session As NotesSession
        Dim currentDB As NotesDatabase
        Dim adminDB As NotesDatabase
        Dim adminP As NotesAdministrationProcess
        Dim noteID As String
       
        Set uiws = New NotesUIWorkspace
        Set session = New NotesSession
        Set currentDB = session.CurrentDatabase
        Set adminDB = New NotesDatabase(currentDB.Server, "admin4.nsf")
        Set adminP = session.CreateAdministrationProcess(currentDB.Server)

        noteID = adminP.SignDatabaseWithServerID(currentDB.Server, currentDB.FilePath, False)
        If noteID <> "" Then
                Call uiws.EditDocument(False, adminDB.GetDocumentByID(noteID))
        End If
End Sub

Ich nenne ihn "Datenbank per Administration Request signieren lassen via AdminP-Objekt" (SignDatabaseAdminPViaAdminPObject),
  • Auslöser: Durch Ereignis - Auswahl im Menü 'Aktionen'
  • Ziel: Keine
  • Sicherheitsstufe zur Laufzeit: 2. Beschränkte Operationen zulassen

Es kommt in der Zeile mit "adminP.SignDatabaseWithServerID" der gleiche Fehler wie im Admin-Client.

Noch gebe ich mich nicht geschlagen, ein anderer Weg, ein anderer Agent:

Read More

01.07.2014

Quick-Tipp: Unter CentOS 6 zusätzliche Repositories benutzen

Category: Quick-Tipp, Administration, Linux

Quick-Tipp
CentOS 6 ist für mich eine rundherum gelungene Distribution. In Zusammenhang mit IBM-Software, wie z. B. IBM Domino, gefällt mir besonders die Kombination aus "fast" offiziell vom Hersteller unterstützter Plattform und kostenloser Benutzung für beliebig viele Server. Gerade wenn man ständig neue VMs erstellt zum Testen, für Demos usw., die man aber auch nach Monaten und Jahren noch nutzen können möchte, müsste man sonst für andere Betriebssystemlizenzen sehr viel Geld ausgeben. Nur "fast" weil es (binär-)kompatibel zum RedHat Enterprise Linux (RHEL) ist, das IBM offiziell als Betriebssystem für IBM Notes, IBM Sametime, IBM Connections usw. unterstützt.

Eine kleine Einschränkung ist aber, dass die Paketbibliotheken (Repositories), die direkt zu CentOS gehören, relativ klein sind zu anderen Linux-Distributionen. Kürzlich hatte ich auf einem Gentoo-Linux ein kleines Hilfsprogramm gesehen (htop), das mir auf Anhieb gefiel. Heute wollte ich auf eine mit NTFS formatierte, externe Festplatte zugreifen. Beides geht nicht mit den Paketen aus den Standard-Repositories. Aber glücklicherweise gibt es da was von Ratio... RepoForge (vormals RPMForge), einem weiteren Repository, das sich leicht einbinden lässt.

Bei zusätzlichen Repositories gibt es ein prinzipielles Problem: Was ist, wenn die Pakete und/oder Versionen enthalten, die mit denen aus den Standard-Repositories konkurrieren? Bei RepoForge sollte das kaum auftreten, aber wenn man sich trotzdem etwas absichern möchte, kann man das mit dem yum-priorities-Plug-in tun. Hier die notwendigen Schritte in aller Kürze für CentOS 6:
  • im Terminalfenster
    yum install yum-plugin-priorities
  • prüfen von /etc/yum/pluginconf.d/priorities.conf: enthält die Datei enabled=1 im Abschnitt ain/font>?
  • in allen Dateien in /etc/yum.repos.d/ Prioritäten eintragen, also priority=n in allen Abschnitten eintragen, wobei ich für die Basis-Pakete in CentOS-Base.repo 1 bzw. 2 vergebe, in CentOS-Vault.repo 3 bis 7 (aufsteigend zu den älteren Versionen hin), in CentOS-Media.repo die 8 und in CentOS-Debuginfo.repo die 9.

Jetzt kann man das RepoForge-Repository hinzufügen:
  • Je nach Plattform: 32-bit (i686):
    wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm
    bzw. 64-bit (x86_64):
    wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
    oder einfach:
    wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.`uname -m`.rpm
  • Signatur-Schlüssel holen:
    rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
  • Paket überprüfen:
    rpm -K rpmforge-release-0.5.3-1.el6.rf.*.rpm

    Ergebnis sollte etwa so aussehen:
    rpmforge-release-0.5.3-1.el6.rf.i686.rpm: (sha1) dsa sha1 md5 gpg OK
  • und installieren:
    rpm -i rpmforge-release-0.5.3-1.el6.rf.*.rpm
  • in /etc/yum.repos.d/rpmforge.repo Prioritäten eintragen, also priority=n in allen Abschnitten eintragen (ich verwende 10 bis 12 von oben nach unten)

Und zum Test kann man jetzt htop installieren:
  • einmalig die Yum-Caches säubern:
    yum clean all
  • htop installieren:
    yum install htop
  • und schließlich ausführen:
    htop
  • für die NTFS-Unterstützung installiere ich ntfs-3g:
    yum install ntfs-3g

27.06.2014

IBM Connections 5 - interessante Links

Category: IBM Connections

IBM Connections
Nachdem gestern (endlich) IBM Connections 5.0 erschienen ist, heute noch ein paar Links zu nützlichen und/oder interessanten Informationen:


Die Produktdokumentation, die ich gestern noch nicht gefunden hatte, im IBM Knowledge Center:
IBM Connections 5.0 - Administering Connections V5

Die Dokumentation enthält auch diese interessante Übersicht:
What's new in IBM Connections 5.0
Dadurch dass aber (fast) alle Änderungen aufgelistet sind, kann man kaum die wichtigen großen von den nicht so wichtigen kleinen unterscheiden.

Das IBM Social Software-Blog bringt immer wieder die neuesten Neuigkeiten, wichtige Verweise und nützliche Informationen, darunter auch Videos zu den Neuerungen.
Besonders relevant aktuell ist der Announcing the new IBM Connections 5.0 Reviewer's Guide.

IBM Connections Product life cycle dates
Die Version 2.5 läuft dieses Jahr noch aus dem Service. Ich erwarte, dass die Version 3.0 aus 2010 demnächst auch abgekündigt wird mit einem Service-Ende vielleicht in 2015?

Es gibt bereits die ersten beiden Interims Fixes für Connections 5.0 in der IBM Fix Central.
Auf der Seite Update strategy for IBM Connections 5.0 steht auch ein Verweis auf den WebSphere Application Server 8.5.5.1 iFix PM91417, der zwingend vorausgesetzt wird, bevor man die beiden Connections-Fixes einspielen kann.

Für Entwickler ist wahrscheinlich die IBM Connections 5.0 API Documentation interessant.

Für Administratoren eher die IBM Support-Seite für IBM Connections 5.0.
Von dort kommt man auch leicht zu weiteren nützlichen Seiten, wenn auch einige noch nicht für die Version 5 aktualisiert wurden. Insbesondere die IBM Connections 5.0 System Requirements fehlen mir noch auf den entsprechenden Seite.

Zwar schon älter (aus dem letzten Jahr ), aber Immer noch ziemlich aktuell:
IBM Redbooks: Installing and Deploying IBM Connections

26.06.2014

IBM Connections 5-Plug-ins sind auch schon da

Category: IBM Connections

IBM Connections
Bereits seit letzter Woche steht das IBM Connections Plug-in für Microsoft Windows zum Download bereit. Es "passt" auch zur IBM SmartCloud for Social Business-Variante von IBM Connections, die schon seit einiger Zeit auf der Version 5 der "on-premises"-Lösung aufsetzt. Heute ist noch das Plug-In für IBM Notes dazu gekommen:


A picture named M2

Beide befinden sich im Solutions Catalog auf dem IBM Greenhouse:
IBM Connections Plug-ins for IBM Notes
IBM Connections Desktop Plug-ins for Microsoft Windows

26.06.2014

IBM Connections 5 ist schon da

Category: IBM Connections

IBM Connections
Uups, da bin ich wohl in der Zeile verrutscht und wurde heute positiv überrascht: Bereits heute hat IBM die Version 5 von IBM Connections heraus gebracht. In meiner Ankündigung hatte ich versehentlich das Erscheinungsdatum (24. Juli) für die physischen Medien genannt, die üblicherweise ungefähr einen Monat nach der elektronischen Verfügbarkeit einer Software-Version erscheinen.


Wie immer kein kleiner Download - insbesondere, weil sich auch die Version des Websphere Application Servers geändert hat, die vorausgesetzt wird. Jetzt soll es ein IBM WebSphere Application Server Network Deployment 8.5.5 sein (wie auch bei IBM Sametime 9).
A picture named M2


Die Dokumentation ist noch nicht da, aber zwei sehr interessante Präsentationen:

Die Keynote von der Social Connections VI: "Why IBM Connections 5.0 Matters" von Luis Benitez
http://de.slideshare.net/lbenitez/social-connections-vi-keynote-why-ibm-connections-50-matters

"What's new for Existing Customers in Connections 5.0" von Albert Nichols aus dem IBM Connections Product Management
http://de.slideshare.net/AlbertNichols/whats-new-for-existing-customers

und noch zwei Videos:

"IBM Connections 5 - External Collaboration" von Suzanne Livingston
https://www.youtube.com/watch?v=M_ll2J7Rv_Y

"IBM Connections Demo: File Sync and Mobile Capabilities"
https://www.youtube.com/watch?v=3blPH6auL8A

17.06.2014

IBM Connections 5 angekündigt

Category: IBM Connections

IBM Connections
Eigentlich hat IBM die nächste Version von IBM Connections 5 (vorher: IBM Connections Next) schon länger angekündigt, aber heute kam die "offizielle" Ankündigung mit Verfügbarkeitsdatum: Am 24. Juli soll es dann soweit sein.


Neben vielen Verbesserungen - es ist immerhin eine neue Hauptversion - gefällt mir eine ganz besonders (und ich warte schon länger darauf).

Bei LotusLive IBM SmartCloud for Social Business gibt es schon ganz lange die Möglichkeit, mit externen Personen, also zum Beispiel Kunden, Lieferanten, Geschäftspartnern leicht und einfach zusammen zu arbeiten. Man kann dort beliebige Externe als Gäste einladen - ohne weitere Kosten. Bei IBM Connections konnte man bisher eher wählen: Eine interne Installation (Lizensen pro Benutzer) oder eine externe Installation (Lizensen nach PVU). Die Software an sich war nicht wirklich darauf ausgelegt, dass sowohl interne, als auch externe Zusammenarbeit gleichzeitig zu unterstützen. Freigeben für "alle" war eben wirklich für "alle" und nicht nur für die Kollegen.

Die für mich spannendste Neuerung ist die Möglichkeit, jetzt in einer Connections-Installation intern und extern bequem gleichzeitig zusammen zu arbeiten. Die Externen sind dabei immer als solche deutlich markiert, können z. B. Mitglieder einer Community sein, Dateien freigeben und freigegeben bekommen usw.

Ansonsten arbeitet IBM weiter an der "analytischen" Seite von Connections und möchte so noch "relevantere" Informationen anbieten (bzw. den Rest noch besser ausfiltern), es gibt bessere Ansichten und Voransichten, damit man das gesuchte Dokument schneller findet, mit Ordnern in Communities kann man Inhalte deutlicher strukturieren u.v.a.m.

Read More

10.06.2014

Domino Designer and XPages Extensibility APIs Javadoc 9.0.1

Category: Entwicklung, XPages, Java

XPages

During IBM Connect this year I asked in the developer lab about an update for the Javadoc documentation which came with the first version of the Extension Library.

A couple of days ago I finally found it in the Domino Wiki:

Domino Designer & XPages Extensibility APIs Javadoc 9.0.1

It is a really helpful source for anybody who wants to dive deeper into XPages.

Thank you IBM


Kalender (Calendar)

Tags

Deutsche RSS-Feeds (German)

Custom Button Custom Button

English RSS feeds

Custom Button Custom Button