Statistics

Tracing facilities are provided to allow server-related information and diagnostics to be output to a central location. It is possible to use this information to collect performance information about client visible Cúram server functions, i.e. any operations invoked by the Cúram web client. However writing trace informational typically has an impact on performance, because the log4j appender should always be configured to maintain the contents after a server crash (for example buffered file access should not be used). For performance benchmarking it is highly desirable that the benchmarking process should not itself impose a performance overhead on the application being measured. For this reason, A way to collect server function performance statistics is provided that imposes less overhead than server tracing, and which produces output in a format more amenable for automated processing as part of benchmark analysis.

To avoid performance overhead on the server output is written to separate log files, one per Session Bean (Cúram Facade) in the application. Each log file has an associated 4Kb memory buffer, so there is a memory overhead imposed by the collection of server benchmarks. It is assumed that a realistic benchmark configuration will involve application server machines with a significant amount of physical memory.

The statistics files are created in the directory specified by the curam.test.trace.statistics.location property if the curam.test.trace.statistics property is set. They are named <MachineName>_<SessionBeanName>_0.<TimeStamp>. Each (tab-delimited) entry in the file contains the following format:

Table 1. Statistics File Elements

Summary

Meaning

Timestamp

This timestamp is in a sortable format (ISO 8601 complete) and indicates the time at which the method was invoked. The International Standard for the representation of dates and times is ISO 8601. It displays the timestamp with the accuracy to seconds. The format of the timestamp is YYYYMMDDTHHMMSS. Note that the "T" appears literally in the string, to indicate the beginning of the time element, as specified in ISO 8601.

Machine name

The name of the application server machine on which this function executed.

Session Bean Name

The name of the statistics class, Statistics, is always printed.

Process ID

Currently hard-coded to zero.

Server function signature

The function signature including class and method name, and method argument types.

Success indicator

A flag indicating whether the server function succeeded with no error returned to the client. A value of 1 indicates success, a value of 0 indicates failure. The specific error message is not recorded

Elapsed time in milliseconds

This is the time spent (in milliseconds) executing this function excluding time spent by the middleware software in dispatching the function call and marshaling arguments