(Optional) To analyze the performance of the client, measurement points are available at different stages in a request-response cycle. These points are used to provide logs that help in assessing the processing time across various components in the SAP Mobile Platform environment.
The table below provides the list of data points and the log readings across which the performance can be measured.
Log Reading | Application | Proxy Client | Messaging Client | Network (includes reverse proxy/relay server) | SAP Mobile Platform Server | Network | Enterprise Information System (EIS) |
---|---|---|---|---|---|---|---|
E2E: RR | X | X | X | X | X | X | |
ODP:RR | X | X | X | X | X | ||
IMO:RR | X | X | X | X | X | ||
Network:RR | X | X | X | X |
The above log readings determine the time elapsed across various stages of a request response (RR) cycle.
The following code illustrates how to use the perflib jar file to read the performace data points. private String makeRequest(MoRequestOptions requestOptions, String sHeader, byte[] sContent,InputStream iStream, boolean tobestreamed) throws MoException, MoParamException { . . if(logger.isPerformanceLoggingEnabled()) { ((com.sap.blackberry.perflib.Measurement) SUPConnectionFactory.m).startRequest("-ODP:RR"); ODPClientConnection.coRRelationID = correlationID; } execute(requestOptions, DLL_AND_CLASS_NAME, METHOD_IN_CLASS); if(logger.isPerformanceLoggingEnabled()){ try { ((com.sap.blackberry.perflib.Measurement)SUPConnectionFactory.m).stopRequest(); } catch (IOException e) { logger.debug(correlationID, "makeRequest (inner)", "m.stop has erred"); } . . . String s1 = ((com.sap.blackberry.perflib.Measurement)SUPConnectionFactory.m).getIntervalDataAsString(kv1); String s2 = ((com.sap.blackberry.perflib.Measurement)SUPConnectionFactory.m).getIntervalDataAsString(kv2); String s3 = ((com.sap.blackberry.perflib.Measurement)SUPConnectionFactory.m).getIntervalDataAsString(kv3); logger.perf(correlationID,"-RR","SUPPipeConnector-RRHeaders: "+"Requesttime,requestBytes,responseBytes"); logger.perf(correlationID,"-RR", "SUPPipeConnector-RRValues: "+s1+" , "+s2+" , "+s3); . . . return sResponse; }