Should we run Cognos on Windows or Linux (or other Unix-based OS)?
It’s a common question I run into when beginning a brand new implementation (or an architectural overall) of Cognos BI. In the past, my response has been something along the lines of “I’m a bit more experienced and comfortable with Windows, but it will run just fine on either.” Essentially, I regurgitated the IBM company line while admitting to a personal bias.
I’ve recently become convinced, however, that personal bias aside; there is an objective “right” answer to this question for about 90% of those asking the question.
My intention in this article is to document a number of reasons why Windows is almost always a better choice than Linux for an IBM Cognos 10 environment.
1. WEB SERVER CONFIGURATION
You know those notes all over the IBM documentation about how they recommend that you use a compiled gateway rather than the CGI gateway for performance/scalability reasons? Of course, I always follow this advice… that is, until a recent project during which we spent a couple weeks (working with very knowledgeable Linux resource) trying to get an Apache compiled gateway working on RHEL 6.5, only to give up and go back to the CGI gateway.
There is a little note in the Cognos documentation that innocuously states: “You cannot use the Apache modules with the version of Apache Server 2.2 that is supplied with Red Hat Enterprise Linux version 5.3 and later.” What it should say is: “Good luck getting an Apache compiled gateway to actually behave correctly with Cognos! It technically should be possible but we don’t know how.”
Yes, it technically should be possible and we plan on revisiting this. But, be aware that to even begin to use Apache on RHEL that you’re going to have to compile from source.
2. SINGLE SIGN-ON
If you want to enable single sign-on utilizing an Active Directory namespace on a Windows-based Cognos installation (assuming an IIS Web Server), you just need to set up a few Cognos Configuration parameters. What about for a Linux-based Cognos installation? Of course, you already have a bit of additional complexity in connecting to your namespace as LDAP rather than Active Directory, but you’re going to encounter a whole lot more because you’re going to have to have to configure the web server itself to authenticate against LDAP (in addition to the Cognos application) so that the REMOTE_USER server variable can be securely populated and made available to Cognos. Getting this to happen automatically and securely is no trivial task… here are a few links that provide information on this process:
3. SQL SERVER ACCESSIBILITY
This one is simple: you cannot access SQL Server databases in Compatibility Query Mode (CQM) from a Linux-based Cognos installation without purchasing third party drivers. The third-party drivers from DataDirect that IBM points you to amount to a significant expense (especially if you are trying to run Linux servers to save money).
Furthermore, if you want to use individual users sign ons to a SQL Server data source, this can take place transparently (via Kerberos) if you’re running on a Windows stack. There is no such option if you’re running on Linux.
Installing Cognos on Linux means that you’re going to have to separately install fonts just to make basic typefaces you would expect to already have available (Arial, Times New Roman, Courier New, etc.) render correctly in all formats (PDF, in particular, requires fonts to be present on the server rendering the output). If you want to use any common Microsoft font outside of those considered “core web fonts” (like Calibri, for instance), then you’re going to have to figure out a licensing arrangement and install those separately as well.
5. MISCELLANEOUS IDIOSYNCRASIES
A few other things you should be prepared to encounter:
- Running Cognos Configuration over X11 can be quite slow. It’s not unusable, and you’re probably not spending THAT much time in Cognos Configuration, but it’s a nuisance.
- According to Cognos documentation, in order to access Cognos system metrics via JMX, just enable via Cognos Configuration. Unfortunately, I recently spent the better part of a two days trying to figure out why I could not connect via JConsole after doing this. After extensive troubleshooting, I was finally able to get it functioning by creating setenv.sh in the Cognos Tomcat/bin folder and adding the line export JAVA_OPTS “-Djava.rmi.server.hostname=127.0.0.1” to it.
- In general, you are going to need to pour over the “Supported Software Environments” site:
( http://www-01.ibm.com/support/docview.wss?uid=swg27037784 ) with a fine tooth comb. Read every footnote and examine every dot release and fix pack mentioned, because depending on your Linux distribution you could (and most likely will) run into some kind of obscure incompatibility. You’ll need to install the precise versions of all supporting software recommended by IBM or you’re going to encounter some headaches.
The bottom line is:
- Cognos was originally developed for Windows and is run more frequently on Windows than Linux and therefore seems to be less susceptible to minor bugs / inconsistencies / idiosyncrasies on that platform.
- There are so many distributions/flavors of UNIX-based operating systems that there may be some issues you encounter which are specific to your distribution that will be difficult to nail down.
6. IBM SUPPORT
If you call IBM support / open a PMR and they need to set up a test to try to replicate your issue, do you know where they are going to do it? In a Windows-based Cognos environment! Sure, they have the ability to set up a Linux environment, but I had a support engineer tell me recently that “they all run on Windows”, and that it required special arrangements for them to set up a Linux environment test system.
This wouldn’t be a problem if Cognos behaved on Linux exactly the same as it does on Windows. In reality, however, that just is not a practical expectation–there are two many variables introduced with a different operating system, different drivers and different supporting software. I recently ran into an issue where the Cognos Gateway was timing out when encountering an unavailable Dispatcher, but IBM support was unable to replicate this behavior in their Windows environment that otherwise mirrored my own (from a Cognos application architecture and version/fixpack standpoint).
7. YOU CAN’T ELIMINATE WINDOWS ENTIRELY ANYWAY
Cognos requires you to have Windows as part of your environment anyway: Framework Manager, Transformer, and Lifecycle Manager are all Windows-based client tools. Sure, you can install these on individual user workstations so they might not require you to maintain separate Windows servers, but one way or another, when you are using Linux, you are going to end up supporting Cognos on multiple operating systems. Also, keep in mind that Framework Manager is going to need to have database drivers installed locally, so if you’re running your Cognos servers on Linux you’re going to need to come up with client drivers for the databases you are querying for two different operating systems. Also, you may end up with both a Windows workstation AND a Linux server for Transformer—one to host the actual client GUI and the other to build the cubes.
Windows vs. Linux: CONCLUSION
So, does this article mean that I think Linux stinks? Of course not–I have no doubt there are plenty of applications out there that run superbly on Linux. Furthermore, if you are creating a home-grown application for your organization then developing for a UNIX-based platform could make a lot of sense.
Furthermore, there ARE still some factors that might push a business towards running Cognos on Linux such as:
- You have more confidence in your Linux support team than your Windows support team
- You truly aren’t a Microsoft shop (if you aren’t using Windows, Active Directory or SQL Server then the benefits of running Cognos on Windows start to dissipate)
- Extensive automation of your environment is a requirement (Automation options specific to Cognos are going to be pretty standard across platforms, but the command-line centric nature of the UNIX generally provides greater control over the automation of all aspects of environment configuration and maintenance.)
But what if you’re already running on Linux? Should you consider a switch to Windows? In general, I would say that if your current environment is running well then don’t change “just to change”. However, if you’re seriously considering this question, I’d encourage you to reach out to PMsquare and share more details about your current environment and the direction of your organization—some factors make such a change worthwhile.
If you’d like more information on how PMsquare can help you enhance the value of your Cognos solution, please reach out to Contact@pmsquare.com. Subscribe to our e-newsletter for more technical articles and updates delivered directly to your inbox.