Scenario: You have a SAP Java stack which is hosting either some SAP components/modules, or it’s hosting your own custom Java code.
You would like to perform a full HTTP trace so that you can see the HTTP headers and returned content during a HTTP session between your browser and the SAP HTTP Server. You also wish to see timings for the processing time of the response.
Following SAP note “
724719 – How to enable HTTP tracing in the SAP J2EE Engine 6.40/7.0” connect into the SAP Netweaver Administrator main web page as J2EE_ADMIN:
On the left-hand side, select “System Properties”:
Select the dispatcher item under “<SID> -> Instance -> Dispatcher”:
On the Services tab, select “http”:
In the “Properties” tab at the bottom, select “HttpTrace” and click the “Modify” button:
Now change the trace setting to the following:
The possible values are described in the SAP note as:
enable Using this option will cause the whole requests/responses to be written
enableHeaders Using this option will cause only the headers of each request/response to be written
enableHex Using this option will cause the whole requests/responses to be written in a 16-column hexadecimal format. This option is valid for J2EE Engine SP10 or higher
enableHexHeaders Using this option will cause only the headers of each request/response to be written in a 16-column hexadecimal format. This option is valid for J2EE Engine SP10 or higher
The SAP note also recommends to set the property HttpTraceTime, to “true”.
This is described further in SAP note “
972540 – Tracing dispatcher and server response times“.
Since you would only get the dispatcher processing time, you should also set the server trace property as described in the above note, to allow you to see the server processing time:
“1) dispatcher + server processing time trace in http access log
– On the dispatcher enable Http Provider#s property #HttpTraceTime#
– On the servers enable Http Provider#s property #LogResponseTime#
Then messages in the httpaccess response file will contain additional fields d[…] and c[…] where d is dispatcher and server processing time and c is client id.
2) additional traces – if the request is processed for more than XX seconds
– there is a new Http Provider#s property on the server # #TraceResponseTimeAbove#
– if its value is -1 then there will be no additional traces
– if its value is >-1 (the value represents the response time in ms)
then additional traces will be written in the default trace file only for these requests which response time is >= property#s value
– on the servers put the log severity for HttpProvider service to DEBUG“
Once you have enabled the tracing, no restart of the Java stack is required. It is activate immediately.
Simply check the trace output file /usr/sap/<SID>/<instance>/j2ee/cluster/dispatcher/log/services/http/req_resp.trc (for NW731+) using operating system level file viewers (or AL11 in an ABAP stack).
For information, you should be aware of the HTTP 1.1 status codes, so you know what to look for if you are tracing an authorisation error (HTTP authorisation) or some other HTTP related issue https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html .