Java in Notes/Domino Explained: Stacktraces


Not much information on Java in Notes/Domino per say in this post but simply a pointer to a nice article on reading stack and tread dumps which is a must for all programming in Java.

Remember that as of Java 1.4 (Notes/Domino 7.x) you can use Java classes access the elements of a stacktrace. You can use this to further diagnose the trace and make a more intelligent decision on how to handle it. Look for the StackTraceElement class in the javadocs.

Link to article: Of Thread dumps and stack traces ….

Sametime 7.5.1 tabbed interface is loosing messages!

Well let’s say I was shocked when I found this out… After upgrading to Sametime 7.5.1 on the client as well on the server we have been been using the tabbed interface to handle the chats. While I like the interface a lot, my coworkers and I have stopped using it since we are experiencing that some chat messages simply dosn’t show up the Sametime Connect client and are “lost”.

We became aware of the problem when one of my coworkers told me that his Connect client was “dinging” but no new chat message appeared. I discounted the idea but as he kept telling me about this and I started experiencing it myself I started to get curious. Yesterday we decided to do a systematic test and have been able to consistently reproduced the issue. The issue is only visible when using the tabbed chat interface.

It doesn’t seem to be a problem with the server or client per say but the interface as the messages are showing the chat history.

Symptoms

The chat window flashes and “dings” but no new message is showing in the chat window. If you close the chat window and reopen it the full chat exchange, incl. all messages, are showing up – also the “lost” ones.

The issue occurs both for text messages, emoticons (which is simply text) and for graphics

System configuration

  • Server: Sametime 7.5.1, US English, on IBM Lotus Domino 7.0.2 on Windows 2003 Server
  • Client(s): Sametime 7.5.1 Connect client on Windows XP Prof. SP2 using the tabbed chat interface

Steps to reproduce

  1. User 1 and user 2 configures their Connect client to use the tabbed chat interface
  2. User 1 sends user 2 series of messages using an ascending messaging scheme (e.g. a, b, c)
  3. User 2 sends user 1 series of messages using an ascending messaging scheme (e.g. 1, 2, 3)

At some point you’ll discover that some messages are missing when looking at the ascending numbers or letters. Below is a couple of screenshots from a chat exchange from the office. The first screenshot is from my computer and I’m simply sending letters to my chat partner who is responding with numbers.

The second screenshot shows my chat partners Connect client after I have sent my third message (“c”). As you can see the second message (“b”) has been lost and isn’t showing. Also the name isn’t showing in front of my third message (“c”).

The third and final screenshot is of my chat partners chat history dialog. As you see all 6 messages (“1”, “2”, “3”, “a”, “b” and “c”) is showing here and is correctly prefixed.

As previously stated we have been able to consistently reproduce the issue on multiple occasions. I would be very much interested to hear if anyone else has been experiencing similar issues with the tabbed interface.

Service pack installation

Just found this nice tip from a friend of mine on installing service packs in VMWare images. When installing for example service pack 2 in a Windows XP image you can use the “/n” parameter to avoid saving backup files which might not be worth the diskspace in an image. Also using “/u” will make the installation program simply install the service pack and reboot the machine and not prompt you for approval.

Deploying your plug-ins in Notes 8 and Sametime 7.5.x


This document discusses the Notes 8 "shelfViews" programming model, and explicitly explains how to contribute a shelf view to the Notes 8 sidebar. There are basically two steps:
1. Create a view and add a contribution to the org.eclipse.ui.views extension point.
2. Contribute the view to the com.ibm.rcp.ui.shelfViews extension point to have it appear in the sidebar.
Following these descriptions, we compare the Notes 8 "shelfViews" programming model to the Sametime "miniApps" programming models, such that developers will know how to migrate a plugin from the Sametime client to the Notes 8 client.

Documentation — Sidebar Contribution Design Pattern and Migrating a Sametime 7.5 plugin over to Notes 8 via the Composite Application blog.

Multiple SMTP relay hosts

Had a strange issue at a customer yesterday. The customer is running a set of clustered SMTP devices for inbound and outbound SMTP relay and we had added both IP addresses of these clustered devices to the relay server field on the Configuration document of both their clustered Domino servers. Yesterday one of the clustered SMTP devices went down but unfortunately Domino didn’t immediately switch to the other SMTP device. Doing a “tell router status” indicated that the router task was waiting for the device to come back up. As it was it looked as though it was unaware of the second entry for the SMTP relay server.

The Domino Administrator help file states under “Configuring multiple relay hosts”:

To enable greater control over outbound message routing, you can configure multiple relay hosts. Using multiple relay hosts enables Domino to route mail addressed to certain Internet domains to certain relay hosts, without first performing a DNS lookup. For example, you can split external SMTP mail routing so that Domino routes all outbound Internet mail along one path, except mail addressed to a specific domain, such as *.acmepartner.com, which it sends through a specific SMTP server.

To configure multiple relay hosts, create a Foreign SMTP Domain document for each set of destinations, and then create SMTP connection documents to match these foreign SMTP domain documents. For example, using the previous example, you would create one Foreign SMTP Domain document for *.* and another for *acmepartner.com.

From the description I gather that Domino only can use one relay server and it you have multiple relay hosts you can only distribute the traffic among the servers based on domain name matches e.g. all .dk and .net traffic to one server and the rest to the other. But that’s load balancing and not failover.

Fortunately the customer have some intelligent network switches where you can define a logical interface (which is the one you would specify on the Configuration document) and have the switch distribute the traffic to the multiple devices based on which devices are up (the switch senses which of the devices respond to SMTP). Hence the switch does the failover and not Domino. This approach works but I was expecting Domino to provide this kind of functionality.