Or what they don't tell you in the installation manual...

I have a special bond with Sametime Advanced. Back in 2002 when I was still an e-advocate in IBM, working in the Collaborative Computing Team, I showed people the technology that the Webahead team was working on. One of these tools was Ginie. A tool that made it possible to ask questions to a large group of IBM employees, do QuickPolls etc. Later on, this technology was renamed to the IBM Community tools. It however still took 6 years for this technology to become commercially available as Lotus Sametime Advanced. One important component of Ginie/IBM Community Tools is regretfully still missing in Sametime Advanced. A great motivator for people to use skilltap and answer questions of others was the ranking list. If you sent out a question through Skilltap and people responded, you had to mark their answers. The points which people got determined their rating and a website showed the rating of the top 10 people in IBM. The number one in each month would get something like a sweatshirt. I would love to see something similar in Sametime Advanced, cause I believe it are things like that which motivate people extra to use the tools.

This article however is not about the past of Sametime Advanced or even the tools that are part of it. It's about the installation of both the server and client components. I had the "pleasure" of creating a Proof of Concept server lately and I've struggled hard to get it working. Although there's quite an extended amount of documentation, this documentation proved to be lacking in a number of areas. My goal is to describe the extra things you have to do to get Sametime Advanced working besides following the instructions in the afore mentioned instructions.

Issue 1 - no broker
Issue 2 - Securing the connection?
Issue 3 - Installing the Critical Fixpack
Issue 4 - Using the common name to login to Sametime Advanced
Issue 5 - After a restart my broker won't come up

A one server install


I've installed Sametime Advanced twice in the past weeks. One real one-server install with Lotus Domino, Sametime Standard, DB2, WebSphere MQ, WebSphere MQ event Broker, WebSphere Application Server and Sametime Advanced on one server. One install where Domino and Sametime standard were installed on a different server. In both cases Sametime Advanced was installed on Windows 2003 server. A one server install is fine for a proff of concept where not too many people will use the Sametime Advanced components. For production uses it's handy to at least install IBM DB2 on a separate server, as that one seems to use the most resources. The documentation handles how to install DB2, WebSphere MQ, the Event Broker, WAS and Sametime Advanced on a single server where DB2, WebSphere MQ and the Event broker are all installed using the prerequisite installer on Windows. If you're installing Sametime Advanced 8.0.1 you'll have to run an update script after this initial install to update these components for version 8.0 to version 8.0.1.

Issue 1 - no broker


After you have installed the prerequisite components you should have three products listening on three separate ports:
  • 50000 IBM DB2
  • 1414 WebSphere MQ
  • 1506 WebSphere Event Broker
