bgRFC Channel

The Background RFC (bgRFC) is offered as a replacement for the classic tRFC and qRFC. It is available with SAP NetWeaver 2004s (SAP Basis 7.0). bgRFC is a superordinate term for the new version of tRFC and qRFC. A parallel run of classic tRFC/qRFC and bgRFC is possible.

The Background RFC works on the basis of units and performs better compared to the classic tRFC and qRFC versions. It comes with a new Application Programming Interface (API) and a new data model.

Terminology:

  • The term "unit" for the bgRFC can be compared with the term "Logical Unit of Work (LUW)" for classic tRFC/qRFC.
    • A unit is a recorded sequence of collected function calls to be performed remotely.
    • The recorded unit data is persisted in the database at COMMIT WORK.
    • A unit can be locked. Such a locked unit cannot be processed until it is unlocked again.
  • The term "destination" for a bgRFC unit defines either a remote system for outbound scenarios, or a distinct name for an application in an inbound scenario.
    • Outbound destinations are maintained via the standard transaction SM59.
    • Inbound destinations are maintained via the specific transaction SBGRFCCONF.

The bgRFC is based on a scheduler-driven queuing framework. This means that remote function calls are recorded, and execution takes place at a later point in time, which is controlled automatically by a scheduler process. Several schedulers can be started to process bgRFC units.

It supports the following scenarios:

  • Processing on a remote system (outbound scenario)
    • Use case: Asynchronous transactional processing of function calls in a remote system; processing is controlled by the caller system (inter-system communication for SAP to SAP and SAP to non-SAP)
  • Processing remotely by the inbound scheduler (outbound-inbound scenario)
    • Use case: Asynchronous transactional processing of function calls in a remote system; processing is controlled by the receiver system (inter-system communication for SAP to SAP)
  • Processing on the same system (inbound scenario)
    • Use case: Asynchronous transactional processing of function calls in the same system (intra-system communication = same system and same client)

In addition, there is a successor to the qRFC's "No-Send" scenario, where outbound calls are recorded, but not sent by the outbound scheduler (pull principle). Instead, the receiving system is supposed to fetch its RFC records itself. In the bgRFC context this is called Local Data Queue (LDQ).

The bgRFC provides two qualities of service (QoS) for remote function calls, offering an asynchronous transactional system-to-system communication:

  • exactly once (EO) => transactional units (like the classic tRFC): Each unit is an independent thread
  • exactly once in order (EOIO) => queue units (like the classic qRFC): Units with sequence dependencies

To monitor bgRFC destinations and queues you can use the transactions SBGRFCMON (bgRFC Monitor), SBGRFCHIST (bgRFC Unit History), SBGRFCPERFMON (bgRFC Performance Monitor) and SLDQMON (LDQ Monitor). 

Quality of Service Outbound Outbound-Inbound Inbound No-Send
tRFC (EO) x - x -
qRFC (EOIO) x x x x

Technical Prerequisites

The following technical prerequisites have to be met in order to use the bgRFC Monitoring as of ST-A/PI 01R:

  • Managed system is ABAP-based SAP NetWeaver system of Basis release ≥ 7.0
  • ST-A/PI 01R is implemented on managed system

Available Monitoring Content

Monitoring Template: bgRFC

Monitoring Area Metric Name Description MAI Category Since SP
Backlog Monitoring   

Total number of individual queues/destination

Number of individual bgRFC queues or bgRFC destinations

Performance

7.1 SP12

Total number of units in all queues/destination

Total number of all units within either bgRFC queues or bgRFC destinations

Performance

7.1 SP12

Age of oldest unit

Age in minutes of the oldest unit within either bgRFC queues or bgRFC destinations

Performance

7.1 SP12
Status monitoring for errors  

Number of erroneous queues/destinations

Number of individual bgRFC queues or bgRFC destinations containing at least one unit in an erroneous state

Exceptions

7.1 SP10

Total number of erroneous units

Total number of units in an erroneous state within either bgRFC queues or bgRFC destinations

Exceptions

7.1 SP12

Age of oldest unit in error state

Age in minutes of the oldest unit in an erroneous state within either bgRFC queues or bgRFC destinations

Exceptions

7.1 SP10
Status monitoring for locks  

Number of queues/destination with locked units

Number of individual bgRFC queues or bgRFC destinations which contain at least one unit with a lock.

Exceptions

7.1 SP12

Total number of locked units

Total number of locked units within either bgRFC queues or bgRFC destinations

Exceptions

7.1 SP12

Age of oldest unit with a lock

Age in minutes of the oldest locked unit within either bgRFC queues or bgRFC destinations

Exceptions

7.1 SP12

Configuration

This monitoring template can be used for an automatic monitoring and alerting of bgRFC instead of manually using the standard monitoring transaction SBGRFCMON.

Use transaction SBGRFCMON to check whether there are bgRFC units present in the managed system. Get an understanding what kind of bgRFC units exist in your system, based on destinations, queue names, program names and transaction codes. These application-specific details heavily depend on the used product, the implemented business processes, and of course on the interfaces to other systems and applications. Please consult the SAP standard documentation or your project-specific implementation documentation to get information about what kind of bgRFC units (and especially what queue names) are expected.

  • The monitoring for the bgRFC transactional units (quality-of-service = "exactly-once") is based on the number or age of units for a destination.
  • The monitoring for the bgRFC queued units (quality-of-service = "exactly-once-in-order") is based on the number or age of units within a queue.

