Skip to content

Blog



Share this:

List Maximo customizations

In this little post I will share few database queries to list the customizations made to your Maximo environment. It also applies to other TPAE based products. Security restrictions SELECT * FROM securityrestrictORDER BY objectname, attributename; Custom objects and attributes

Read more →

April 3, 2013

Maximo performances and network latency

Maximo and other IBM service management products based on TPAE (like SmartCloud Control Desk) can be seen as sitting at the apex of a pyramid that consists of network, hardware, and software services. As you can see, network performance are the foundation of the pyramid. The simplest way of measuring network performances and speed is the ping command. I understand that this is not a professional measuring tool but it is almost always enough accurate for a first troubleshooting.

Read more →

April 2, 2013

How to improve DocLinks performances in Maximo/TPAE applications

During a performance assessment of a production customer environment I have set the mxe.db.logSQLTimeLimit system property to 2000 to log all long-running SQL statements (see this TechNote for details). Looking at the system logs I have noticed many entries like this. select * from doclinks where (ownertable=‘WORKORDER’ and ownerid=1065680) or (ownertable=‘WORKORDER’ and ownerid in (select workorderid from workorder where …) execution took 4653 milliseconds Five seconds each time you view a work order in Work Order Tracking application just to check if the there are any attached document is reeeaaally baaad!

Read more →

March 22, 2013

Is an Object in a workflow?

This entry is part of the Conditional Expressions HowTo. If you need to make a field or an object readonly if it has an active and running workflow you are in right place! All you need is a conditional expression that can be used in conditional UI or data restriction. The following conditional expression evaluate to true if a Work Order is in a workflow. Name: WOINWF Description: True if WO is in WF Expression: exists (select 1 from wfassignment where assignstatus=‘ACTIVE’ and ownertable=‘WORKORDER’ and ownerid=:workorderid ) If you need the opposite behaviour use this other conditional expression.

Read more →

March 21, 2013

Understand and Audit your Maximo Licenses

Maximo licensing model is not simple. In this article I will try to present it the most simple way and to provide some useful tips to perform a licensing audit in your environment. NOTE: The simplification does not consider all the possible versions of Maximo, add-ons, industry solutions, etc. Maximo licensing model IBM Maximo products are typically licensed by users. Currently, the IBM Maximo Asset Management suite offers several levels of licensing options:

Read more →

March 15, 2013

How to enable Axis (Web Services) logging

This entry is part of the Maximo Integration Framework series. Maximo uses the Apache Axis library to call external Web Services. Sometimes could be useful enable the logging for this library instead of sniffing connections and protocols to figure out what is going on. Axis uses Apache commons logging for logging which in turn provides a generic interface to different logging tools (simple log, JDK logging, log4J,…). So the first configuration to set is which logging tool AXIS must use. Such configuration must be done in the commons-logging.properties file which must be placed somewhere in the application server’s CLASSPATH. This file is not delivered by Maximo so if not found the simple log is used by default. Otherwise the properties.jar file could be the right place. In the commons-logging.properties the property org.apache.commons.logging.Log must be set to the class implementation which can be:

Read more →

March 13, 2013

Checkpoints for fixpack and addon installation

Many customers I work with use a procedure like this one to clone Maximo environments between production, test and development environments. When you use such techniques, you may quickly screw up some settings used during installation of Maximo fixpacks and upgrades. Here are some important things to check before installing any release, fixpack or add-on. Maximo properties First of all check the famous maximo.properties file under [SMPDIR]\maximo\applications\maximo\properties folder. The installation shouldn’t use the settings stored in this file but it’s worth checking.

Read more →

March 12, 2013

Quick Maximo assessment

My job brings me across Europe to meet many different customers and work with a vast variety of Maximo environments. One of the most important tasks is to be able to quickly assess a Maximo environment that I have never seen before. How much data? One of the tools I use is a set of SQL queries that simply counts the rows of the most important Maximo tables. With the result of these script I can quickly spot unused features, large tables, and other useful insights. Here is the SQL script. Feel free to use it and to suggest improvements.

Read more →

March 10, 2013

Show current logged users in MAXADMIN's Start Center

A useful portlet (result set) that I typically configure on MAXADMIN’s Start Center is the list of users logged to Maximo server. I use this to perform unplanned system maintenance that requires setting admin mode or restarting the server. To configure this portlet you first have to create the related query. Open Users application, input the following where clause (under Advanced Search menu) and press OK button. userid in (select userid from maxsession where active=1 and issystem!=1) Save the query with the following properties:

Read more →

March 10, 2013

Find all custom triggers on Maximo tables

Before Maximo 6 it was a common practice to implement customizations using database triggers. Although Conditional Expressions, SigOptions, Java coding and scripting are now available in Maximo 7, I still see many Maximo environments with a lot of database triggers. In a recent project I have found a Maximo system with more than 30 triggers and many of these were used to send emails to specific users. Since those emails were sent synchronously during inserts and updates, they were causing lots of performance issues. For consultants like me it may be useful to have a set of SQL statements to run against a Maximo database to have a quick grasp of the level of customizations.

Read more →

February 20, 2013