Scenario
For Symphony Development Environment, developer usually have a one host installation that they would run both the ssm and compute host service instance on the same host. If they have Symphony PMC and their own development IDE running, the host is usally very busy and ssm flow control boundary will be hit easily during development testing while flow control usually is not needed. The new job submission will get a similar exception message:
Code:
exception caught ... Domain <System>:A new connection with ID 7ce09faa-0000-1000-c000-000d60078b6a-1192-2176 was rejected because of insufficient system resources. There may be either insufficient memory or virtual address space available to the application. Please adjust the boundaryManagerConfig settings in the application profile.
This results them to change all the flow control settings for BEV_CRITICAL and BEV_HALT. They would have to revert all of them back when it is deployed to the Grid cluster mode.
Code:
<boundaryManagerConfig>
<boundaries>
<boundary elementName="AvailableMemory">
<event name="BEV_PROACTIVE" value="50"/>
<event name="BEV_SEVERE" value="40"/>
<event name="BEV_CRITICAL" value="25"/>
<event name="BEV_HALT" value="15"/>
</boundary>
<boundary elementName="AvailableVirtualAddressSpace">
<event name="BEV_PROACTIVE" value="50"/>
<event name="BEV_SEVERE" value="40"/>
<event name="BEV_CRITICAL" value="25"/>
<event name="BEV_HALT" value="15"/>
</boundary>
</boundaries>
<boundaryManagerConfig>
An alternative is to set a parameter to disable flow control completely by setting
disableFlowControl="true". The application developer only need to change this parameter instead of all flow control settings when it is registered to the Grid mode cluster.
Steps
# Open the application profile (
SampleApp.cpp for example) in an editor.
# In
SOAM>SSM section, add the definition for
disableFlowControl="true".
# Save and register the application using
soamreg command.
Code:
<SOAM version="4.0">
<SSM resReq="" shutDownTimeout="300" startUpTimeout="60" workDir="${EGO_SHARED_TOP}/soam/work" disableFlowControl="true">
Verify your Setting
# Run your client (''AsyncClient'' for example)
# The client should not fail with the exception anymore. You can also check your ssm log to verify.
Reverting the Change
To enable flow control when the application is ready to register to Grid mode:
# Open the application profile (
SampleApp.cpp for example) in an editor.
# In
SOAM>SSM section, change the definition to
disableFlowControl="false" or just remove the
disableFlowControl parameter as default is false.
# Save and register the application using
soamreg command
Code:
<SOAM version="4.0">
<SSM resReq="" shutDownTimeout="300" startUpTimeout="60" workDir="${EGO_SHARED_TOP}/soam/work" disableFlowControl="false">
References
# Symphony Reference > Application Profile > SOAM > SSM section