Interview Questions

Interview Questions

Is there a memory leak in my DataFlowEngine?

During message processing, it is possible for execution groups to continue to grow in memory usage. This could be due to a number of factors and does not necessarily indicate that there is a memory leak. The following link provides information on the Execution group memory growing behavior and the reasons.

Why is my DataFlowEngine memory usage not reducing on the UNIX systems?

DataFlowEngine acquires memory while processing messages through its message flows. The amount of memory required to process messages depends on the size of the messages. After some processing, the DataFlowEngine acquires enough memory that it can internally re-use the memory for all the subsequent messages that are processed through its message flows. The UNIX process holds on to the memory anticipating that it could be required for subsequent processing of messages and to avoid performance impact due to releasing and reacquiring memory.

How can I monitor JVM memory usage of a DataFlowEngine process?

JVM memory usage by an execution group can be monitored using resource statistics. The following Information center page gives more information on this.

Use MBX explorer and/or WebUI to enable and view resource statistics
- Register subscriptions and use command line parameters to monitor the resource statistics
Export the following env variable in the broker service Id's profile and restart the broker to monitor the garbage collection (GC) in broker -
export MQSIJVERBOSE=-verbose:gc

How can I tune JVM heap size for a DataFlowEngine, bip broker and bip http listener processes?

JVM maximum and minimum heap size can be tuned using mqsichangeproperties command. The following online documentation gives more information

How can I monitor memory usage on Windows and UNIX?

At any given point, you can check the memory usage for processes in the following way:
Ctrl-Alt-Delete > Start Task Manager > Processes > Show processes for all users and go to the process "DataFlowEngine" and look at the field "Memory (Private working set)
ps -aelf | grep <PID for DataFlowEngine>
If you want to continuously monitor the memory usage, then the above command may have to be incorporated into a simple shell script.

I see an abend with an out of memory error. What could be causing this failure?

An out of memory error in an abend file indicates the process has terminated as it could not acquire more memory to continue processing. The memory required for processing could be native memory or java heap memory. Investigation would be required to identify why the process was unable to acquire more memory. If using java compute nodes, it is a good practice to tune JVM Heap size for the environment. Refer to the questions below to gain better understanding of this subject to be able to carry out the investigation.

How do I isolate the problem of memory growth to a particular message flow?

Separating the message flows that are deployed to an Execution group into multiple Execution Groups would allow you to recreate the problem with isolated sets of message flows deployed to their own execution groups and thus allow you to identify the specific message flows that may be contributing towards memory growth for that execution group.
To identify a potential memory leak, the same input message should be repeatedly sent into the message flow. When a message flow processes the same input message over and over again, then this should drive the same message flow paths each time. When this happens then we would expect the Data Flow Engine process to plateau very quickly unless the flow had experienced an expected growth.

How can I tell if the out of memory is caused due to the Data Flow Engine running out of JVM Heap size or total process memory?

- When a Data Flow Engine reaches the JVM heap limitations, it typically generates a java core, heap dump along with a java out of memory exception in the EG stderr/stdout files.
When the Data Flow Engine runs out of total memory, it may cause the Data Flow Engine to go down or the system to become un-responsive.

Are there any needs for modifying the system kernel parameters for WMB/IIB?

In WMB/IIB there are no suggested kernel settings for the tuning of an operating system. However, the WebSphere MQ and some database products do, and WMB/IIB runs under the same environment as these. Hence, its best to check and tune your environment as guided by these applications.

How do you set the limit of total memory consumed by the Data Flow Engine process?

There is no functionality within the Broker product to set a maximum memory limit on an execution groups. Operating systems may offer such functionality and the user should look into the ways of doing this on HP-UX. However, it should be noted, if a DataFlowEngine limit is set to a value that it needs to exceed, then it will terminate when the request for storage is refused.

Training 1584572878563621347

Post a Comment


Home item

Blog Archive

Popular Posts

Random Posts

Flickr Photo