The various individual status codes or lock reasons for bgRFC are grouped into two different categories: Error states and lock states. With that you can define different thresholds per status category.

The Interface and Connection Monitoring setup can be accessed via SAP Solution Manager Configuration (SOLMAN_SETUP). 

To access the Integration Monitoring setup please go to SAP Solution Manager Configuration (SOLMAN_SETUP) → Application Operations → Integration Monitoring → Interface and Connections.

If you didn't perform the infrastructure configuration yet, please follow the Interface and Connection Monitoring Setup with SAP Solution Manager 7.2.

Monitoring Template: bgRFC

Navigate to the step 'Define Scope'. You can create a new scenario or use an existing one. Make sure the sender and the receiver system are part of the Interface and Connection Monitoring scenario.

Create the Interface Channel:

  1. Select the scenario and click 'Next'
  2. In step 'Preparation' perform all relevant manual activities and run all automatic activities.
  3. In step 'Configuration' click the 'Add' button.
    • Channel Name: Enter a meaning full name (max. 30 characters)
    • Type: Select 'bgRFC'
    • Monitoring Template: Select 'bgRFC'
    • Description: Enter a description for the channel
  4. Click Next.
  5. Source type:
    • Select 'Technical System'
    • If the source system is not on-premise please select 'External Service' if it is a cloud service or 'Unspecified Managed Object'.
  6. Source: Select the source system from the drop-down list or enter the name for the unspecified managed object
  7. Target Type:
    • Select 'Technical System'
    • If the target system is not on-premise please select 'External Service' if it is a cloud service or 'Unspecified Managed Object'.
  8. Target: Select the target system from the drop-down list or enter the name for the unspecified managed object
  9. The measuring point is selected automatically. Please note that for this template either the target or the source system must be an ABAP system! If both source and target are ABAP systems you can select the measuring point as necessary.
  10. If more than one client are connected for the on premise system please select the correct client for the monitoring
  11. Click Next.
  12. Click Finish.

Maintain the Interface:

  1. Select the interface channel you created
  2. On the 'Interfaces' tab click the 'Add' button.
  3. Provide the following information
    • Interface Name: The name of the interface
    • Direction (mandatory): The direction of the bgRFC destination. I = Inbound, O = Outbound. Will be filled automatically based on measuring point. If you choose inbound, you select those units whose function modules are to be executed in the local system. If you choose outbound, you select those units that are to be passed from the local system to a remote system (to be executed there).
    • bgRFC Type (QoS) (mandatory): Possible values for QoS are ‘T' for transactional or ‘Q' for queued.
    • Destination (only for queued units): Inbound or outbound destination name
    • Queue Name (only for queued units): The name of the queue within the destination. You can use wildcards.
    • User Name (only for transactional units): The name of the user under which the unit is recorded.
    • Program Name (only for transactional units): The name of the program with which the unit was created
    • Transaction Code (only for transactional units): The name of the SAP transaction code with which the unit was created

Select Metrics:

  1. On the tab 'Metrics' select the metrics you want to monitor. Please note that the selected metrics are collected for each bgRFC destination entered above.

Each group of metrics (backlog, errors, locks) offers three available metrics: The number of affected queues/destinations, the total number of affected units, and the age of the oldest affected unit. It is recommended to configure at least one metric from each group, but it may be not required to configure all of them. For example you might only be interested in the age of the oldest unit, but not in the amount of units, because temporary backlog peaks are normal in your scenario. Or, as another example, you could be interested in an immediate alert for erroneous units, no matter how old they are.

You can maintain attributes as described in the Interface and Connection Monitoring Setup with SAP Solution Manager 7.2 on the tab 'Attributes'.

Thresholds and the collection schedule are maintained in the next step of the guided procedure. Once you have maintained all your channels, click 'Next' in the main guided procedure to move to the step 'Activation'.

Maintain Thresholds and Schedule:

  1. Select the Alert for the channel (the alert is the line with the red flash icon next to it)
    • On alert level you can maintain notification and incident message creation
  2. Select the Metrics
    • You can adjust the thresholds on the tab Thresholds. The recommended rating strategies for this metric are “Info Only” and “Numeric Threshold (Green/Yellow/Red)”. If you entered more than one bgRFC destination you can set different thresholds for each one or the same threshold for all. The "Inherited" flag indicates if you inherit the thresholds set for the entire IF channel or if the bgRFC destination has custom thresholds.
    • Do not change the data collector type or data collector name on the tab 'Data Collection' as the monitor will not work anymore if this is changed.
    • Only change the collection interval if you know what you do or if advised to do this by SAP.
  3. Click 'Apply and Activate' → <Choose one option> to activate the monitoring

Further Information

Important Transaction Codes

Configuration Transactions Description

SBGRFCCONF

bgRFC Configuration

SM59

RFC Destinations

Monitoring Transactions Description

SBGRFCMON

bgRFC Monitor

SBGRFCHIST

bgRFC Unit History

SBGRFCPERFMON

bgRFC Performance Monitor

SLDQMON

LDQ Monitor

SLG1

Application Log