/* This file is part of demos for "Latch, mutex and beyond" blog Andrey S. Nikolaev (Andrey.Nikolaev@rdtex.ru) http://AndreyNikolaev.wordpress.com Make the mutex busy in pseudoexamine mode for 50 seconds */ set echo off set feed off set termout off connect / as sysdba col word_size new_value word_size col mutex_value new_value mutex_value select vsize(saddr) word_size, decode(vsize(saddr),4,'0x10001','0x100000001') mutex_value from v$session where rownum=1; oradebug setmypid oradebug poke 0x&1 &word_size &mutex_value host sleep 50 oradebug poke 0x&1 &word_size 0x0 exit
mutex_e_mode.sql
4 Comments »
RSS feed for comments on this post. TrackBack URI
[…] "release" the mutex, I will change its value back to zero. I wrote script mutex_e_mode.sql that "holds" mutex in E mode for 50 […]
Pingback by Mutex waits. Part 1. “Cursor: Pin S” in Oracle 10.2-11.1. Invisible and aggressive. « Latch, mutex and beyond — July 9, 2011 @ 1:19 pm |
[…] table sys.mon_mods$ in exclusive mode nowait“. I will artificially block this mutex using mutex_e_mode.sql script and wait for the next SQL […]
Pingback by Mutex waits. Part II. “Cursor: Pin S” in Oracle 11.2 _mutex_wait_scheme=0. Steps out of shadow. « Latch, mutex and beyond — October 25, 2011 @ 4:23 pm |
Please advise what the value for &1 in the oradebug poke command. Is that the MUTEX_ADDR value from the x$mutex_sleep_history query?
Comment by Thiinh Tran — August 15, 2012 @ 5:19 am |
Yes, this should be the MUTEX_ADDR from the x$mutex_sleep_history. This is the only place where Oracle externalizes the mutex address to SQL.
Comment by andreynikolaev — August 15, 2012 @ 9:15 am |