ALERT: Some images may not load properly within the Knowledge Base Article. If you see a broken image, please right-click and select 'Open image in a new tab'. We apologize for this inconvenience.

NMS Messages thread takes 500+MB RAM and causes high CPU


Article ID: 227517


Updated On:


Clarity PPM SaaS Clarity PPM On Premise


BG is taking high RAM or/and high CPU, a single NMS Messages thread can take up 500+MB memory and high CPU utilization/ spikes and process execution gets slower


  1. Enable multiple high-volume update processes on a custom subobject to project
  2. Run the processes, which have 150-500k entries in NMS_MESSAGES table

Expected Results: The load to be normal on the BG service as the select should be paginated/in batches

Actual Results: BG service is fetching the entire 150-500k in the VM, which causes high memory and CPU utilization

In the heap dump, you see 500+MB are taken by a thread doing NMS Messages (not a process but the OOTB action bpm.nms.getMessages)

SQL query:

SELECT /*+ index(NMS_MESSAGES NMS_MESSAGES_N1) */.            *.          FROM.            NMS_MESSAGES .          WHERE.            TOPIC = $1 AND.            ID NOT IN.            (SELECT /*+ index(NMS_MESSAGE_DELIVERY NMS_MESSAGE_DELIVERY_N1) */ MESSAGE_ID.             FROM   NMS_MESSAGE_DELIVERY.             WHERE  TARGET = $2)


Release : 15.9.3, 16.0.0


Fixed in 16.0.1 and also patch as defect DE63094