Troubleshooting ABAP extraction jobs that use Remote Function Call (RFC) data transfer method
Problem(Abstract)
An ABAP extraction job that uses the RFC data transfer method might hang, where the job does not display any sign of progress. After a while, the job might fail with a timeout message, such as:
ABAP_Extract_Stage_0,0: Fatal Error: Fatal: ABAP_E_00745`:`ABAP background job time-out occurred as defined using BG_JOB_TIMEOUT property.
Resolving the problem
Complete the following troubleshooting steps. Not all steps might be required to resolve an issue. After you resolve an issue, monitor the jobs to make sure they continue to run without errors.
Note: The transactions specified are completed in the SAP GUI application.
1. Jobs using the RFC data transfer method and running at the same time must be configured to use a unique RFC destination. Make sure the ABAP stage meets the requirements specified in Technote 1314075 - https://www.ibm.com/support/docview.wss?uid=swg21314075
Currently (Sep 2015) our developers are working to further enhance automatic detection of duplicate Destinations and Program IDs for APAR JR50473: ENHANCE GENERATED ABAP TO DETECT IF ANOTHER PROCESS WITH SAME RFC DESTINATION NAME EXISTS AND ACTIVE AT TIME OF THE QUERY.
To manually verify the uniqueness of these values across jobs, see Technote 1966231 - http://www.ibm.com/support/docview.wss?uid=swg21966231
2. There's a known issue with the stage tracing in versions 6.5 - 8.0, where it may cause a job abort (or other unexpected symptoms) for certain data sets. Make sure to test with stage tracing off as well (unset environment variable DSSAP_STAGE_RUNTIME_TRACE or set it to NONE).
3. Install the latest Service Pack for your SAP system. Similar issues in the past were fixed by applying SAP Note 977283.
Also, verify the SAP system has not run out of memory - use OS specific tools. Check the SAP system logs as well.
4. If this is the first time that the job or connection is set up or if you have multiple jobs in this environment, troubleshoot connection errors by completing the steps inTechnote 1393028 - http://www.ibm.com/support/docview.wss?uid=swg21393028
5. If the job fails with a timeout message, set the background job timeout limit regardless of whether you use a background job or not.
To configure a timeout limit, complete one of the following steps:
- Change the stage property BG_JOB_TIMEOUT. For more information, see:
http://www.ibm.com/support/docview.wss?uid=swg21576635 - Set the environment variable DSR3_BG_JOB_TIMEOUT. For more information, see http://www.ibm.com/support/docview.wss?uid=swg1JR38704
The default timeout limit is 600 seconds. When you specify the timeout limit, consider the system performance and the extraction time. For very heavy loads, increase the timeout interval to several hours if required. The setting affects non-background operations as well.
6. Verify connectivity between the InfoSphere Information Server engine tier and the SAP system.To verify connectivity, use transaction SM59:
- Run the ABAP extraction job.
- While the job is running, test the connection, including the Unicode test.
Note: When you test connectivity, the job must be running because the dynamically created RFC destinations are deleted after the job completes.
7. If you use background jobs, use transaction SM37 to check the status. The name of the background job is the name of the ABAP program. You can delete any jobs that are no longer needed.
- For a temporary change, active until next instance restart: In transaction RZ11 (Maintain Profile Parameters), enter the parameter name and then click Change (you may have to enter the maintenance mode first by clicking Goto > Maintenance Mode).
- For a permanent change, active after the next instance restart: In transaction RZ10 (Edit Profiles) select the instance profile, check extended maintenance and click Change. Edit the parameter in the list, then save and activate the profile.
Note : Before making any changes to the SAP system parameters, discuss the changes with the local SAP administrator. See also other relevant SAP system parameters listed below.
9. If you use static RFC destinations:
- Use transaction SM59 to verify the destination for the transported data. Verify that the destination is configured correctly and that Unicode is specified in the special options.
- If you cannot increase the number of Dialog Workprocesses, check the maximum number of connections for the RFC destination. If a high value is used, specify a lower value by completing the following steps:
- In transaction SMQS, select the destination.
- Press F6 and change the value that is specified for the Max Connections field.
10. Verify the CPI-C connection timeout value for the destination is set to be longer than the job execution time:
- In transaction SMQS, select the destination.
- Press F6 and verify the value that is specified for the Max Runtime field.
- For a temporary change, active until next instance restart: In transaction RZ11 (Maintain Profile Parameters), enter the parameter name and then click Change (you may have to enter the maintenance mode first by clicking Goto > Maintenance Mode).
- For a permanent change, active after the next instance restart: In transaction SMGW (Gateway Monitor) click Goto > Parameter > Change.
11. The environment variable CPIC_MAX_CONV can be defined at OS level (both on the SAP Server and the DS Server). It controls the maximum number of CPIC conversations that can be initiated (default is 100). Should be increased if getting an error "max no of conversations exceeded" or to tune performance.
- In IBM InfoSphere Information Server Pack for SAP Applications, Version 7.0 and later, to automate deletion of failed transactions, complete the following steps:
- Open the ABAP stage properties.
- Click Output > Data Transfer Method, and then select Delete leftover LUWs.
- Recompile the job.
- In version 6.5.0.x implement the Z_DELLUW cleanup program. For more information, see http://www.ibm.com/support/docview.wss?uid=swg1JR38586
13. If you use parallel jobs, change the combinability mode for the ABAP stage so that the stages run in its own processes. Complete one of the following procedures:
- By using the IBM InfoSphere DataStage and Quality Stage Designer client:
- Open the ABAP stage properties.
- Click Stage > Advanced.
- Change Combinability mode to Don't combine.
- Recompile the job.
- By setting the environment variable:
To change the Combinability mode for a specific job, set the APT_DISABLE_COMBINATION environment variable to 1. Although the environment variable is set just for the specific job, it affects all stages in the job. If you have the permission to change the job, then it is recommended to use the stage level setting.
14. Use transaction SE38 to run the ABAP extraction program manually:
- Open the job in the InfoSphere DataStage Designer client
- Open the ABAP stage
- Click Output > ABAP Program, and then change the run method to SAP administrator runs the program manually
- Regenerate the program
- Re-compile and re-run the job
- Run the program manually from transaction SE38.
- Open the ABAP stage.
- Click Output > ABAP Program, and then change the run method to "DataStage job runs the program"
- Regenerate the program
- Re-compile and re-run the job.
To check if the ABAP extraction stage is able now to start the program automatically, complete the following steps:
- Open the ABAP stage properties
- Change the name of the ABAP program
- Change the value for the RFC destination and the program ID to new unique values
- Regenerate the ABAP program.
16. The latest maintenance code (especially in versions 6.5 and 7.0) contains several relevant fixes; the users can request a patch by opening a PMR. The patches are cumulative, so requesting the latest maintenance code will include all available fixes. If the issues persist after installing the Client and Engine tiers patches and regenerating the programs, open a PMR to have the issue investigated further.
Other useful SAP transactions:
SM37 - Job Selection - if using background programs can check the job status (background job name is the ABAP program name)
ST11 - Error Log Files; displays all traces on the kernel: workprocess (dev_wxxx), RFC calls (dev_rfcxxx), gateway (dev_rdxxx)
ST22 - ABAP Runtime Error
SM50 - Process Overview, can see the status of the running ABAP program
SM21 - System Log
SM66 - Global Work Process Overview
Other SAP system parameters affecting tRFC and qRFC transactions:
RDISP/ASYNC_DIALOG_TIMEOUT - timeout for asynchronous dialog RFCs
RDISP/RFC_POOL_TIMEOUT - Timeout for pooled RFC connections
RFC/REDUCE_TRACELEVEL - reduces the RFC-information which is written into the WP and RFC-Traces
DBS/MSS/ADD_PROCS - maximum number of additional dirty read connections
GW/CONN_PENDING - timeout for pending connections
GW/GW_DISCONNECT - Timeout to cancel inactive gateway connections