In my previous blogs I discussed installing Sametime 10. My installs all ran perfectly except for one point - when I tried to install MongoDB as a service it installed but then wouldn’t start with the service error “1053”, reported as “service did not respond to the start or control request in a timely fashion”.
I thought I had fixed the problem by using another method to install Mongo. From my previous blog:
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
Turns out I should have stuck with the documentation and using “sc” but the 1053 error was caused by two problems - the first was a misprint in the documentation as you can see above, there are two “” after mongod.cfg instead of one so that line should read (with added escape character)
the second problem was in the mongod.cfg file so when Mongo tried to start and read it, it failed.
I had copied the contents of the Mongod.cfg from the documentation into a text file so I didn’t consider that would be an issue but the pasted content removed the spaces and tabs at the beginning of each line in the documentation and that meant my mongod.cfg file wouldn’t work. This is what it should look like, spaces and tabs included.
Once that was complete everything worked perfectly. allowing the service to start in the way Sametime wanted and allowed me to run the command “rs.initiate()” from the Mongo console.
Thank you to Tony Payne @ HCL for working with me on this last week.
The Sametime Proxy Server is needed if you have a Community server you want people to login to using either a web or mobile client, this includes having Sametime awareness for other products such as Verse or Connections. Since I had already installed a Community Server without using a System Console I now wanted to add a Sametime Proxy Server with as minimal additional software as possible.
The Sametime Proxy server uses a DB2 database for iOS push notifications. If you don’t create that database the server will work in every other way but you won’t have working push notifications to iOS devices. You can create the database on any DB2 10.x or 11.x server but if you don’t have DB2 your Sametime license includes entitlement to a limited for Sametime only use license of DB2 10.5 (at least that’s what is in the download).
To start we need to install Installation Manager. Installation Manager is a package management software that will be used to install WebSphere and the Sametime Proxy Server on top of it. The Sametime download comes with version 1.6.2 but you are going to want to upgrade that to at least 1.8.6 before installing anything. Once Installation Manager is installed we need to install WebSphere 8.5.5 fixpack 14. Don’t worry about the fixpack download for now, if you have internet access during the install that can be done automatically so you will want to start by extracting each of the three WebSphere installers to a directory on your file system. It doesn’t matter which one. I extracted mine to C:\Software\WAS855. This is just the install directory so you don’t need to keep it once the install is complete.
Now we need to add a repository under Installation Manager so it can find the installer for WebSphere. The installer file is always repository.config so I added a respository (File - Preferences) and pointed to c:\software\was855\repository.config
Once the repository is added I can choose “Install” from the main Installation Manager menu and I will be presented with the option to install WebSphere 8.5.5. As you can see it has automatically checked Version 8.5.5.0 and I have checked “Show all versions” so I can install Fixpack 14 directly during this one install step.
Now the WebSphere install is complete we can proceed to installing the Sametime Proxy Server. In my design it’s a standalone server so has no deployment manager or System Console. The instructions to do this require us to perform a silent install which means using a response file specifying the configuration that is accessed from outside the Installation Manager GUI.
The extracted installer for the Sametime Proxy Server contains a response file we can edit for our own install. My response file was in
C:\Software\SametimeProxyServer\responseFiles and was called ip.rsp.
I took a copy of that file and made my own changes - see the bottom of this blog for my ip.rsp file but one very important consideration is that in the sample ip.rsp the default password of “wasadmin” is set. If you run the install without changing that you will end up with a login of wasadmin and a password of wasadmin.
zN39fpCc9SqIryGJM7+02A== is the encoded value of “wasadmin”, you must enter the encoded value of the password you want to set in the response file. To generate the encoded value before adding it to the response file you use the “generateEncodedPassword” utility which can be found in your Sametime Proxy Server extracted install e.g.
From the IBM Installaton Manager install directory (C:\IBM\Installation Manager for me) I ran
C:\Software\SametimeProxyServer\GeneratedEncodedPassword\GenerateEncodedPassword.bat gabpass >pw.txt - which generates the encoded value for “gabpass” and writes it to the pw.txt text file as “rNFGfQ/sPi082+AaXFMNxA==. I write the value to a text file so I can have it recorded whilst I complete the next step.
I can then modify the value of <data key=’user.com.ibm.lotus.sametime.proxyserver.was.password’ value=’rNFGfQ/sPi082+AaXFMNxA==’/>
Important note; do not try and use special characters in your WebSphere passwords especially @ and !.
Now we are ready to run the silent install from the eclipse directory where Installation Manager is installed e.g c:\IBM\Installation Manager\eclipse using the command
With the install completed successfully we can sign onto the node via https://hostname:9043/ibm/console using the credentials we set in our rsp install file and see the Sametime Proxy Server in place. The community server that the Sametime Proxy connects to was specified in my response file when I did the install.
In my environment I wanted to have the Sametime Proxy Server on port 443 securely and to install my own SSL certificate. To modify the ports for the Samtime Proxy Server click on the server name and choose “ports” under “Communication” then edit the value for “wc_defaulthost_secure”.
Once this step is complete you should be able to connect to Sametime through a mobile client or through the web using the new web client on https://hostname:port/chat
Once the server is installed any changes to the configuration such as which Community server or cluster it should connect to should be changed by directly editing the stproxyconfig.xml file.
I could do that but then I hit a problem in that anyone accessing Sametime via the Proxy Server could send but not receive messages or see any they sent. My next blog “Issues With MongoDB During Sametime Install” explains what happened and how HCL helped me identify and fix it.
For the official install instructions from HCL please see this PDF
My ip.rsp file is shown below as an example. You will need to modify it for your own install.
<?xml version="1.0" encoding="UTF-8"?>
<!--The "acceptLicense" attribute has been deprecated. Use "-acceptLicense" command line option to accept license agreements.-->
<!-- When the repository location is specified as a relative path, the path is interpreted relative to the location of this response file -->
<repository id='IBM® Sametime® Server Platform'>
<!--
The files which are installed in the directory specified by the value of the
user.installlocation relate to WAS installer code.
If the specified directory exists prior to running the installer it must be empty.
Therefore, if you are installing upon an existing copy of WebSphere,
you will probably need to change it from the default value.
-->
<data key='user.installlocation' value='C:/IBM/SametimeServer'/> <!-- This attribute specifies where WebSphere Application Server is already installed. -->
The following two XML elements specify the host and port of the Sametime community server that
you wish to connect to with this Proxy server. You will need to alter it. The host name needs to be the FQDN of the CS The default port to use is 1516, because this is the default port for Virtual Places
server to server communication (1533 is the default for client to server communication_
If you specified that you wish to install a WAS secondary node profile,
you must edit these attributes to match the host name and soap port of the Deployment manager you wish to have your WAS profile managed by If this secondary node is a standalone node, then edit these attributes to match the secondary node's hostname and soap port values.
Uncomment this attribute if you wish the WAS profile to use a hostname other than the default for this machine
if you do specify a hostname it should be the fully qualified domain name (e.g. "servername.domain.com" not "servername") <data key='user.com.ibm.lotus.sametime.proxyserver.hostname' value='HOSTNAME'/>
-->
<!--
The WAS profiles created by the installer will be protected by File based security
for the System Console. The following two XML elements specify the username & password
that can be used to login to the WAS System Console.It is not allowed to omit these elements.
For security reasons you do not store the password in plain text. Instead you can use
the generateEncodedPassword utility contained in the kit to generated an encoded form of the password
For example 'zN39fpCc9SqIryGJM7+02A==' is equivalent to a password of 'wasadmin' It is not possible to choose LDAP security during install, but this can be
The default is to name the WAS cell <HOSTSHORTNAME>ProxyCell
and to name the WAS node <HOSTSHORTNAME>ProxyNode
but you can over-ride the defaults by un-commenting the following parameters <data key='user.com.ibm.lotus.sametime.proxyserver.cellname' value='HOSTNAMEProxyCell'/>