Skip to Content
avatar image
Former Member

Row lock waits on BPGE when idocs parallel processing

For a long time we have a problem with mass parallel processing of IDOCs in SAP ERP. Big delay is in parallel UPDATE of BPGE table.

The description of process:
*) at night time, in SAP ERP come about 400-450 idocs at the same time.
*) now, begining processing of these idocs in RWPOS_PARA_ENQUEUE program, with 10-14 parallel streams.
*) about 10 minutes after begin, when function module SAPLKBPV is active, the BPGE table in all 14 streams locked for update. And only one process worked and switching other function modules and tables. There is no locks of all other tables: MVKE, MKPF, CE11000, S033, S110, S122 etc.

The same way looks processing idocs in RBDAPP01 program.

I will give some screenshots, showing negative load in this timeframe:

Oracle Activity:

(as we see, there is a large number of oracle "enq: TX - row lock contention")

Top 10 foreground events:

SQL by elapsed time:

Segments by Row Lock Waits

Segments by Buffer busy Waits

I tried too many optimizations of BPGE table:
*) creating/dropping indexes
*) put it in oracle KEEP POOL
*) change the technical parameters INITRANS, MAXTRANS, PCTFREE, PCTUSED
*) change number of parallel streams in RWPOS_PARA_ENQUEUE (or RBDAPP01)
It had no effect.

Why are the BPGE table updated? Can we update it at the end of processing, only ONCE? How can we disable this function module? (SAPLKBPV?)

If we could get rid of BPGE locks, the performance of parallel processing will increase significantly.

AWR_screen1.PNG (22.3 kB)
AWR_screen2.PNG (43.0 kB)
AWR_screen3.PNG (17.9 kB)
AWR_screen4.PNG (18.3 kB)
Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

4 Answers

  • avatar image
    Former Member
    Jun 02, 2016 at 06:48 AM

    Hello Igor,

    The kind of thread I appreciate as you really have provided good info to get stuck into.

    Couple of quick questions.

    1. Are you processing the IDOCs in packets ?

    2. What is you Oracle version (with SBP)

    3. Can you post the explain plan of the update statement

    4. How big is BPGE

    KR,

    Amerjit

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member Former Member

      Hi Igor,

      Please check the job+variant that is running program RBDAPP01. There will be two tabs.

      Can you provide scree shots of both tabs from the variant being used.

      That way we can see your packet size and if you are using RFC groups. If you are processing with a default packet size of one then you would want to increase this.

      You mentioned that you changed tech params like INITRANS. Are you aware that these values only take effect on new blocks and not already allocated blocks.

      You can set new values with either SE14 (activate and adjust) or with brspace (online/offline reorg).

      Two notes that will interest you will be: #84348 and  #745639 (TX, REQUEST is 6 section).

      KR,

      Amerjit

  • Jun 08, 2016 at 06:35 AM

    Hello Igor,

    could you check what are they waiting for, I mean if you can, try to check at time of this situation happens which session is a lock holder, maybe there some incorrect logic in program,

    something like "select for update" in it.
    You can check it either in DB01 or in st04 --> wait events --> lock monitor.
    I think you need to involve some ABAP-er as well, and with him try to debug the situation deeply.
    And yes, which software components do you have there ? BASIS, SAP_APPL ?

    Regards, Sergo.

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Jun 10, 2016 at 04:14 AM

    Hi,

    Amerjit, I already tried with various packet size in RBDAPP01 (1, 5, 10, 14). There is no particular effect.

    Thanks for remark about tables tech params. I will try to change it and offline reorg, or recreate table.

    Sergo, thanks for answer. This is screens of ST04 lock monitor:

    My software components. It's too large count:

    SAP_BASIS

    SAP_ABA

    SAP_GWFND

    SAP_UI

    PI_BASIS

    ST-PI

    SAP_BW

    MDG_FND

    SAP_AP

    SAP_BS_FND

    WEBCUIF

    MDG_APPL

    SAP_APPL

    SAP_FIN

    SAP_HR

    SAP_HRCAR

    SAP_HRCAT

    ...

    ... big list

    ...

    SAP_HRRXX

    EA-IPPE

    EA-APPL

    EA-DFPS

    EA-FI

    EA-FIN

    EA-FINSERV

    EA-GLTRADE

    EA-HR

    EA-HRCAR

    EA-HRCAT

    EA-HRCAU

    ...

    ... big list

    ...

    EA-HRRXX

    EA-PS

    EA-RETAIL

    FINBASIS

    FSCM_CCD

    ECC-DIMP

    ERECRUIT

    FI-CA

    FI-CAX

    INSURANCE

    IS-CWM

    IS-H

    IS-M

    IS-OIL

    IS-PS-CA

    IS-UT

    LSOFE

    SEM-BW

    BP-ERP05

    BP-INSTASS

    ST-A/PI

    Best regards,

    Igor Goleinov

    Add comment
    10|10000 characters needed characters exceeded

  • Jun 13, 2016 at 06:15 AM

    Hi Igor,

    Can you check if the problem matches the bug as mentioned in note 1887235?

    Best regards,
    James

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member

      Hi, James,

      No, we don't have using oracle securefiles (instead of LOB). And BPGE table does'nt have LOB-columns.

      Best regards,

      Igor Goleinov