Process::getRequestStatistics Method
getRequestStatistics(dynObj:        JadeDynamicObject input;
                     localOrRemote: Integer);

The Process class getRequestStatistics method retrieves node sampling values relating to the current process that is executing the method. The values are returned as properties of a JadeDynamicObject object.

If the localOrRemote parameter is set to 1, the statistics for all requests invoked on the local node are returned as properties in the dynamic object specified in the dynObj parameter. If the localOrRemote parameter is set to 2, the statistics for all requests from the local node to remote nodes are returned as properties in the specified dynamic object.

Most of the request statistics are collected only when node sampling is active on the node. The values that are reported independent of node sampling are thin client statistics that are part of the local request statistics.

The properties that are returned to the dynamic object specified in the dynObj parameter when the localOrRemote parameter is set to 1 (that is, local node sampling) are listed in the following table.

Property Primitive Type
processId Integer
clockTicks Integer64
nodeCPUTime Integer64
nodeTicks Integer64
processCPUTime Integer64
processTicks Integer64
processLogicalClock Integer64
transientObjectCreates Integer64
transientObjectDeletes Integer64
transientObjectClones Integer64
transientObjectCopies Integer64
transientObjectGetProperties Integer64
transientObjectSetProperties Integer64
transientObjectJadeMethods Integer64
transientObjectExternalMethods Integer64
transientObjectLocks Integer64
transientObjectUnlocks Integer64
transientObjectRemoveLocks Integer64
transientObjectGets Integer64
transientObjectPuts Integer64
transientBufferSwaps Integer64
persistentObjectCreates Integer64
persistentObjectDeletes Integer64
persistentObjectClones Integer64
persistentObjectCopies Integer64
persistentObjectGetProperties Integer64
persistentObjectSetProperties Integer64
persistentObjectJadeMethods Integer64
persistentObjectExternalMethods Integer64
persistentObjectLocks Integer64
persistentObjectUnlocks Integer64
persistentObjectRemoveLocks Integer64
persistentObjectGets Integer64
persistentObjectPuts Integer64
persistentBufferSwaps Integer64
primitiveJadeMethods Integer64
primitiveExternalMethods Integer64
transientBeginTransactions Integer64
transientEndTransactions Integer64
transientAbortTransactions Integer64
transientBeginNotifications Integer64
transientEndNotifications Integer64
transientCauseEvents Integer64
transientReturnNotes Integer64
receivedNotesFromLocal Integer64
userRequests Integer64
persistentBeginTransactions Integer64
persistentEndTransactions Integer64
persistentAbortTransactions Integer64
persistentBeginNotifications Integer64
persistentEndNotifications Integer64
persistentCauseEvents Integer64
persistentReturnNotes Integer64
thinClientMsgsSentByAppServer Integer64
thinClientBytesSentByAppServer Integer64
thinClientMsgsSentByClient Integer64
thinClientBytesSentByClient Integer64
thinClientLogicMsgWaitTime Integer64

For explanations about these statistics, see "Local Request Statistics Format" under "Statistics File Format", later in this chapter.

The properties that are returned to the dynamic object specified in the dynObj parameter when the localOrRemote parameter is set to 2 (that is, remote node sampling) are listed in the following table.

