extractWebStatistics

extractWebStatistics(proc: Process output;
                     jdo:  JadeDynamicObject input;
                     any:  Any);

The extractWebStatistics method of the Process class extracts Web performance statistics from the userInfo part of notifications sent in response to sendWebStatistics method requests, defined in the Process class. The extracted statistics are inserted as attributes in a JadeDynamicObject instance.

The parameters for the extractWebStatistics method are listed in the following table.

Parameter Description
proc An output parameter that receives a reference to the Process instance to which the statistics relate
jdo A JadeDynamicObject instance into which the statistics values are placed as attributes
any The userInfo part of the notification that was received

The calling process is responsible for creating the JadeDynamicObject instance that is used as the jdo parameter. Any existing attributes that the instance has are cleared every time the method is called. If the process that sent the notification is not using Web services, no attributes are added to the JadeDynamicObject instance; otherwise the attributes listed in the following table are added.

Attribute Type
maximumResponseTime Integer64 (milliseconds)
minimumResponseTime Integer64 (milliseconds)
totalRequests Integer64
totalResponseTime Integer64 (milliseconds)
rejectedRequests Integer64

If the any parameter is not recognized as containing encoded Web statistics values, a 1000 exception is raised (Invalid parameter type), a 1002 exception is raised (Invalid parameter value), or a 1137 exception (An internal data packet inconsistency was detected) is raised. This could happen if the any parameter is not the userInfo part of a notification received in response to a sendWebStatistics request.

The following examples show methods for a form to obtain and display information about Web statistics.

load() updating;
begin
    //register to receive Web statistics
    beginNotification(process, Process_Web_Stats_Event,
                      Response_Continuous, 0);
end;

unload() updating;
begin
    endNotification(process, Process_Web_Stats_Event);
end;

userNotify(eventType: Integer; theObject: Object; eventTag: Integer;
           userInfo: Any) updating;
begin
    if eventType = Process_Web_Stats_Event then
        displayWebStats(userInfo);
        return;
    endif;
    //...any other notification handling goes here...
end;

displayWebStats(any: Any);
vars
    targetProcess: Process;
    jdo : JadeDynamicObject;
begin
    create jdo transient;
    process.extractWebStatistics(targetProcess, jdo, any);
    write "Web Statistics for " & targetProcess.String;
    write jdo.display;
epilog
    delete jdo;
end;

askForWebStats(targetProc: Process);
begin
    targetProc.sendWebStatistics();
end;