{"id":4277,"date":"2022-07-02T09:22:48","date_gmt":"2022-07-02T09:22:48","guid":{"rendered":"https:\/\/nenadnoveljic.com\/blog\/?p=4277"},"modified":"2022-07-02T09:22:51","modified_gmt":"2022-07-02T09:22:51","slug":"troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired","status":"publish","type":"post","link":"https:\/\/nenadnoveljic.com\/blog\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\/","title":{"rendered":"Troubleshooting ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired"},"content":{"rendered":"<h1>ORA-00054<\/h1>\n<p>ORA-00054 is the error code for the failed DDL operation attempt while someone was holding the lock. The main difficulty in dealing with this error is that the error message doesn&#8217;t show the blocker. I&#8217;m going to outline several methods for identifying the root cause.<\/p>\n<p>We can simulate this problem by performing a DDL in the victim session while keeping an uncommitted change in the blocking session.<\/p>\n<p>Blocker:<\/p>\n<pre><code>@whoami\n\nSPID                            SID    SERIAL#        PID PROCESS                  DBUSER\n------------------------ ---------- ---------- ---------- ------------------------ --------------------------------------------------------------------------------------------------------------------------------\n1768940                          <span style=\"color: red;\">17<\/span>      20768         48 1768938                  SYS\n\ncreate table table123 (n number);\n\ninsert into <span style=\"color: red;\">table123<\/span> values (1);<\/code><\/pre>\n<p>Victim:<\/p>\n<pre><code>SQL&gt; @whoami\n\nSPID                            SID    SERIAL#        PID PROCESS                  DBUSER\n------------------------ ---------- ---------- ---------- ------------------------ --------------------------------------------------------------------------------------------------------------------------------\n1884653                         335      14388         51 1884651                  SYS\n\n\ntruncate table <span style=\"color: red;\">table123<\/span> ;\n               *\nERROR at line 1:\nORA-00054: resource busy and acquire with NOWAIT specified or timeout expired<\/code><\/pre>\n<h1>Data dictionary<\/h1>\n<p>As for the first step, I&#8217;m checking if the blocker is still holding any locks:<\/p>\n<pre><code>SELECT session_id\n  FROM gv$locked_object v, dba_objects d\n  WHERE v.object_id = d.object_id and object_name = '<span style=\"color: red;\">TABLE123<\/span>' ;\n\nSESSION_ID\n----------\n        <span style=\"color: red;\">17<\/span><\/code><\/pre>\n<p>That&#8217;s all you need to do if the blocker hasn&#8217;t released the lock yet.<\/p>\n<h1>Unknown object name<\/h1>\n<p>In the example above, I knew the name of the locked table because I wrote the SQL statements. But 3rd party applications often obscure this information. In such cases, you can setup the errorstack trace which will provide more information whenever the ORA-00054 occurs:<\/p>\n<pre><code>ALTER SESSION SET EVENTS '54 trace name errorstack level 3';<\/code><\/pre>\n<p>In the trace file, we can see the recursive lock statement including the object name for which the error was raised:<\/p>\n<pre><code>truncate table table123\n               *\nERROR at line 1:\nORA-00054: resource busy and acquire with NOWAIT specified or timeout expired\n\n\nORA-00054: resource busy and acquire with NOWAIT specified or timeout expired\n----- Current SQL Statement for this session (sql_id=fmj06n13hfvdh) -----\nLOCK TABLE \"<span style=\"color: red;\">TABLE123<\/span>\" IN EXCLUSIVE MODE  NOWAIT<\/code><\/pre>\n<p>While the errorstack trace shows the name of the locked object, it doesn&#8217;t tell us anything about the blocker. In contrast, system dump provides the full picture.<\/p>\n<h1>System dump<\/h1>\n<p>The following command configures generating a system dump on the first occurrence of the ORA-00054 error:<\/p>\n<pre><code>alter system set events '00054 trace name systemstate level 266,  lifetime 1';<\/code><\/pre>\n<p>The grep based on the object name reveals only the information about the victim:<\/p>\n<pre><code>grep -i table123 \/u00\/oracle\/orabase\/diag\/rdbms\/dkss65c\/DKSS65C\/trace\/DKSS65C_ora_1884653_0001.trc\nObjectName:  Name=LOCK TABLE \"TABLE123\" IN EXCLUSIVE MODE  NOWAIT\nObjectName:  Name=truncate table table123<\/code><\/pre>\n<p>But with the search based on the object_id we can position ourselves on the entry related to the blocker:<\/p>\n<pre><code>select object_id from dba_objects where object_name='<span style=\"color: red;\">TABLE123<\/span>' ;\n\n OBJECT_ID\n----------\n     <span style=\"color: red;\">26446<\/span>\n\n1 row selected.<\/code><\/pre>\n<pre><code>!grep -i 26446 DB_ora_1884653_0001.trc\nktubl redo: slt: 15 wrp: 1 flg: 0x0c08 prev dba:  0x00000000 rci: 0 opc: 11.1 [objn: 26446 objd: 26446 tsn: 0]\n        <span style=\"color: red;\">DML LOCK: tab=26446<\/span> flg=11 chi=0<\/code><\/pre>\n<p>By scrolling up, we can find out the address of the process state object that was holding the lock:<\/p>\n<pre><code>owner: 0x8ff54a00, <span style=\"color: red;\">proc: 0x97e54fc0<\/span><\/code><\/pre>\n<p>Based on the process&#8217; state object address (<span style=\"color: red;\">0x97e54fc0<\/span>), we can get the Oracle process id:<\/p>\n<pre><code><span style=\"color: red;\">SO: 0x97e54fc0<\/span>, type: process (2), map: 0x9759e9b8\n  state: LIVE (0x4532), flags: 0x1\n  owner: (nil), proc: 0x97e54fc0\n  link: 0x97e54fe0[0x97e54fe0, 0x97e54fe0]\n  child list count: 9, link: 0x97e55030[0x94f92630, 0x85d87270]\n  conid: 1, conuid: 1, SGA version=(1,0), pg: 0\nSOC: 0x9759e9b8, type: process (2), map: 0x97e54fc0\n   state: LIVE (0x99fc), flags: INIT (0x1)\n(process) Oracle <span style=\"color: red;\">pid:48<\/span>, ser:3611, calls cur\/top: (nil)\/0x965bd3f0<\/code><\/pre>\n<p>Finally, we can identify the session id:<\/p>\n<pre><code><span style=\"color: red;\">48<\/span>: USER ospid 1821521 <span style=\"color: red;\">sid 17 ser 45047<\/span>, waiting for 'SQL*Net message from client'<\/code><\/pre>\n<p>The system dump analysis yields the result, but it&#8217;s awkward.<\/p>\n<p>I prefer ASH because the analysis is more user friendly.<\/p>\n<h1>Active session history<\/h1>\n<p>Luckily, we don&#8217;t need to invent the wheel to query ASH. Tanel Poder&#8217;s script <a href=\"https:\/\/github.com\/tanelpoder\/tpt-oracle\/blob\/master\/ash\/ash_wait_chains.sql\">ash_wait_chains.sql<\/a> displays the relationship between blockers and waiters.<\/p>\n<p>No information about the blocker, though, was displayed at first.<\/p>\n<pre><code>@ash_wait_chains \"session_id||' '||sql_opname\" \"session_id=335 and session_serial#=14388\" &amp;hour\n\n-- Display ASH Wait Chain Signatures script v0.6 BETA by Tanel Poder ( http:\/\/blog.tanelpoder.com )\n\n%This     SECONDS        AAS WAIT_CHAIN                                                                                                                                                                                                                                                                                                   FIRST_SEEN          LAST_SEEN\n------ ---------- ---------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------- -------------------\n 100%           4          0 -&gt; 335 TRUNCATE TABLE                                                                                                                                                                                                                                                                                        2022-06-22 15:04:55 2022-06-22 15:18:57<\/code><\/pre>\n<p>The reason for the missing blocker information is that the truncate wasn&#8217;t waiting on the lock to be released &#8211; the error was thrown immediately.<\/p>\n<p>But if we define a ddl_lock_timeout (default is zero), the blocker information will be recorded:<\/p>\n<pre><code>alter session set ddl_lock_timeout = 6 ;\n\nSession altered.\n\nSQL&gt; truncate table table123 ;\ntruncate table table123\n               *\nERROR at line 1:\nORA-00054: resource busy and acquire with NOWAIT specified or timeout expired\n\n\n@ash_wait_chains \"session_id||' '||sql_opname\" \"session_id=335 and session_serial#=14388\" &amp;hour\n\n-- Display ASH Wait Chain Signatures script v0.6 BETA by Tanel Poder ( http:\/\/blog.tanelpoder.com )\n\n%This     SECONDS        AAS WAIT_CHAIN                                                                                                                                                                                                                                                                                                   FIRST_SEEN          LAST_SEEN\n------ ---------- ---------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------- -------------------\n  60%           6          0 -&gt; 335 TRUNCATE TABLE -&gt; [<span style=\"color: red;\">idle blocker 1,17,45047<\/span> (sqlplus@lsdba04i.vt.ch (TNS V1-V3))]                                                                                                                                                                                                                      2022-06-22 15:28:21 2022-06-22 15:28:26<\/code><\/pre>\n<h1>Conclusion<\/h1>\n<p>In conclusion, getting the blocker information for the command that failed with &#8220;ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired&#8221; isn&#8217;t trivial. There are several methods to achive this.<\/p>\n<p>The straightforward way is to query v$locked_object. That will yield the result only if the blocker is still holding the lock. Otherwise, you have to use either ASH or system dump. The former seems more elegant but requires additional licenses.<\/p>\n<p>The Oracle error message doesn&#8217;t show the affected object. If the application hides the failed statement, you can get it from errorstack trace.<\/p>\n<h1>Troubleshooting flow chart<\/h1>\n<p><a href=\"https:\/\/nenadnoveljic.com\/blog\/wp-content\/uploads\/2022\/06\/ORA-00054.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-4281\" src=\"https:\/\/nenadnoveljic.com\/blog\/wp-content\/uploads\/2022\/06\/ORA-00054-199x300.gif\" alt=\"\" width=\"199\" height=\"300\"><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Using system dump, ASH and data dictionary to find the blocker when ORA-00054 was raised <a href=\"https:\/\/nenadnoveljic.com\/blog\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\/\" class=\"more-link\">Continue Reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-4277","post","type-post","status-publish","format-standard","hentry","category-oracle"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Troubleshooting ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired - All-round Database Topics<\/title>\n<meta name=\"description\" content=\"Using system dump, ASH and data dictionary to find the blocker when ORA-00054 was raised\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nenadnoveljic.com\/blog\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Troubleshooting ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired - All-round Database Topics\" \/>\n<meta property=\"og:description\" content=\"Using system dump, ASH and data dictionary to find the blocker when ORA-00054 was raised\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nenadnoveljic.com\/blog\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\/\" \/>\n<meta property=\"og:site_name\" content=\"All-round Database Topics\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-02T09:22:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-07-02T09:22:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/nenadnoveljic.com\/blog\/wp-content\/uploads\/2022\/06\/ORA-00054-199x300.gif\" \/>\n<meta name=\"author\" content=\"Nenad Noveljic\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@NenadNoveljic\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nenad Noveljic\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\\\/\"},\"author\":{\"name\":\"Nenad Noveljic\",\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/#\\\/schema\\\/person\\\/51458d9dd86dbbdd19f5add451d44efa\"},\"headline\":\"Troubleshooting ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired\",\"datePublished\":\"2022-07-02T09:22:48+00:00\",\"dateModified\":\"2022-07-02T09:22:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\\\/\"},\"wordCount\":516,\"commentCount\":1,\"image\":{\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/ORA-00054-199x300.gif\",\"articleSection\":[\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\\\/\",\"url\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\\\/\",\"name\":\"Troubleshooting ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired - All-round Database Topics\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/ORA-00054-199x300.gif\",\"datePublished\":\"2022-07-02T09:22:48+00:00\",\"dateModified\":\"2022-07-02T09:22:51+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/#\\\/schema\\\/person\\\/51458d9dd86dbbdd19f5add451d44efa\"},\"description\":\"Using system dump, ASH and data dictionary to find the blocker when ORA-00054 was raised\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\\\/#primaryimage\",\"url\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/ORA-00054.gif\",\"contentUrl\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/ORA-00054.gif\",\"width\":503,\"height\":758},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Troubleshooting ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/\",\"name\":\"All-round Database Topics\",\"description\":\"Nenad Noveljic\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/#\\\/schema\\\/person\\\/51458d9dd86dbbdd19f5add451d44efa\",\"name\":\"Nenad Noveljic\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a97b796613ea48ec8a7b79c8ffe1c685dcffc920c68121f6238d5caab5070670?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a97b796613ea48ec8a7b79c8ffe1c685dcffc920c68121f6238d5caab5070670?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a97b796613ea48ec8a7b79c8ffe1c685dcffc920c68121f6238d5caab5070670?s=96&d=mm&r=g\",\"caption\":\"Nenad Noveljic\"},\"sameAs\":[\"nenad-noveljic-9b746a6\",\"https:\\\/\\\/x.com\\\/NenadNoveljic\"],\"url\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/author\\\/nenad\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Troubleshooting ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired - All-round Database Topics","description":"Using system dump, ASH and data dictionary to find the blocker when ORA-00054 was raised","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/nenadnoveljic.com\/blog\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\/","og_locale":"en_US","og_type":"article","og_title":"Troubleshooting ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired - All-round Database Topics","og_description":"Using system dump, ASH and data dictionary to find the blocker when ORA-00054 was raised","og_url":"https:\/\/nenadnoveljic.com\/blog\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\/","og_site_name":"All-round Database Topics","article_published_time":"2022-07-02T09:22:48+00:00","article_modified_time":"2022-07-02T09:22:51+00:00","og_image":[{"url":"https:\/\/nenadnoveljic.com\/blog\/wp-content\/uploads\/2022\/06\/ORA-00054-199x300.gif","type":"","width":"","height":""}],"author":"Nenad Noveljic","twitter_card":"summary_large_image","twitter_creator":"@NenadNoveljic","twitter_misc":{"Written by":"Nenad Noveljic","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/nenadnoveljic.com\/blog\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\/#article","isPartOf":{"@id":"https:\/\/nenadnoveljic.com\/blog\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\/"},"author":{"name":"Nenad Noveljic","@id":"https:\/\/nenadnoveljic.com\/blog\/#\/schema\/person\/51458d9dd86dbbdd19f5add451d44efa"},"headline":"Troubleshooting ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired","datePublished":"2022-07-02T09:22:48+00:00","dateModified":"2022-07-02T09:22:51+00:00","mainEntityOfPage":{"@id":"https:\/\/nenadnoveljic.com\/blog\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\/"},"wordCount":516,"commentCount":1,"image":{"@id":"https:\/\/nenadnoveljic.com\/blog\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\/#primaryimage"},"thumbnailUrl":"https:\/\/nenadnoveljic.com\/blog\/wp-content\/uploads\/2022\/06\/ORA-00054-199x300.gif","articleSection":["Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/nenadnoveljic.com\/blog\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/nenadnoveljic.com\/blog\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\/","url":"https:\/\/nenadnoveljic.com\/blog\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\/","name":"Troubleshooting ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired - All-round Database Topics","isPartOf":{"@id":"https:\/\/nenadnoveljic.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/nenadnoveljic.com\/blog\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\/#primaryimage"},"image":{"@id":"https:\/\/nenadnoveljic.com\/blog\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\/#primaryimage"},"thumbnailUrl":"https:\/\/nenadnoveljic.com\/blog\/wp-content\/uploads\/2022\/06\/ORA-00054-199x300.gif","datePublished":"2022-07-02T09:22:48+00:00","dateModified":"2022-07-02T09:22:51+00:00","author":{"@id":"https:\/\/nenadnoveljic.com\/blog\/#\/schema\/person\/51458d9dd86dbbdd19f5add451d44efa"},"description":"Using system dump, ASH and data dictionary to find the blocker when ORA-00054 was raised","breadcrumb":{"@id":"https:\/\/nenadnoveljic.com\/blog\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nenadnoveljic.com\/blog\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/nenadnoveljic.com\/blog\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\/#primaryimage","url":"https:\/\/nenadnoveljic.com\/blog\/wp-content\/uploads\/2022\/06\/ORA-00054.gif","contentUrl":"https:\/\/nenadnoveljic.com\/blog\/wp-content\/uploads\/2022\/06\/ORA-00054.gif","width":503,"height":758},{"@type":"BreadcrumbList","@id":"https:\/\/nenadnoveljic.com\/blog\/troubleshooting-ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/nenadnoveljic.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Troubleshooting ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired"}]},{"@type":"WebSite","@id":"https:\/\/nenadnoveljic.com\/blog\/#website","url":"https:\/\/nenadnoveljic.com\/blog\/","name":"All-round Database Topics","description":"Nenad Noveljic","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nenadnoveljic.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/nenadnoveljic.com\/blog\/#\/schema\/person\/51458d9dd86dbbdd19f5add451d44efa","name":"Nenad Noveljic","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a97b796613ea48ec8a7b79c8ffe1c685dcffc920c68121f6238d5caab5070670?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a97b796613ea48ec8a7b79c8ffe1c685dcffc920c68121f6238d5caab5070670?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a97b796613ea48ec8a7b79c8ffe1c685dcffc920c68121f6238d5caab5070670?s=96&d=mm&r=g","caption":"Nenad Noveljic"},"sameAs":["nenad-noveljic-9b746a6","https:\/\/x.com\/NenadNoveljic"],"url":"https:\/\/nenadnoveljic.com\/blog\/author\/nenad\/"}]}},"_links":{"self":[{"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/posts\/4277","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/comments?post=4277"}],"version-history":[{"count":1,"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/posts\/4277\/revisions"}],"predecessor-version":[{"id":4283,"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/posts\/4277\/revisions\/4283"}],"wp:attachment":[{"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/media?parent=4277"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/categories?post=4277"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/tags?post=4277"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}