Property Primitive Type
processId Integer
clockTicks Integer64
nodeCPUTime Integer64
nodeTicks Integer64
processCPUTime Integer64
processTicks Integer64
processLogicalClock Integer64
rpcNewBufferGetObjects Integer64
rpcUpdatedBufferGetObjects Integer64
rpcNonUpdatedBufferGetObjects Integer64
rpcTemporaryBufferGetObjects Integer64
rpcNewBufferGetObjectGroups Integer64
rpcUpdatedBufferGetObjectGroups Integer64
rpcNonUpdatedBufferGetObjectGroups Integer64
rpcTemporaryBufferGetObjectGroups Integer64
rpcGetObjectGroups Integer64
rpcNewBufferLockObjects Integer64
rpcUpdatedBufferLockObjects Integer64
rpcNonUpdatedBufferLockObjects Integer64
rpcTemporaryBufferLockObjects Integer64
rpcNewBufferLockObjectGroups Integer64
rpcUpdatedBufferLockObjectGroups Integer64
rpcNonUpdatedBufferLockObjectGroups Integer64
rpcTemporaryBufferLockObjectGroups Integer64
rpcLockObjectGroups Integer64
rpcCreateObjects Integer64
rpcUpdateObjects Integer64
rpcDeleteObjects Integer64
rpcUnlockObjects Integer64
rpcUnlockObjectGroups Integer64
rpcRemoveLocks Integer64
rpcGetEditions Integer64
rpcGetOids Integer64
rpcBeginTransactions Integer64
rpcEndTransactions Integer64
rpcAbortTransactions Integer64
rpcBeginNotifications Integer64
rpcEndNotifications Integer64
rpcCauseEvents Integer64
rpcReturnNotes Integer64
receivedNotesFromRemote Integer64
rpcServerExecutions Integer64
rpcSendDatabaseMessages Integer64
rpcNewBufferGetObjectsTime Integer64
rpcUpdatedBufferGetObjectsTime Integer64
rpcNonUpdatedBufferGetObjectsTime Integer64
rpcTemporaryBufferGetObjectsTime Integer64
rpcNewBufferGetObjectGroupsTime Integer64
rpcUpdatedBufferGetObjectGroupsTime Integer64
rpcNonUpdatedBufferGetObjectGroupsTime Integer64
rpcTemporaryBufferGetObjectGroupsTime Integer64
rpcGetObjectGroupsTime Integer64
rpcNewBufferLockObjectsTime Integer64
rpcUpdatedBufferLockObjectsTime Integer64
rpcNonUpdatedBufferLockObjectsTime Integer64
rpcTemporaryBufferLockObjectsTime Integer64
rpcNewBufferLockObjectGroupsTime Integer64
rpcUpdatedBufferLockObjectGroupsTime Integer64
rpcNonUpdatedBufferLockObjectGroupsTime Integer64
rpcTemporaryBufferLockObjectGroupsTime Integer64
rpcLockObjectGroupsTime Integer64
rpcLockQueueWaitsTime Integer64
rpcPutObjectsTime Integer64
rpcUnlockObjectTime Integer64
rpcUnlockObjectGroupsTime Integer64
rpcRemoveLocksTime Integer64
rpcGetEditionsTime Integer64
rpcGetOidsTime Integer64
rpcBeginTransactionsTime Integer64
rpcEndTransactionsTime Integer64
rpcAbortTransactionsTime Integer64
rpcBeginNotificationsTime Integer64
rpcEndNotificationsTime Integer64
rpcCauseEventsTime Integer64
rpcReturnNotesTime Integer64
rpcServerExecutionsTime Integer64
rpcSendDatabaseMessagesTime Integer64
allRequestBytesSent Integer64
allRequestBytesReceived Integer64
allRequestPacketsSent Integer64
allRequestPacketsReceived Integer64
allReceiptsBytesReceived Integer64
allReceiptsPacketsReceived Integer64

For explanations about these statistics, see "Remote Requests Statistics Format" under "Statistics File Format", later in this chapter.

The following example, which shows the use of the getRequestStatistics method, retrieves the process ticks used to create an object.

getProcessTicks();
vars
    sample                 : JadeDynamicObject;
    cumulativeProcessTicks : Integer64;
    processTicks           : Integer64;
    person                 : Person;
begin
    create sample transient;
    process.getRequestStatistics(sample, 1);    // local statistics
    cumulativeProcessTicks :=
                       sample.getPropertyValue("processTicks").Integer64;
    beginTransaction;
    create person persistent;
    person.surname   := "Smith";
    person.firstName := "John";
    commitTransaction;
    process.getRequestStatistics(sample, 1);
    processTicks := sample.getPropertyValue("processTicks").Integer64 –
                                      cumulativeProcessTicks;
    delete sample;
    write "Process ticks to create an object = " & processTicks.String;
end;