Free up your parsers with MQSI_FREE_MASTER_PARSERS
vivekgrover 120000FG70 Comments (2) Visits (13053)
As you know, the Input nodes on each of the message flows deployed to the broker parse the incoming messages. As the message flows process multiple messages, they would store the parser and its fields in the in-memory cache of the broker, to re-use the parser upon subsequent arrival of messages. This works well for the performance of the message flows. However, as the parser grows while parsing different fields during message processing and doing multiple parsing for variety of fields in the messages, the DataFlowEngine process memory usage would appear to grow.
To address this problem, the environment variable MQSI
With this environment variable set, parsers and fields are deleted after a message has been processed by the flow. The next message will allocate new parsers and fields as required instead of reusing existing one and hence it reduces the amount of memory required, since they are no longer stored in the parsers. This lowers the memory required by DataFlowEngine process as the parser growth that happens with the multiple parses of a message will not occur.
However, having said that, I would like to mention that there might be some performance implications when you set this, depending on the kind of messages being processed. There are also some known defects with setting this environment variable that have been fixed under the following APARs:
So, you may want to make sure if you are exporting this environment variable, you are not experiencing one of the existing symptoms.
I hope this helps in understanding the need for this environment variable. Let me know if there are any questions.