About Me

About Me
Working with SOA technologies , implementing solution using IBM BPM , IBM Integration Designer,IBM WODM and IBM DataPower

About me

View Mahesh Dondeti's profile on LinkedIn

upcoming posts on IBM Bluemix,Devops,Worklight,Node js.

Friday, 15 August 2014

Throttle Settings to avoid timeout issues in Data Power XI52





Throttle Settings to avoid timeout issues in Data Power XI52




Hello friends I would like to share resolution for time out issue by tuning throttle settings in Data Power XI52.
Time out issue may occurs in below cases
  • Backend service becomes slower to respond.
  • While configuring huge WSDL  in WS Proxy.
  • While dealing with HTTPS,ODBC…etc .
Latency and timeouts:-
Latency and timeouts are important factors in memory consumption. Consider a typical scenario in which requests are being processed through DataPower and onto a backend service. Transaction rates are high, throughput is as expected. Now consider that the backend service becomes slower to respond, but it is responding and not timing out. Requests come into DataPower at the previous rates, unaware of the slowdown occurring on downstream services. But, the transactions are not completing until the response is received from the backend and potentially processed within a response rule. DataPower must maintain the request data and variables produced during response rule processing.
In addition, latencies may not be associated with the service's "backend", but by other endpoints accessed during request or response rule processing. There are a variety of interactions that may take place. Logging, authentication, orchestrations, or other integration services may be called. If they are slow to respond, the transactions are slow to complete. If transactions are accepted at a continuous rate, they begin to queue up in an active and incomplete status. These transactions hold onto resources until they complete.
Backend timeout values are set at the service. The default values are typically 180 seconds and controls initial connections and the maintenance of connections between transactions. User agent settings (which are identified from the service's XML Manager Object) are used to specify the timeout values of "off-box" or inter-rule requests. The default value is 300 seconds. This is probably too much and more restrictive values should be used, allowing connections to fail when connections cannot be made in a realistic time. Timeouts vary between endpoint types (HTTPS, ODBC, and so on) and may be dynamically altered using extension functions. Consult the product documentation for your specific service configuration.
Timeouts may be identified by log messages and analyzed through the use of log targets, which consume these events. Latencies are potentially more insidious. You may not be aware of increases in latencies (unless you are monitoring these values). However, you may use monitoring techniques, such as SNMP monitors to query service rates and duration monitors. Some customers will utilize latency calculators through XSLT and potentially create log message, which again can be consumed by log targets for dynamic configuration or analysis.
Throttling
DataPower constantly monitors system resources, including memory and CPU. To avoid an excessive use of resources, throttle settings allow for a temporary hold on incoming transactions until the constraint is relieved. Using these throttle settings allow for in-flight transaction to complete before additional transactions are accepted. In a typical high availability environment, transactions are processed by other appliances in the HA peer group, relieving load on the saturated appliance. Figure 8 shows the default values for throttling. In this example, when memory is at 20% of available memory, the firmware waits "timeout" seconds and then reevaluates the memory. If the memory constraint has not cleared, the firmware restarts. If at any time memory falls below the "Terminate At" value, an immediate restart occurs.
 DataPower memory throttle settings
 








You can use the backlog queue to hold incoming transactions while waiting for the resource freeing. The "Backlog Size" number or transactions (currently limited to 500) can be queued for a maximum of "Backlog Timeout" seconds. If the backlog size is at its default of "0", transactions are immediately rejected during throttling. As the throttle process evaluates memory and other resources, it can be configured to produce detailed log messages. Setting the "Status Log" to "on" from its default of "off" produces messages like those shown in Listing 1. Memory, Port, Free space, and File System snapshots are captured. As with all log messages, you can send these events to a process for further processing. That process can, for example, be another DataPower service that executes XML management commands to modify the configuration settings.
Listing 1. Example of throttle status log entries


1,20130407T125910Z,default,usage,info,throttle,Throttler,0,,0x0,,,
 "Memory(3923046/4194304kB 93.5% free) Pool(250) Ports(872/874)
 Temporary-FS(158771/202433MB 78.4% free) File(OK)"
1,20130407T125910Z,default,usage,info,throttle,Throttler,0,,0x0,,,
 "XML-Names Prefix(2/65535 100.0% free) URI(83/65535 99.9% free)
 Local(1374/65535 97.9% free)"
1,20130407T125931Z,default,usage,info,throttle,Throttler,0,,0x0,,,
 "Memory(3920133/4194304kB 93.5% free) Pool(417) Ports(872/874)
 Temporary-FS(158771/202433MB 78.4% free) File(OK)"
You now understand some of the resources available to you. You see how the memory data is used to dive into domains, services, and individual actions to see where memory resources are being consumed.
I hope this post helps you. So far this is my best effort to explain. Please correct me if  I am wrong.

Please share your valuable suggestions and feedback to my mail id"mdondetisbit@gmail.com" to improve myself.
Please post any issues/query’s related to BPM,WODM and DATAPOWER  to "mdondetisbit@gmail.com


1 comment:

  1. Hi mahesh...i am getting times out connection in datapower..what exactly i nees to do...can you make your answer simply.

    ReplyDelete