Posts

Showing posts with the label http

PI 7.3 Messages fail with 401 error but get processed on resend

The PI system uses ABAP as the user master. This means that the user ID details and passwords are maintained in ABAP stack. When a session is created in the Java stack, the UME service connects to ABAP and checks the user details. The number of connections from Java to ABAP are limited and under heavy load, the user check may timeout causing the Java stack to interpret it as an authentication problem. The result in PI is message process failure with a 401 error . You have to tune your system to ensure that there are no 401 errors due to heavy load. This can be done by increasing the following parameters: Max.Connections Max.Wait Time in ms Max.Connections specifies the maximum number of parallel UME connections between Java and ABAP and when call these connections are used up,  Max.Wait Time determines the time a request waits to get a free connection. You can increase/tune these values in the RFC destination  UMEBackendConnection using NW...

Slow Cluster Communication with SAP XI on AIX

High throughput and other performance reasons require you to operate the SAP XI application in a cluster environment. Cluster communication then becomes an important factor so that all the server nodes are operating in a harmonious way. If you are using AIX as the operating system, you can improve the cluster communication by tuning tcp_nodelayack . If you set this option to 1, it prompts TCP to send an immediate acknowledgement, instead of waiting for 200 ms (default delay). Run the following commands as root user: To check the current setting: no -o tcp_nodelayack To set the option temporarily: no -o tcp_nodelayack=1 To set the option permanently: no -p -o tcp_nodelayack=1 For more details on this parameter check IBM's documentation . Read  AIX 5L Administration if looking for learning AIX basics.

Tracing HTTP Response Time of Dispatcher and SAP J2EE Server Node

Image
You can trace the HTTP response time on dispatcher by enabling HttpTraceTime property. Similar information can be captured on SAP J2EE server node by enabling LogResponseTime property. These two parameters can be set in HTTP Provider service . The trace will be written at <path to>/j2ee/cluster/server0/log/system/httpaccess/responses.<n>.trc in the following format: [Jul 27, 2011 7:49:19 PM] - 127.0.0.1 : GET / HTTP/1.1 302 0 [ 150 ] d[ 300 ] c[30132] 150 ms shown in the trace refers to the response time of the server node. 300 ms shown in the trace refers to the response time of the dispatcher. If you want to capture additional details when the response time has crossed a certain threshold, you can set TraceResponseTimeAbove parameter in  HTTP Provider service . A negative value for this parameter will have no effect. Additional trace will be written in the default trace file when the response time is >= property's value and HttpProvider service i...

Enabling Web Cache in SAP Web Dispatcher

When an http call is made, it is passed to the application server via the web dispatcher. If the same call is made repeatedly, the WD has to keep sending the same request to the application. There is some level of saving that can be made in the network bandwidth and usage of backend system by saving the fetched pages locally and serving the saved copies from the web dispatcher. Web caching is inactive by default. To activate the cache on a particular uri, add " icm/HTTP/server_cache_0 = PREFIX=<uri-prefix>, CACHEDIR=<dir> " in the web dispatcher profile.

HTTP 401 Unauthorized Error

If you are sure that the user name and password are correct and the behaviour is different from what is explained in our older post  Message Fails With 401 Error; Gets Processed On Second Attempt , see if the Communication Channel connects to a Windows OS based Web Service with a domain user.  If so, you should be using <Domain_Name>\ <User_Name > in the CC configuration.

Avoid XI Message Failures and 503 Errors on Node Restart

XI messages fail when there are unplanned J2EE server node restarts. You can reduce the number of such failed messages by delaying the start up of JCo RFC provider to start after the applications are up. WaitForAppsStart property has to be set on JCo RFC Provider service to use this feature. You can change this proprty using Config Tool --> services --> rfcengine. You may have to create the property if it is not already existing and set it to true. Check SAP Note 1444430 to confirm if this property is supported at the SP level you are running the XI application on. The HTTP service is delayed automatically to start after the node is at Running status for releases 7.1 and above. If you are using a release lower than 7.1, you can configure the delay manually with the property DelayedServerNodeRegistration of the HTTP Provider Service on the Dispatcher. Be aware that delaying HTTP service may cause SLD registration problems, which need to be dealt with manually. ...

SAP XI: Turn Off Basic Authentication for RNIF Adapters

When using RNIF adapters, the authentication will be done using certificates. You will not need a user/password. To check that the user/password based authentication is off, call http://&LT;host&GT;:&LT;port&GT;/MessagingSystem/receive/RNIFAdapter/RNIF and see that you are not prompted for login details. Follow these instructions to turn basic authentication off: i. Locate the file SAPXIAF*.sca specific to the XI SP version being used in your system. This sca file contains aii_af_ms_app.sda . ii. Open aii_af_ms_app.sda and you would find aii_af_ms_app.war file. Open this file also. You would find web.xml. Make the following changes . iii. Comment out the following section as follows: &LT;!-- security-constraint&GT; &LT;web-resource-collection&GT; &LT;web-resource-name&GT;XI_AF_RECEIVE&LT;/web-resource-name&GT; &LT;url-pattern&GT;receive/*&LT;/url-pattern&GT; &LT;/web-resource-collection&GT; &LT;auth-constraint...

SAP XI: High Response Time With Low CPU Usage

If you observe high response time, while the CPU utilisation remains low, then check the socket time out settings. High socket time out on a fast machine would cause high number of http requests loaded. Most of the CPU time would be spent waiting to read data from an inactive client than processing requests for an active client. Reduce the socket time-out values in Connection Manipulator properties of the dispatcher.