Tuesday, February 7, 2012

Web Performance Exception Reporting

One of the diabolical aspects of n-tier pooled connection processing used in web functions is the degree of difficulty there is trouble-shooting performance issues. The reality of many users sharing the same Unidata session as they make calls across responders make it difficult to untangle who's process is burning up bandwidth and forcing others to queue behind them.
In 7.3 sp3 we added a tune-able performance exception trace based on the RPC History tracing infrastructure used for development debugging.
You can set a performance benchmark in WEB.CONSTANTS defining how long an RPC call must last before being considered a performance exception and also how long to retain the RPC trace information for review.
Later, after activity across the responders, run WEB.PERFORMANCE.EXCPT to see RPC calls that exceeded the defined performance target. The report attempts to display 'important' parameters about what the responder was requested to do.

Since the performance exception logging is built on the RPC History trace tools you can use DEBUG.NET to dig deeper into the 'problem' calls and even re-run them from PWS for debugging and profiling purposes.