In all my installs DB2 and WebSphere MQ were listening on their ports. The event broker however wasn't. Something seems to be wrong with the installer in this regard and it took me a long time figuring out what was wrong and how to fix it. The fix that worked for me was inspired on this "tips" document from IBM and is quite brutal. These are the steps.
1.        Open the WebSphere MQ Event Broker Command Console
( Start -> All programs -> IBM WebSphere Message Brokers 6.0 -> Command Console
2.        In this console type the following commands:
  • mqsistop BRKR_SCCS
  • mqsistop CMGR_SCCS
  • mqsideletebroker BRKR_SCCS
  • mqsideleteconfigmgr CMGR_SCCS -n
    The first 2 commands stop the brokers, the last 2 deletes them. If any command is not successful the first time, try it again. As I said, it's quite brutal. It gets worse though.
3.        Stop the Queue manager and delete it:
  • endmqm sccs.queue.manager
  • dltmqm sccs.queue.manager
4.        Now clean up the broker Database in DB2. To do this open the DB2 Control Center
(Start -> All programs -> IBM DB2 -> DB2COPY1 (default) -> General Administration Tools -> Control Center)
  • Expand the outline until you've selected the BRKRDB database
  • Under the "selected" menu "drop" the database
5.        That was a rather thorough clean. Now we have to restore it all. Start with recreating the BRKRDB:
In a DB2 Command Window (I'm supposing from here onwards that you'll figure out how to open that) type the command:
  • DB2 CREATE DATABASE BRKRDB USING CODESET UTF-8 TERRITORY US
6.        This would be the moment to run a script to restore the queue and brokers, however we're going to delay that as there's something else that normally would be done later, but is much easier to do now. There's a Critical Fixpack available for Lotus Sametime Advanced. If you haven't done so yet, download this fixpack and unpack it somwhere. If you do everything according to the manual you would find that you get stuck at step 4, as you can't replace the file. At this time with the Queue deleted, you can. Therefore perform step 4:
Step 4: Replace the SametimePlusExits.jar on the Event Broker server
--------------------------------------------------------------------
Next, you must replace a JAR file on the computer hosting WebSphere Event Broker.
1. On the Event Broker server, locate the SametimePlusExits.jar.
Typically, it is located in the "classes" folder in the Event Broker install path. For example, on Windows: C:\Program Files\IBM\MQSI\6.0\classes
2. Back up the existing jar by renaming it (for example, SametimePlusExits.bak)
3. Copy the new SametimePlusExits-8.0.1.jar into that folder. (located in the Fixpack folder)
4. Rename the new SametimePlusExits-8.0.1.jar to SametimePlusExits.jar

Ok, that's done. Now continue with restoring the Queue and brokers.
7.        Open the directory where you unpacked Lotus Sametime Advanced (if you haven't yet unpacked Lotus Sametime Advanced, now is the time to do it) and go to the directory \SupportingFiles\EB-V60-image. You'll see that there's a script called "ConfigureEB.bat" in this directory. We're going to use this script but it contains a flaw. It expects a certain file in that directory which isn't there by default, so we're going to put it there. Still in Windows Explorer, open the st-adv-jars-EB directory, find the file "realtime1506.bar" and copy it to the parent directory ( \SupportingFiles\EB-V60-image ). Now we're ready to run the script.
8.        In the \SupportingFiles\EB-V60-image directory open a command prompt. Run the script from the command prompt. The command should look something like:
ConfigureEB.bat -hostname stadv.martdj.nl -userid mqsi -userpassword p@ssword -dbinstallpath "C:\Program Files\IBM\SQLLIB" -dbusername db2admin -dbpassword passw0rd -dbname BRKRDB -mqsiinstallpath "C:\Program Files\IBM\MQSI\6.0" -stadvserver stadv.martdj.nl
9.        If the script ran successfully, check your listener ports. If everything went well you should find the broker listening on port 1506. Time to install Sametime Advanced

Issue 2 - Securing the connection?


If you follow the manual you'll get the step 5 after installing the prerequisite components: "Enable a secure connection (using SSL) between the Broker and IBM WebSphere Application Server by editing the exitSetting.ini file and modifying the following URLs to use "https" protocol"
The tip here is to change 2 lines in this ini file:
* servletURL:
servletURL=https://sales3.acme.com:443/cas/oc
* jsecurityURL:
jsecurityURL=https://sales3.acme.com:443/stadvanced/j_security_check
This assumes that you're going to install IBM HTTP Server. Otherwise you won't find those components on port 443. they should have used port 9443. However, if the broker and WAS are on the same server, I don't actually see a reason to secure this connection. I left it at port 9080 with http instead of https.

Issue 3 - Installing the Critical Fixpack


If you didn't have any problems with the broker, you probably didn't follow the instructions in step 6 there, so you'll run into problems in step 4 of trying to install the Critical Fixpack. The clue here is that you have to stop the brokers and queue. In a WebSphere MQ Event Broker Command Window, type the following commands:
  • mqsistop BRKR_SCCS
  • mqsistop CMGR_SCCS
  • endmqm sccs.queue.manager
Now you should be able to rename the SametimePlusExits.jar file. After you're done, restart the queue and brokers:
  • strmqm sccs.queue.manager
  • mqsistart BRKR_SCCS
  • mqsistart CMGR_SCCS

Issue 4 - Using the common name to login to Sametime Advanced


If you've followed the manual exactly, you will have used "mail" as the LDAP attribute for logging in into Sametime Advanced. This attribute refers to the Internet Address, while many people use their common name to log into Sametime Standard. If you would use your common name in the Sametime Connect Client, you wouldn't login into the Sametime Advanced components (unless you've configured SSO). Therefore it can be handy to configure Sametime Advanced to use multiple attributes for logging in. If you're familiar with WebSphere, you would probably know how to do this, but I think many people who install Sametime Advanced are more Domino people and wouldn't where to find this option in WebSphere.
To configure this, go to the Administrative Console for WebSphere Application Server (use for example this url on the server where WebSphere is installed: http://localhost:9060/ibm/console) and login. Then go to "Secure administration, applications, and infrastructure. Under User account repository you'll find the available realm definitions and a configure button. Press that button.
You'll get an overview of the configured LDAP directories. Choose the directory that corresponds to your LDAP directory. It should have LDAP1 as repository identifier. Click this link.
In the next screen you'll find the field login properties. Here you can assign multiple attributes for logging in. Separate them with a ";". My line is "mail;cn;uid" which is the Internet addess, Common name and anything in the Shortname field. If you've set it to your preferences, press OK and Save.







Issue 5 - After a restart my broker won't come up


The manual describes how to automatically start the services. It however forgets to mention that in order to start the queue automatically you have to configure this in WebSphere MQ. Open the WebSphere MQ Explorer. Under Queue managers you'll find your sccs queue. Open the properties of this queue (right mouse->Properties) select  "automatic" for startup and press apply.


Those were the main issues I encountered. Hopefully with this extra information you'll have less work in getting your Sametime Advanced installation to work. Let me know if you have any questions.

Posted by Martijn de Jong on 7 June 2009

Many common development techniques can cause dramatic effects when your application is rolled out over hundreds of servers. As a developer, you need a good understanding of certain parts of the infrastructure to build an application designed for wide-scale deployment. System administrators who review applications before deployment should know what to look for in the code to prevent problems when rolled out to production. This session takes a look at the area where Application Development and System Administration come together. You will hear about real-life problems, view examples of bad code as well as good code, and learn what you should consider when you have to develop or deploy an application which will be rolled out in a large-scale deployment, or how to "harden" your code to support large quantities of documents.**

Swan - Mockingbird, Wednessday 21-1-2009 13:30 - 14:30

The presentation is on Slideshare, so you can download the odp version there. The pdf of the presentation and the example database can be found here.


Posted by Martijn de Jong on 28 January 2009

Last week the anual Lotusphere conference was held in Orlando, Florida. This year I was a speaker at the conference with a subject in the Best practices track: BP101 10 Things to Consider when Developing & Deploying Applications in Large Scale Environments.
Back in September, Mac Guidera, the new track manager of the Best practices track, had decided that in order to give new faces a chance there would be a voting on the session abstracts using IdeaJam. My topic ended as the No.6 of about 45 entered ideas. Apparently there were many more abstracts submitted in the Best Practices track, but in November I got the result: My session abstract was accepted. Since then I've been working very hard to create a good presentation. I had a total of 4 practice session, before I finally had my moment of fame during this year's Lotusphere.

My session was about my experiences while working as a developer for the Messaging & Groupware architecture team of ABN AMRO in the Netherlands. With 500+ servers and over 135.000 users in a single domain they are on of the largest Domino domains in the world. Developing for that domain has been quite challenging, especially since many of the application that I and my colleague (there's just the two of us as developers in this team) develop run on a large portion of or even all the Domino servers in the domain. A little mistake can have huge consequences. The presentation focussed on developing from an infrastructure perspective. An area which you hardly hear about and on which there's very little documentation.

Wednessday the 21st of January 2009 I delivered my presentation BP101 10 Things To Consider when Developing & Deploying Applications in a Large Scale Environment. I presented in the Mockingbird room in the Swan. There was a good crowd in the room and although the majority of the visitors were Application Developers, there were also a couple of infrastructure people, which was exactly the mix of people I had hoped to reach. The presentation went well to my own feeling. I did have quite a bit of time left at the end as there weren't any questions, but otherwise I was quite happy. In hindsight I could have tried to fill that time by inviting people to tell their stories on the subject. That could have made an interesting discussion. Maybe another time. Maybe even a subject for a BoF session next year...

It being my first time as speaker at Lotusphere, made it very special to me. I just love the people who attend the event and being allowed to give them my view on Best practices development techniques felt as a great honor. So far the evaluations have been very positive. Some quotes from the feedback I got:

"really nice presentation, more than helpfull, very pragmatic"
"Enjoyed the presentation a lot"

For me it was a very enjoyable experience which I hope to repeat next year.

The Lotusphere online team has been giving me some grief regretfully on putting my presentation online. Initially they put Paul Mooney's Adminblast presentation with mine. After I filed a support ticket for that they removed the presentation, but didn't put up mine. Last week Thursday after the closing session I looked them up in the Oceanic room in the Dolphin and handed them my odp presentation file. It took a while but since today the presentation can be found at the Lotusphere online site.
I also created an example database for this presentation. This one can be downloaded here.

Posted by Martijn de Jong on 27 January 2009

A new Homepage

14-01-2009

My Old HomepageAlmost 10 years ago I made my first appearance on the World Wide Web with my own homepage. The goal of this site at the time was to create a place for friends and family to read about my adventures in South Africa, as just days after I created my site, I went to Stellenbosch to study for a year. During that year I published quite a few articles, which I referred to in an old fashioned link style (you can still find the articles under the South Africa section). As the site didn't have a clear purpose anymore when I returned a year later, I didn't really bother keeping it up to date and it has been like that ever since.

My Flash effort HomepageIn 2003 I decided I wanted to learn to develop in Flash. As a project I tried to create a new homepage. The goal of this page was to provide information on me, but more importantly on South Africa for travellers and people who, just like me, wanted to study there as a foreign student. I never got that far however as I lacked a good book to learn how to split a site into several files and how to create a site that was easy to update. The result of my effort is still available though and I'm still quite fond of the design (if you take a look at it, the Game Reserves section is the only part that works). As that site never got finished, my old homepage stayed my main page. Now 10 years later it's time for a new site. The direct reason this time was another foreign trip, though far shorter. In January 2009 I'll be a speaker at the Lotusphere conference in Orlando. On my presentation is actually a link to a file on my network, which might lead people to checking out the site behind this link. As I really couldn't show a 10 year old site there, I decided to finally create this page.

A lot has changed in 10 years. Where 10 years ago, it was common for personal sites to have a static page with information about yourself and some links to stuff you like. Nowadays you are expected to write whole stories about what you think and why. If you'd like people to return to your site, you'd have to pick a specific subject on which you are some kind of expert to regulary write about and find a way to attract those people who are interested in that subject as well. To really get your site going, people should have the chance these days to react on your articles.
You won't hear me complaining though. I use a lot of social tools myself, like Twitter, Facebook, Hyves, LinkedIn and I'm a big fan and blogger on my company's internal Lotus Connections. I wouldn't visit a static homepage more than once myself either. Coming up with a good topic to discuss on your own personal homepage is not that easy though. My main personal interests are, next to my wife and kid, South Africa, Lotus Products and Movies. It will therefore be these topics you'll find me blogging about.

I've mentioned the word blogging now. I decided that I'll go with the modern trend and let my homepage be a blog site. As technology behind this blog site I choose my faithful Domino server and a blog site based on the Domino Blog template that was designed by Steve Castledine. Although I'm a web designer myself, I didn't have the time to design a whole new website design, so I browsed the internet for free designs and found this template by NodeThirtyThree Designs. I still have to change quite a lot to get it working in the IBM blog template and to show like I wanted, but it saved me a lot of time to have a base template. Thanks NodeThirtyThree guys for that!

Enough for this first article. Let's get this website and start and see where it'll go!

Posted by Martijn de Jong on 14 January 2009