A lot of time working on the synchronous scenario we see timeout exceeded error in sap pi.
Usually, to overcome this error we need to set the Java parameter in NWA but after SAP PI 7.31 we have the option of setting timeout parameter on the channel itself. This remains specific to that interface which has more advantages of not touching timeout parameter in global settings which affects all interfaces. It is very simple now to set the parameter in adapter module if we get synchronous timeout exceeded error in sap pi.
Following channels which can use this features
- File/FTP
- JDBC,
- RFC,
- SOAP,
- XI,
- HTTP (AAE),
- IDoc (AAE)
In this example, I am using SOAP sender channel.
The error will be something like below.In this case, global timeout parameter is set to 2 mins.
Where to set the parameter
Parameter syncTimeout is needed to be set in adapter module.The CallSapAdapter module reads the value of module parameter syncTimeout .
Note: timeout period in milliseconds
If this parameter is set on channel it will take precedence over Global settings
How does it work
SAP has enhanced CallSapAdapter module to select the timeout value at runtime and pass the value to the messaging system. As a result, the channel-specific timeout function is available to all the adapters that use the CallSapAdapter module.
During runtime, if the CallSapAdapter module finds syncTimeout settings it adds it in system header to the message for the receiver messaging system with the namespace http://sap.com/xi/XI/Message/30/general .