Skip to Main Content

Oracle Database Discussions

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Blocking Enqueue: sessions waiting on RBS blocks

redmanDBADec 21 2007 — edited Jan 2 2008
Hi.

I have a enqueue locking problem with a 9.2.0.4 database.

The application code makes a lot of use of SELECT FOR UPDATE, and also the users need to delay commits whilst they look at data in another system. So there is always plently of locks on this system. This is not usually a problem because users update their own rows and individual updates should only require RX locks.

I have seen recently though, sessions having to wait for X locks on rollback segment blocks.

Session 64 has these locks:
Locks:
DML/DATA ENQ H: RS R: NONE - LICENCE_CLAUSES
DML/DATA ENQ H: RS R: NONE - LICENCE_PACKAGE_NOTES
DML/DATA ENQ H: RS R: NONE - LICPKG_MKT_REVENUES
DML/DATA ENQ H: RX R: NONE - LIC_PKG_MATS
DML/DATA ENQ H: RX R: NONE - LICENCE_PRODUCTIONS
DML/DATA ENQ H: RX R: NONE - LICPKG_AGR_COSTS
DML/DATA ENQ H: RS R: NONE - TX_SLOTS
DML/DATA ENQ H: RX R: NONE - FOR_TERRITORIES
DML/DATA ENQ H: RX R: NONE - SELECTED_LANGUAGES
DML/DATA ENQ H: RX R: NONE - PKGMKT_EXP_COSTS
DML/DATA ENQ H: RX R: NONE - LICENCES
DML/DATA ENQ H: RS R: NONE - EXTERNAL_TAPE_REQS
DML/DATA ENQ H: RX R: NONE - LICPRD_MKT_TERMS
DML/DATA ENQ H: RX R: NONE - COSTING_TERRITORIES
DML/DATA ENQ H: RX R: NONE - PKGMKT_PROD_COSTS
DML/DATA ENQ H: RX R: NONE - SELECTED_TERRITORIES
DML/DATA ENQ H: RX R: NONE - LICENCE_PACKAGES
DML/DATA ENQ H: RS R: NONE - LICENCE_TX_SLOTS
DML/DATA ENQ H: RX R: NONE - MARKET_GATEWAY
DML/DATA ENQ H: RX R: NONE - SELECTED_MEDIA
DML/DATA ENQ H: RX R: NONE - LICENCE_DIARIES
DML/DATA ENQ H: RS R: NONE - LICPRD_MKT_REVENUES
DML/DATA ENQ H: RX R: NONE - RIGHTS_COSTINGS
DML/DATA ENQ H: RX R: NONE - PKGMKT_AGREE_COSTS
DML/DATA ENQ H: RX R: NONE - AVAILABILITY_REQUESTS
DML/DATA ENQ H: RX R: NONE - PROD_LICENCE_DATES
DML/DATA ENQ H: RX R: NONE - LICPKG_PMG_COSTS
DML/DATA ENQ H: RS R: NONE - MEMO_LINES
DML/DATA ENQ H: RS R: NONE - LIC_PKG_OTHERCOSTS
DML/DATA ENQ H: RS R: NONE - MAT_FUL
DML/DATA ENQ H: RX R: NONE - DISTINCT_FOR_TERRS
DML/DATA ENQ H: RX R: NONE - LIC_PROD_MATS
DML/DATA ENQ H: RX R: NONE - PKGMKT_BASE_COSTS
DML/DATA ENQ H: RX R: NONE - PKGMKT_MEDIA_COSTS
TRANSAC ENQ H: X R: NONE - RS+SLOT#720921 WRP#40491
DML/DATA ENQ H: RS R: NONE - PUBLICITY_REQS
DML/DATA ENQ H: RS R: NONE - LIC_PROD_TX_RUNS
DML/DATA ENQ H: RS R: NONE - LIC_PAYMENT_ALLOCATIONS
DML/DATA ENQ H: RX R: NONE - LICPKG_MKT_TERMS

Other sessions show ...
Session Waits:
WAITING: enqueue
Locks:
DML/DATA ENQ H: RS R: NONE - LICENCES
TRANSAC ENQ H: NONE R: X - RS+SLOT#720921 WRP#40491


I need to understand why users updating different rows are holding each other up.

It would be very useful to have a method of investigation to ascertain the blocks involved in the undo contention.

If anyone understands this area of Oracle and could enlighten me, it would be much appreciated.

Here's some session info:

SQL> @locked_row2
Enter value for dbsid: 19

OBJECT_NAME
--------------------------------------------------------------------------------------------------------------------------------
ROW_WAIT_OBJ# ROW_WAIT_FILE# ROW_WAIT_BLOCK# ROW_WAIT_ROW# DBMS_ROWID.ROWID_C
------------- -------------- --------------- ------------- ------------------
LICENCES
728779 12 230040 7 AACx7LAAMAAA4KYAAH

SQL> /
Enter value for dbsid: 86

OBJECT_NAME
--------------------------------------------------------------------------------------------------------------------------------
ROW_WAIT_OBJ# ROW_WAIT_FILE# ROW_WAIT_BLOCK# ROW_WAIT_ROW# DBMS_ROWID.ROWID_C
------------- -------------- --------------- ------------- ------------------
LICENCES
728779 12 230040 7 AACx7LAAMAAA4KYAAH

SQL> /
Enter value for dbsid: 64

OBJECT_NAME
--------------------------------------------------------------------------------------------------------------------------------
ROW_WAIT_OBJ# ROW_WAIT_FILE# ROW_WAIT_BLOCK# ROW_WAIT_ROW# DBMS_ROWID.ROWID_C
------------- -------------- --------------- ------------- ------------------
PKGMKT_EXP_COSTS_I1
1159203 12 203672 0 AAEbAjAAMAAAxuYAAA

Thanks in advance.
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jan 30 2008
Added on Dec 21 2007
5 comments
1,602 views