← Back to Resources

Common AwareIM Performance Issues and Fixes: A Developer's Diagnostic Guide

AIMDesk Engineering Team (Performance Optimization Group)•2026-10-18•7 min read

As AwareIM applications scale in record volume and concurrency, performance bottlenecks inevitably emerge. Learn how to pinpoint slow queries, eliminate rule evaluation loops, and tune server infrastructure.

1. Recursive Rule Evaluation Loops

The most common cause of high CPU utilization and sluggish user interactions in AwareIM is unintended rule recursion. When a rule modifies an attribute on an object, AwareIM re-evaluates all rules that depend on that attribute. If rule A modifies attribute X, which triggers rule B, which in turn modifies attribute Y read by rule A, a resource-intensive loop occurs.

Diagnostic fix: Inspect the AwareIM execution log (AwareIM.log or Server.log in the logging settings). Look for repetitive rule execution sequences. Refactor rules to utilize 'Rule Prioritization', add strict condition guards (e.g., 'IF Object.Status WAS CHANGED TO...'), or move non-immediate logic into scheduled background processes.

2. Unindexed Database Queries in FIND Actions

AwareIM provides a natural-language query syntax (e.g., FIND Customer WHERE Customer.Status = 'Active'). However, the AwareIM query builder transforms these expressions into raw SQL SELECT statements.

When tables grow past tens of thousands of rows, queries lacking composite database indexes force full table scans, stalling concurrent database worker threads.

Diagnostic fix: Enable the SQL slow query log on your MariaDB, MySQL, or SQL Server database. Identify queries taking longer than 200ms. Create targeted B-tree indexes on frequently filtered attributes, foreign key columns, and sort fields directly in the database engine.

3. Tomcat JVM Memory Allocation and Garbage Collection

AwareIM runs inside a Java Virtual Machine (JVM) orchestrated by Apache Tomcat. Default memory allocations (often 2GB–4GB) are inadequate for enterprise production environments handling concurrent user sessions and heavy batch jobs.

When heap memory approaches saturation, the JVM triggers aggressive stop-the-world Garbage Collection pauses, making the application appear completely unresponsive.

Diagnostic fix: Review your AwareIM installation wrapper.conf or setenv.bat/sh. Scale maximum heap space (-Xmx) appropriately based on available server RAM. Implement modern Garbage Collection algorithms such as G1GC (-XX:+UseG1GC) to minimize collection latency.

4. Resource-Heavy Document Generation

Generating large JasperReports, PDF invoices, and automated Excel exports inside the primary request-response cycle can block Tomcat worker threads and exhaust memory buffers.

Diagnostic fix: Offload intensive document generation to background processes using AwareIM's asynchronous process execution (EXECUTE PROCESS ... ASYNCHRONOUSLY) or scheduled services, ensuring interactive user perspectives remain fluid and responsive.

Need Expert AwareIM Development or Troubleshooting?

AIMDesk provides private, SLA-backed AwareIM support, version migrations, performance tuning, and dedicated developers in USD.