Thursday, April 16, 2009

Team Sessions V3 - Selective Replication of Rooms

Team Sessions V3 provides native support for Lotus Domino as the data storage system for both the storage of the persistent chat rooms as well as the configuration of the Sametime persistent chat environment.
From the early days of the Team Sessions design, we wanted to develop a Sametime persistent chat environment and platform that leveraged the replication and security systems of Lotus Notes/Domino with the presence and chat functionality of Lotus Sametime. Over the years, leveraging Lotus Domino as the storage, configuration, and security system infrastructure has been a tremendous advantage.

One of our larger deployments of Team Sessions (also known as IPWar) has over 500 rooms hosted on multiple Sametime servers. Typically, our ITSessions.nsf database (which provides the web UI and storage system) is replicated across the various Sametime servers. However, our customer requested a way to have certain rooms not replicate - and therefore create rooms that just stay hosted on one of the two servers.

Fortunately, since Team Sessions uses Domino as our storage and configuration environment, this was a fairly trivial item to implement. We simply created a custom replication formula for the database.
Suppose for example we have 2 servers Server1 and Server2 and ITS database on each server have chat room names prefixed with sr1 and sr2 respectively like
sr1: IT Help Desk, sr1: UK Suport
sr2: Logistics and sr2: Centrix Review...etc.

Now the goal is that when both databases gets replicated then we should not see the room prefixed with sr1 on Server2 and vice versa. The selective replication formula for Server1 will be SELECT !(@Begins(txtChatPlaceDisplayName; "sr2"))