IBM DataPower Operations Dashboard v1.0.8.5

Note: A more recent version of DPOD is available. See DPOD Documentation for the latest documentation.

WS-M large payloads are not displayed

Symptoms

Some transactions are not showing WS-M Payloads, even though WS-M subscription was requested for them. 

In /logs/wsmAgents/agent-flume_MonTier-WsmAgent-X.log  (where X is the number of the DPOD WSM agent you use), you will see the following message(s):

12/07/2016 02:12:29,852- WARN o.m.a.f.h.NHttpFileServer [I/O-dispatch-3] wsmHttpSource1 -98b515b9-ed96-45dd-a999-248f6f19f1a3- Request ignored - With size 18615431 that  limit 10485760 


Overview

Each WS-M event contains 4 payloads: Front-End request, Back-End request, Back-End response and Front-End response, the size of a single event equals to the size of all 4 payloads combined.
The DataPower batches several transactions (WS-M events) together before sending them to DPOD as a single request. The default setting is grouping 20 events together.

DPOD's WS-M Agent sets a size limit for incoming request. The default limit is 10mb, meaning DPOD will drop any requests that are larger than 10mb

Using those defaults may cause DPOD to drop requests. Consider the case where transaction payload size is 1mb (300kb back-end and front-end requests, and 200kb back-end and front-end responses). With the defaults in place, DataPower groups 20 transactions before sending them to DPOD. This will generate a total request size will of 20mb. DPOD will then drop this request (As it exceeds the 10mb limit) and will not show the payloads.


Changing how many payloads the DataPower will batch together

Both the number of transactions DataPower groups and sends to DPOD with each batch and the maximum batch size are configurable in DPOD (and not in the DataPower).

Change the following system parameters:
WS-M Subscription Push Max Elements  - Number of transactions DataPower groups together (the default is 20)
WS-M Subscription Max Envelope Size - Maximum batch size that the DataPower will send to DPOD (the default is 10485760 = 10mb)


Changing the max batch size DPOD can handle
 

You will need to stop DPOD WSM agent from the CLI before changing the following values, and restart it afterwards.

edit /app/flume/wsm_agents/conf/MonTier-WsmAgent-X/flume_wsm.conf  (where X is the number of the WSM Agent you want to effect)

The relevant configuration key is:
MonTier-WsmAgent-X.sources.wsmHttpSource1.requestSizeLimitInBytes   - max batch size that DPOD will process (the default is 10485760 = 10mb)

 

Best Practices

It is better to lower the number of the batched payloads (wdp.wsm.push.max_elements) than to increase the batch size DPOD can accept (wdp.wsm.push.max_envelope_size and wsmHttpSource1.requestSizeLimitInBytes). Making more smaller requests allows both the DataPower and DPOD to work in parallel and requires less memory on both appliances. Specifically, setting wsmHttpSource1.requestSizeLimitInBytes to a high value may put some stress on DataPower and DPOD machines with a low amount of RAM.
 

In cases where specific transaction/batch of transaction is larger than 10mb, try and raise the limit only for one specific WS-M agent and selecting this agent when subscribing to WS-M.


IBM DataPower Operations Dashboard (DPOD) v1.0.8.5