Are you deploying a bookmark database to your users via replication?

If yes, what ACL do you use?

I tried setting the ACL for -Default- to Reader but get errors because Notes apparantly creates “history” documents (Form=”HistoryListEntry” – scanEZ to the rescue) in the database so Reader isn’t enough. I guess I could allow higher access but how do I then control the amount of “history” documents created and avoid replicating them to all users (without setting selective replication formulas)? The whole idea is to have a bookmark database you can control centrally and push to users using replication – I hope this isn’t a pipe dream

Insights?

Java in Notes/Domino Explained: Domino Session Tester


Testing local and remote sessions to Notes/Domino can be a hassle so I’ve created a small utility to help test the different kinds of sessions. To use the Domino Session Tester download the two listed jar-files at the end of the post to a directory, copy the notes.jar to the same directory and follow the below instructions for use.

Please note: If you get a message saying “Exception in thread “main” java.lang.NoClassDefFoundError: lotus/domino/NotesException” you haven’t copied Notes.jar to the directory…

Base syntax

The base syntax of the utility is as follows:

C:>java -jar domino_session_tester.jar

Domino Session Tester by Mikkel Heisterberg (http://lekkimworld.com)
Version: 1.0, Date: 10 July 2006

***********************************************************************************
* This utility is provided "AS IS" with no warranties, and confers no rights.     *
* Some rights reserved (disclaimer: http://lekkimworld.com/pages/disclaimer.html) *
*                                                                                 *
* This utility uses code from the Apache Jakarta Commons CLI project              *
* (http://jakarta.apache.org/commons/cli) and respects their copyrights.          *
***********************************************************************************

usage: Domino Session Tester
 -t,--type    session type (remote/local)

The above command will show the different options available to you. The only required argument is the -t argument where you specify the type of session to create (“local”/”remote”). Once you select “local” or “remote” more options will be available. Apart from this the utility should be pretty straight forward to use. I have shown some examples below.

Testing local session (using id-file from local Notes installation)

C:>java -jar domino_session_tester.jar -t local

Testing anonymous remote sessions

C:>java -jar domino_session_tester.jar -t remote -h diiop.example.com

Testing authenticated remote sessions

C:>java -jar domino_session_tester.jar -t remote -h diiop.example.com -u "John Doe" -p secret

Comments are as always welcome.

Downloadable files:

Java in Notes/Domino Explained: Different kinds of sessions


When creating sessions to Notes/Domino (lotus.domino.Session) you have to distinguish between the two different types:

  • Local sessions
  • Remote sessions

Below I’ll describe both types and more importantly what you cannot do with the different types.

Local sessions

You create a local session using the methods of lotus.domino.NotesFactory class that doesn’t take a hostname argument. The session is actually just a thin wrapper around native calls to an underlying DLL/shared library hence you need to have the binary Notes and/or Domino code installed on the machine your code runs on.

Local sessions cannot be created using a LTPA (Lightweight Third Party Autentication) token or anonymously.

To use local sessions you need to include the notes.jar file on the classpath of the code.

Remote sessions

Remote (or Corba) sessions are run over the IIOP wire protocol hence you need the DIIOP server task loaded on the Domino server. You do not need to have the HTTP server task loaded on the Domino server to use remote sessions. The reason you would normally load HTTP anyway is if you want the code to automatically discover the hostname and port to use for the Domino server. This is done via the IOR (Interoperable Object Reference) and the diiop_ior.txt on the Domino server (http://diiop.example.com/diiop_ior.txt). If you do not load the HTTP task you can provide the IOR to the NotesFactory method as a String.

You cannot create remote sessions against a Notes client installation.

Remote sessions are created using the methods of lotus.domino.NotesFactory that take a hostname as an argument. Remote sessions can be created anonymously, using cleartext username/password or using a previously established LTPA token.

To use remote sessions you need to include the ncso.jar file on the classpath of the code.

Comment SPAM – again…

The easiest way to block comment SPAM is to turn of comments altogether. Another way is to turn of comments to existing posts periodicly which is the way I do it (using a cron job). I’m running Pebble for my blog so disabling comments and trackbacks in bulk is easy using Perl and regular expressions:

perl -pi -e 's/<commentsEnabled>true/<commentsEnabled>false/' `find . -name [0-9]*.xml`
perl -pi -e 's/<trackBacksEnabled>true/<trackBacksEnabled>false/' `find . -name [0-9]*.xml`

This is the same approach as I have been used previously to rename categories.

Video on how to install Callisto

Via EclipseZone: Instructional video on how to use the Callisto update site

As the post mentions it shows you in 2 minutes and 35 seconds how to install the entire 140 MB Callisto package. I downloaded Eclipse 3.2 yesterday and installed Callisto using the Callisto Discovery Site and it worked like a charm. Nice. I really like the XML editors that are part of the Callisto distribution – no more paying for XML editing. I’m missing a XSLT editor though… 🙁

PMR at Lotus Support

Just got a call from Lotus Support confirming that the issue mentioned previously with mail settings not being correctly applied is indeed a bug in the software. In short the bug implies that a mail setting that requires an agent to be enabled (e.g. the “Allow Notes to update To Do status and dates for incomplete entries” setting on the calendar profile) will not be correctly applied to user mail databases.

For the time being you can use the agent mentioned previously to work around the problem.