My top 3 beginner gotchas with Cognos 11


Working with Maximo, perhaps we all have the same frustration with the constant changes by IBM marketing team who work hard and are very successfully in their attempt to confuse us. The most visible problem is the continuous changes to their website which essentially breaks any links from external sources pointing to their KB pages which are more than a few years old. When I started with Cognos, I realized they have brought it (the confusion part) to the next level with this product. Below are the top 3 gotchas that I had to learn the hard way when I started with this product:

Gotcha #1: Cognos Business Intelligence vs Cognos Analytics
From Version 11, IBM started calling it Cognos Analytics. Previous versions were called Cognos Business Intelligence. This does not seem like a big problem when scratching the surface. But as a beginner, I was totally lost when searching for technical information from the web. Initially, when I read something that mentions Cognos BI or Cognos Analytics, to me it meant the same thing “Cognos”. In many cases, I didn’t realize, when talking about changing behaviors or different functionalities, if people mentioned something is available in Cognos Analytics or something is not possible in Cognos BI, they were talking about different versions. I learned this the hard way and thought how much trouble it could have saved me if I knew about this sooner.


BMXAA4017E Error when running custom code


I went in to help this client fixing a few issues in Maximo. There were some pieces of buggy Java code, so I took the opportunities to remove those Java customization and rewrite them with autoscript. One piece of code worked well in DEV but when rolled out to PROD, it did not seem to work. It is triggered by user’s Save event, but executed at "post commit", thus does not give any error on UI. In the log file, it shows error BMXAA4017E “object cannot be saved with the data that was provided” from the mbo.checkQualifiedRestriction method:



Setup Cognos 11 to send email with Gmail (2020)



When I tried to to setup Cognos 11 to send notification via Gmail, it failed because Google blocked access from Unsecured App. Even if I tried to turn off this option and tried again, it still failed because Google automatically turns this setting off again. So I had to create an App Password for my Gmail account to make it works following the steps below:

Step 1: Configure Gmail account
  • Log in to my Gmail account, go to “Manage your Google Account page”, then go to “Security” section
  • Enable 2-Step Verification
  • Once 2-Step Verification is enabled, the App Passwords option will be visible under the 2-Step verification option




Troubleshooting Maximo JVM Out-of-Memory error with Heap Analyzer


Occasionally, Maximo became unavailable for a short period of 5-10 minutes. Alarms were raised, IT help desk was called, and the issue got escalated to the Maximo specialist (you). You logged into the server, checked the log file, and found a Java Out-of-Memory (OOM) issue. Not a big deal, the server usually restarted itself and became available soon after that. You reported back to the business and closed the issue. Does that scenario sound familiar to you?

If such an issue has only occurred to your system once, it was probably treated as a simple problem. But since you had to search for a solution on the web and ended up here, reading this article, probably it has occurred more than once, the business requires it to be treated as a critical incident. As the Maximo specialist, you’ll need to dig deeper to report the root cause of the issue and provide a fix to prevent it from occurring again. Analyzing low level Java issue is not an easy task, and this post describes my process to deal with this issue.

Generate DBC Script for Maximo

This post includes some of my notes on using DBC for deployment of Maximo configuration. In case you wonder why using DBC, the short answer is, if you’re happy with whatever method you’re using to deploy configuration, whether it is manual or using Migration Manager, ignore this post. But if you’re looking for a way to streamline development process for a large team by collaborating and source controlling using GIT, or if you want to fully automate the deployment process, DBC is the way to go.

IBM has been using DBC script for a long time, but only recently, they published a reference guide so third 3rd party consultants like us can use. DBC Script can be used to automate most of the common configuration for Maximo. It has standard commands to create/modify common low-level objects like table, index, domains etc. For many other configurations which don’t have a specific DBC command, we still can handle the deployment using the <freeform> or <insert> statement to put in anything into Maximo DB. Below are some specific notes on certain type of changes:

Send email from automation script

Simple stuff but I got a few people asked me this same question, so here is how to create an automation script to send email from Maximo:

1 - Create a Communication Template:

  • Template ID: MY_COMM_TEMPLATE
  • Description: Test Communication Template
  • Applies To: ASSET

Maximo 7.6 feature - Denial of Service attack

I didn't know about this new feature in Maximo 7.6 until today. Here is the problem: an user reported he's unable to log into Maximo with "BMXAA7901E - You cannot log in at this time" error. Both the Maximo Admin and I could log in using the same userid and password without any problem. After some investigation, it turned out that the user's IP address has been blocked.

This is a new feature in Maximo 7.6 as described by IBM here and here by Mark Robbins.

What interesting is, by looking into the default Maximo's settings, an IP will only be blocked if there are more than 50 failed login attempts made in less than 30 seconds. So it's not possible for a normal user to be blocked by this mechanism.