Stelo Technical Documents

Case Study: Troubleshooting Failure to start some agents (due to memory overcommitted)

Last Update:9 November 2022
Product: SQDR & SQDR Plus
Version: 5.22 and later
Article ID: SQV00PL069

Abstract

Symptoms:

The following problem was encountered on a system with a large number of agents:

  • Some agents were not able to complete their startup - their status shows Start initiated.
  • Trying to retrieve subscription information failed with:
    Request failed.
    An error occurred. Unable to retrieve subscription information
    [jcc] Exception java.net.ConnectionException:
    Error opening socket to server localhost/127.0.0.1 on port 50,000 with message:
    Connection refused: connect. ERRORCODE=-4499, SQLSTATE=08001
  • On a different system (with a large amount of agents but not as much memory), free space on the C: drive would mysteriously disappear (used as swap space) as the agents started up.

However, examining Services control panel showed that Db2 was running.

  • A Windows dialog Your computer is low on memory would occasionally pop up.
  • Examining the memory usage in Task Manager revealed that although actual memory utilization was low (24% - ~16gb of 64gb), the Committed memory was at capacity (70.1/70.2 GB)


  • Examining Details in Task Manager revealed that there were many java processes using only a portion of their Commit size memory - i.e. each java process had Commit size of ~800kb-1gb, even though most had actual memory usage in the area of 128kb.

Solution

The Maximum Java Heap Size is the maximum amount of memory that a Java application can use. Unless explictly defined with the -Xmx parameter, the default value is based on the physical memory of the machine.

Because the size of physical memory was large (64gb), each Java process was requesting and holding on to more memory than it really needs.

  • Edit the Launch Agent configuration (see below) and add the following
    jvmParms=-Xms32m -Xmx128m
  • Restart the Launch Agent from the Services control panel.
  • Monitor actual and committed memory usage in Task Manager and confirm that committed memory usage is no longer at a critical level.

Editing the Launch Agent configuration

Note that the Control Center can be used to view but not modify parameters of the Launch Agent. To edit the Launch Agent configuration, edit the file C:\ProgramData\StarQuest\sqdrplus\conf\sqagent.properties (as administrator) using Notepad or other editing tools.

The simplest way to do this is to right click on the item Launch Agent configuration in the SQDR Plus program group and select Run as Administrator - this will start Notepad in elevated mode.

 

 

 

 



DISCLAIMER

The information in technical documents comes without any warranty or applicability for a specific purpose. The author(s) or distributor(s) will not accept responsibility for any damage incurred directly or indirectly through use of the information contained in these documents. The instructions may need to be modified to be appropriate for the hardware and software that has been installed and configured within a particular organization.  The information in technical documents should be considered only as an example and may include information from various sources, including IBM, Microsoft, and other organizations.