IQService Memory Consumption Increase After SharePoint Aggregations

Hello Experts,

I observed that the IQService process experiences a slight increase in memory consumption during and after performing account/group aggregation tasks on the SharePoint application. The memory usage does not return to baseline levels post-aggregation, leading to gradual buildup over multiple aggregation runs. This retained memory increases the memory consumption by the IQService over the time. Please help me solve this memory retaining issue.

IdentityIQ Version: 8.4p1

Thanks in advance.

I would open a ticket to support with SailPoint for this as this is out-of-box connector which they support. Also, check if this is added to the application xml for sharepoint app?

To improve the group aggregation performance, add the following entry in the application debug page:

<entry key=“manageDomainGroups” value=“false”/>

SailPoint Microsoft SharePoint Server Connector

Hello @iarab,

Alfi is correct, the next best course of action is to file a Customer Support request. This will enable a SailPoint representative to begin a thorough review of your situation.

For more information filing Customer Support requests, please refer to the community tutorial, How to: Use the SailPoint Support Portal.

Hello @alfi_fulgencio,

Thanks for your reply.

After troubleshooting, I found that memory spikes only at the start of aggregation (likely during initial SharePoint connection), and it doesn’t release afterward. This suggests that the high memory usage occurs during the initial connection to the SharePoint application, and the connection may not be properly closed afterward, causing cached data to persist.

Setting manageSubsites and manageDomainGroups to false didn’t help.

Workaround implemented:

  • Scheduled aggregation to run at midnight (off-hours).
  • Added a rule to restart IQService after aggregation completes.

With IQService behind a load balancer, restarting one instance has no impact on provisioning, especially during low-activity hours.

Here’s the script I used:

import java.io.BufferedReader;
import java.io.InputStreamReader;

StringBuilder response = new StringBuilder();
try {
String cmd = “cmd.exe /c C:\\IQService\\IQService.exe -t”;
//return cmd;
Process process = Runtime.getRuntime().exec(cmd);
// Capture the response
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}

process.waitFor(); // Wait for process to complete
response.toString(); // Return the response as a String

} catch (Exception e) {
e.printStackTrace();
return "Error: " + e.getMessage();
}

This has resolved the memory issue for now.

Regards,
Ibrahim Arab

Hi Ibrahim ,

I would still open a ticket with support for this connector and send them your logs.  They will need to patch the connection memory issue.

Hi @iarab,

Thank you for taking the time to share your solution with the community! We really appreciate your contribution.

To ensure we can properly review the details, reproduce the behavior if needed, and track the issue through our support process, please submit a Customer Support request when you have a chance.

This will allow our support and engineering teams to better understand the scenario, provide additional guidance if required, and ensure the issue is documented and addressed appropriately.

We appreciate your help and look forward to working with you on this.

Thank you for your support and guidance @darylclaude_medina  & @alfi_fulgencio, I have implemented the workaround in my environment and I have also raised the support ticket, as suggested.

Hope for the best!

Hello @iarab,

You’re welcome! I’m glad to hear that you found a potential workaround and that you created a support ticket.

Also, thank you for replying quickly and keeping us updated on your situation.

If you need any additional assistance about this use case, please do not hesitate to let me know. I’ll do my best to help!