Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Symptoms

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

Image RemovedImage Added

In /logs/wsmAgents/agent-flume_MonTier-WsmAgent-X.log  (where X is the number of the wsm 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 transaction payload WS-M event contains 4 partspayloads: Front-End request, Back-End request, Back-End response and Front-End response, the size of the payload a single event equals to the size of all 4 partspayloads 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 transactions events together.

DPOD WSM 's WS-M Agent sets a size limit for incoming requests, the default is 10MB, so request. The default limit is 10mb, meaning DPOD will drop any requests that are larger than 10MBAssuming you have a transaction with payload size of 1mb, and the DataPower grouped 20 of them before sending to DPOD, the total request size will be 20 x 1mb  = 20mb , DPOD will drop this request 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 DPOD defaults

You can effect the number of transactions the DataPower will send to DPOD in each batch and the batch size.

edit /app/ui/MonTier-UI/conf/MonTierUI.conf, the relevant configuration keys are:


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
 

Note

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)

 Image Added

Best Practices

It is better to lower the number of the batched payloads (wdp.wsm.push.max_elements  - how many transactions the DataPower will group together
) than to increase the batch size DPOD can accept (wdp.wsm.push.max_envelope_siize 

 

 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.

Image Added