In this document we will learn how to solve if a InfoPackage fails with tRFC issue in Production Monitoring. This is most common issue in Monitoring.
Before that I would like to brief you what is RFC.
Remote Function Call (RFC) is the standard SAP interface for communication between SAP system. In SAP, communication between applications in SAP environment in different systems includes connections between SAP systems and also between SAP systems and non-SAP systems.
There are two types of RFC connections.
- Synchronous RFC
- Asynchronous RFC (now called as Transactional RFC i.e, tRFC)
This type of RFC executes the function call based on synchronous communication i.e, the systems involved in the communication must both be available at the time the call is made.
This is an asynchronous communication method that executes the called function module just once in the RFC server. The remote system need not be available at the time when the RFC client program is executing a tRFC. The tRFC component stores the called RFC function, together with the corresponding data, in the SAP database under a unique ID called as transaction ID (TID).
If a call is sent, and the target system is down, the call waits in the local queue. The calling dialog program can proceed without waiting to see whether the remote call was successful. If the receiving system does not become active within a certain time, then the call is scheduled to run in batch.
How to find the issue?
When the data is transferred from Source system to BW, they are sent in the form of packets. Sometimes, the InfoPackage may stuck at certain packets. When ever we find any InfoPackage taking long time than usual, then in this case we can expect tRFC issue.
Also we can check if a packet has tRFC stuck or not by selecting a particular packet under “Transfer (IDocs and TRFC):“ option in details tab of process monitor screen of a InfoPackage. In this case we will get a tRFC stuck button under the details tab as shown below.
How to solve the issue?
Before we rectify the issue, we need to perform certain checking s. Suppose if an InfoPackage is stuck for a while and is in yellow state. Usually it doesn’t take this much amount of time for nearly same amount of data as in previous logs,then check weather the extraction is completed or not. This can be done by checking the Details tab in Process Monitor screen of InfoPackage. If One sees the message” Data Selection Ended”, it means that Extraction job is finished or we can also check the extraction job in the source system by going to tool bar ‘environment –> job overview à in source system .
Now go to extraction job’s job log in source system and search for “SYSFAIL” in the job log. We will find this adjacent to the Transaction ID(TID) of particular packet in the job log. All the packets that failed will have their ARFCSTATE as SYSFAIL as shown below. Note down the TID’s of all such packets.
Then go to tcode SM58 in Source System of that InfoPackage. Then you will find the screen as below.
Before Executing, keep the User name as “*” , give required date and also give the target system name in TRFC Destination filed and execute. Then we will find the list of tRFC’s, then search for required TID as shown below. All the failed tRFC’s have status as Transaction recorded as shown below.
In the same way, search for all those failed tRFC’s as per the noted TID’s. Execute them by going to menu options –> edit –> Execute LUW(F6).
Once all the failed tRFC’s are cleared from the queue, refresh the InfoPackage and it will get successful. It may not get successful if there is delay in clearing the stuck tRFC’s in the Source System, in this case we need either to push each unprocessed packet manually or repeat this InfoPackage and clear the tRFC’s in Source System regularly.