logo: Ytria - Essential Tools for IBM Notes and Domino (Lotus)
Ytria Tech Lab
Articles, Tips, and Code for IBM Notes and Domino Administrators & Developers

How *often* you click Ctrl+S can affect Lotus Notes application development

on 2/04/10

ctrl+s

Continuing in our series of Lotus Notes secrets, we’d like to share a strange little tidbit about design element replication (this is one of the secrets that Ytria’s Eric Houvenaghel shared at his Lotusphere 2010 BoF session):

A tale of two Lotus Notes developers

Once upon a time two developers were each working on their own local replicas of the same Notes application.

One developer, we’ll call him Bob, was nervous about losing changes so he clicked Ctrl+S after every single change he made.

The other developer, who we’ll dub Henry, was a bit more laid back. He only saved his work periodically, after significant changes were made.

Now the problem:

Naturally enough, Henry and Bob would sometimes get their wires crossed and work on the same design elements at the same time. And since Designs can’t have conflicts, someone’s work would inevitably be lost after replication. But oddly, in these situations it was always Henry’s work that got lost–even if he was the last one to work on the design element in question.

But why?

Because every time Bob clicked Ctrl+S the sequence number would go up and it turns out that  a higher sequence number trumps a more recent Modified date in design element replication.

Still don’t believe me?

For all you doubters out there, I performed a little experiment with scanEZ to confirm our observations (I used scanEZ because it lets you have  multiple open sessions with different active IDs).

First, I did some modifications to a view being sure to save frequently, thus running up the sequence number (see the image below)…

CTRL_S_Maniac

Image A: The Ctrl+S Maniac

Next, I performed another modification on the same design element on a replica of this database using a different ID. This time I only saved once. But notice in the image below the Modified date is more recent than in the image above:

The_last_one_to_save

Image B: The changes are more recent but the dev saved his work only once

When I replicated, as expected, the version in Image A was the “winner”:

The "winner"

The “winner”

How to avoid this issue

A locking solution that prevents developers from working on the same design element is probably the simplest way to prevent this problem from occurring in your Notes shop.

Print Friendly, PDF & Email

3 Comments

  1. Since you are picking on me, even though I am laid back, I assure you that I never work on a Domino project with more than one developer where we do not use Design Locking on the development code. Rule is, Lock what you are and might be working on. If you see an element that is locked, use Sametime to ask the other developer if they will unlock it for you.

    Henry “Newbs”

  2. Interesting… Is Design Locking built into Lotus Notes Designer or is this a bespoke util ypu are using?

  3. Thanks for the comments fellows.

    @Henry
    Those are surely words to live by.
    I like your idea for preemptively locking designs you think you’ll be working on and then keeping Sametime open.

    @RobW
    I can’t speak for Henry, but I was talking about the Lotus Domino built-in Design locking capabilities first introduced in R6 and described here:
    http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp?topic=/com.ibm.designer.domino.main.doc/H_LOCKING_A_DESIGN_ELEMENT_OVER.html
    There is also a popular third party locking solution on the market.

    -Peter

Leave a Comment

To diplay code in your comment, put the code between these brackets: [cc]your code[/cc]. You can also put inline code by using these: [cci]your inline code[/cci]