Installing Sametime 10 Limited Use

A slight delay on this blog, which I promised to write last week, but I have a good excuse. My original plan was to do an in-place upgrade as Sametime 10 is still 32bit-only enabling it to be upgraded on top of your existing Community Server so long as the underlying Domino install is at least 9.0.1 FP10 32bit. However the system requirements support Windows 2012 and Windows 2016 servers, but not Windows 2008 which was what the server I planned to upgrade was installed on. Yeah, it’s been a while since we had a major Sametime upgrade 🙂

Change of plan. I decided to start over first by building a standalone Community server and then adding the Proxy Server all without a System Console.

The documentation for this install is a PDF file that is linked to on this page https://www-01.ibm.com/support/docview.wss?uid=ibm10887399. My write-up below is based on my own install using that documentation.

Installing Domino

I built a new Windows 2016 Standard server and installed a new Domino 32 bit 9.0.1 FP10 server on it. IBM Fix Central still has FP10 accessible on it so you can still get it from there.

  • Windows 2016 is a supported server operating system for Domino 9.0.1, so I went with that as it will also support future upgrades.
  • We know that the next major Sametime version is meant to be 64bit-only, so we’re not going to be able to upgrade over 32 bit Domino without uninstalling and re-installing but at least I won’t have to rebuild the entire machine. However, for a customer I’d probably do a side-by-side upgrade so I could have a fallback to the existing Community Server.
  • I like to install Sametime in its own domain as Sametime uses LDAP for authentication and even if that LDAP is a Domino Directory you can’t point to the Directory running the Sametime server.
  • Having the Sametime Community server in its own domain means I can upgrade Domino and upgrade Sametime without touching anything else such as my mail or application domain.

My Domino server then is built as an Enterprise server (which doesn’t need to be licensed separately if you’re only using it for Sametime) in its own domain and with minimal services (remove things like Calendar, Scheduler, RNRMgr from starting up) but leave HTTP.

Installing MongoDB

MongoDB is new to the Sametime requirements and also temporary. It is needed for storing of chat history, but HCL have said they will be changing the DB platform from Mongo in v11 to something else and providing tools to move the data to the new database store at that point. You don’t need to be a MongoDB expert for this step.

First we need to download the right version of MongoDB and separately the Compass add-on.

MongoDB Installer

Compass Addon

The supported MongoDB version is 3.6.5 and fixpacks specifically. Once downloaded we run the installer, make sure you uncheck the box to install “Compass” during the MongoDB install or the install will fail.

Choose “Complete” on this screen

Un-Check this box which is checked by default or the install will fail.

Once completed we then run the Compass installer separately

Now we’re almost ready to start and configure MongoDB. When the server starts it will expect to find the data and log directories so these need to be created in advance or the start will fail. The default locations for those are c:\data\db and c:\program files\mongodb\logs\log.txt (I don’t use these in general but created them purely for the first server start).

Run the mongod.exe first from the install directory which by default is

C:\Program Files\MongoDB\Server\3.6\bin

from a command window run “mongod.exe” which will start the server instance and end up listening on port 27017. Do not shut the server window if running in the foreground at this point!

Now we want to issue commands to the server via the Mongo command line tool which we run using “mongo.exe” from the same directory.

Out of interest at this point if you type the following in a command window you should see both the server listening and command window established connections:

netstat -an |find /i “27017”

Checking The Schema

We now need to make sure the schema version for MongoDB is set correctly to support Sametime’s requirements. From the mongo command window type

use admin
db.system.users.remove({})
db.system.version.find()

my request returned “{“_id”: “featureCompatibilityVersion”, “version”: “3.6”}” so I used the command below to set it correctly then restarted the Mongodb server.

db.system.version.insert({ “_id” : “authSchema”, “currentVersion” : 3 })

The documentation now wants us to add MongoDB as a service using the following instructions however I had problems with it as although it installed as a service it then refused to start returning a 1053 error. After a couple of hours trying to fix that which seems to be Windows related I went another way to get a working service.

This is what the documentation said to use (sc is found in c:\windows\system32 if your path can’t find it)
sc.exe create MongoDB binPath=”\”C:\Program Files\MongoDB\Server\3.6\bin\mongod.exe\” –service — config=\”C:\Program Files\MongoDb\Server\3.6\mongod.cfg”” DisplayName= “MongoDB” start= “auto”

