IBM Maximo: System Properties para Monitor e diagnosticar problemas de Performance

Por padrão Maximo é configurado para avisar se as consultas SQL demoram muito para serem executadas. Os avisos são assim:

[WARN] [MAXIMO] BMXAA6720W - USER = (SMITHJ) SPID = (70) app (WOTRACK) object (WORKORDER) : select * from WORKORDER (execution took 30000 milliseconds)

Mais detalhes em IBM Maximo: BMXAA6720W - Slow SQL Entries

Mas podemos adicionar propriedades que nos auxiliem para Monitor e diagnosticar problemas de Performance.

= Principais propriedades =

As propriedades:


 * mxe.db.LogSQLTimeLimit,
 * mxe.db.FetchResultLogLimit,
 * MBOCount,
 * mxe.db.logSQLPlan e
 * mxe.db.sqlTableScanExclude

podem ser definidas para solucionar problemas ou monitorar desempenho e uso de memória em aplicativos Maximo e TPAE.

1. Abra o aplicativo Logging. System Configuration -> Plataform Configuration -> Logging

2. Defina o Root Logger in Logging para INFO e altere o Appender para Rolling. More Actions -> Manage Maximo Root Logger

3. Defina o tamanho do arquivo Rolling Appender para 20 (megabytes) e Backup Index para 24. More Actions -> Manage Appenders

4. Salve as configurações. More Actions -> Apply the settings

5. Abra o System Properties. System Configuration -> Plataform Configuration -> System Properties

6. Defina


 * mxe.db.logSQLTimeLimit=1000


 * mxe.mbocount=1


 * mxe.db.fetchResultLogLimit=200


 * Note: The default value is 1000, but in cases where memory is being exhausted by Maximo Business Objects (MBO) in memory, 1000 might not be sufficiently granular to capture the process responsible for loading the objects. See the description here.

7. Depois que as três propriedades forem atualizadas, selecione a propriedade, escolha select Action or Common Actions -> Live Refresh.

= Importante =

O uso das propriedades FetchResultLogLimit, LogSQLTimeLimit e MBOCount tem impacto mínimo ou nenhum impacto no desempenho. A IBM recomenda que essas três configurações sempre sejam ativadas para auxiliar na resolução de problemas quando surge um problema que precisa de eventos capturados por registro.

No entanto, as propriedades mxe.db.logSQLPlan e mxe.db.sqlTableScanExclude (somente banco de dados Oracle) AFETAM o desempenho e devem ser usadas apenas quando necessário.

= Propriedades =


 * mxe.db.fetchResultLogLimit - This property is used to capture the number of objects a Maximo Business Object (MBO) loads while it is processing. It is common for a MBO to load several thousand objects temporarily and then release them; however, loading 60,000 or more objects might indicate a problem. The value of the property is the number of objects loaded before an entry is written to the log entry. For example, setting mxe.db.fetchResultLogLimit to 1000 means log entries will be written as 1000, 2000, 3000, objects are loaded into any single MBO set. For troubleshooting performance and memory problems, set this property's value to 200. When performance and memory are not an issue, set this value to 1000. This property does not impact performance but can impact log readability.

Note: We recommended against setting loggers to DEBUG unless requested by IBM support. Setting root loggers to DEBUG is different from setting these specific "debug" properties. Keep these three properties enabled in all environments.


 * mxe.db.logSQLTimeLimit - This property is used to capture SQL statements that take longer than the specified amount of time to return, which is expected to be less than one second. If you notice performance problems, set this property to capture long running SQL, which helps determine whether database tuning is required. The number associated with this property is milliseconds (1000 milliseconds = 1 second). This property does not impact performance, but the lower the value (a time period), the more SQL Statements are written to the logs. Writing many SQL statements to the log affects log readability.


 * mxe.mbocount - This property is used to capture snapshot intervals of memory usage. The MBOCount is useful in identifying trends of memory usage and release. Typically a log would show objects growing and shrinking as usage differed on the server. If objects are not released or the count grows continually, that is a sign of a memory leak. Many things including bad data, custom code, incorrect environment configuration, and bugs can cause memory leaks. The most important thing about fixing a memory leak is identifying it. This property does not impact performance.


 * mxe.db.logSQLPlan - This property is only available in when Oracle is used as the Maximo database. This property logs the execution plan for all SQL statements that contains a full table scan. The mxe.db.logSQLPlan property depends on the mxe.db.sqlTableScanExclude property. The mxe.db.logSQLPlan property can affect performance. Use it when needed only.


 * mxe.db.sqlTableScanExclude - This property is only available when Oracle is used as the Maximo database. This property provides exclude criteria for the mxe.db.logSQLPlan property. Tables that do not have indexes and are intended to use a full table scan can be excluded from logging by using this property. Table names are separated by commas and must be entered in uppercase. This property can affect performance. Use it when needed only.

Referência: https://www.ibm.com/support/pages/system-properties-monitor-and-troubleshoot-performance

= Ver também =


 * Artigos sobre IBM Maximo
 * Mais Artigos sobre Cloud / WebDev / Tecnologias