I ended up removing that service since it wouldn’t start (sc delete MongoDB) and adding it using a different syntax from the Mongo bin directory itself

mongod –directoryperdb -dbpath C:\data\mongodb\ –logpath C:\data\mongodb\log\mongo.log –logappend –service –install

That installed the service which started with no problems, including writing to the log file in the new directory I configured on the command line (again the directories have to exist first).

So now Mongodb is installed and running, let us move onto configuration.

Configuring MongoDB

Launch the Mongo Compass Community from your Windows start menu and connect to your locally-running server.

I don’t need to change any of these settings – just press “Connect”
Once connected I am shown a list of existing databases. These are all system databases so don’t delete any of them!

Now we need to create a new database for chatlogging and collections within that new database. Click the “Create Database” button and complete the dialog as shown below. Keep the naming and capitalisation identical to what is shown here, Database Name “chatlogging”, Collection Name “SESSIONS” . If you don’t you will need to modify the sametime.ini later.

Once the database is created we can click on it for further configuration

The documentation wants us to create an additional Collection called “EVENTS”, so we click on “Create Collection” and do that.

Having created the new chatlogging db we need to set up a Mongo user account and give that admin access. We do all this from the Mongodb console again which is accessed by running mongo.exe.

The documentation specifies using the user name “sametimeUser” and the password “sametime”. If you use a values you will need to edit the MongoDB settings in Sametime.ini once you complete the Sametime configuration steps.

The command below not only creates the user but also gives that new user admin rights to the chatlogging database.

use admin

db.createUser({user:”sametimeUser”,pwd: “sametime”,roles:[{role:”readWrite”, db:”chatlogging”},{role: “userAdminAnyDatabase”, db: “admin”}]})

Installing Sametime Standalone

With Domino shut down we can now install the Sametime Community Server. We don’t need a System Console in place before doing this.

Configuring Chat Logging

There are three components to configuring chat logging on the Sametime server:

  1. Enable Chat Logging through stconfig.nsf so the server knows to support it.
  2. Configure the policy files to enable chat logging.
  3. Point the Sametime chat logging to the MongoDB.

Open STConfig.nsf on the server and find the communityservices document then edit that and change the Chat Logging parameter to “relax”

Now we need to modify the XML files that control the policies. We can find those in the Domino program directory and can open them with a text editor.

  • In policies.server.xml set the “current-value” of offlinemsgs.community.enabled to “1” instead of “0”
  • In ‘OfflineMessages.xml’ set the ‘current-value’ of offlinemsgs.community.enabled to “1” instead of “0”
  • In ‘policies.users.xml’ file set the ‘current-value’ of im.enableOfflineMessages to “1”. There will be multiple instances of that value, one for the default and one for the anonymous policies that are available on a standard install.

I will be talking more about manually setting and creating policies in a later blog. The documentation provides a reference URL to detailed policy settings but that URL now returns a 404 so I’m checking with HCL for an updated link.

broken link: https://www.ibm.com/support/knowledgecenter/en/SSKTXQ_9.0.1/admin/admin/admin_policy _im_ids.html

In addition, whilst you have policies.users.xml open you can enable the persistent chat feature by setting im.persistentChatEnabled to “1”.

Our last step in this configuration is making sure Sametime knows how to reach MongoDB and your new chatlogging database. If you used the default settings in the documentation and as I’ve documented here and MongoDB is installed locally to the Sametime server then you should not need to change any values, but for reference, and in case you do, the default settings in Sametime.ini are as follows:

[stconvomap]
MONGO_URI=mongodb://127.0.0.1:27017
MONGO_DB=chatlogging
MONGO_COLLECTION=EVENTS 

Chatlogging.ini
CL_MONGO_HOST=127.0.0.1
CL_MONGO_PORT=27017
CL_MONGO_USER=sametimeUser
CL_MONGO_PASSWORD=sametime 
CL_MONGO_AUTH_DBNAME=admin CL_MONGO_DBNAME=chatlogging 

Now give everything a restart and confirm that it all works!

In my next blog I’ll be looking at installing the Sametime Proxy Server again without using the System Console so that I can get access to the new web client and the mobile cilents which are part of the Limited Use entitlement.