{"id":743,"date":"2014-03-25T15:35:44","date_gmt":"2014-03-25T18:35:44","guid":{"rendered":"http:\/\/www.dbarj.com.br\/?p=743"},"modified":"2015-03-31T01:10:10","modified_gmt":"2015-03-31T04:10:10","slug":"howto-solve-session-waiting-sqlnet-from-to-dblink-forever","status":"publish","type":"post","link":"https:\/\/www.dbarj.com.br\/en\/2014\/03\/howto-solve-session-waiting-sqlnet-from-to-dblink-forever\/","title":{"rendered":"Howto solve Session waiting SQL*Net from\/to DBLink forever"},"content":{"rendered":"<p>In large corporations, it is still common to find several different Oracle versions (9i, 10g and 11g) communicating with each other. Among some of them, the Oracle Compatibility Matrix alerts that some error may occurs. Even so, the DBA still creates the database link with the impression that will always work.<\/p>\n<p>If we analyze the <a href=\"https:\/\/support.oracle.com\/epmos\/faces\/DocumentDisplay?id=207303.1\" target=\"_blank\">Doc ID 207303.1<\/a> (<strong>Client \/ Server \/ Interoperability Support Matrix For Different Oracle Versions<\/strong>), we&#8217;ll see that for a properly functioning DBLink, the client-server compatibility table should work in both directions, which usually restricts us practically to the same version of Oracle on both sides.<\/p>\n<p>For many months I have had constant problems of clients calling me complaining of sessions marked <span style=\"color: #800000;\"><strong>KILLED<\/strong> <\/span>not disappearing, locked objects or jobs running forever. When analyzing the cause, I usually faced Oracle 9i or 10g versions with one waits below:<\/p>\n<ul>\n<li>SQL*Net message from dblink<\/li>\n<li>SQL*Net message to dblink<\/li>\n<li>SQL*Net more data from dblink<\/li>\n<li>SQL*Net more data to dblink<\/li>\n<\/ul>\n<p>In addition to being caused by the difference in versions, this failure of communication between databases may also be associated with the Oracle bugs that need to be corrected, lapses in network and\/or failures in O.S.<\/p>\n<p>Since it was not possible to align all Oracle versions of the company or solve the above problems, I developed the following job that searches the sessions that are &#8220;waiting for nothing&#8221; sporadically, remove them if they are in wait for more than X seconds, and finally kill the process on the operating system to ensure that it will be eliminated.<\/p>\n<p><span style=\"color: #800000;\"><strong>Warning:<\/strong> Killing an Oracle process on the operating system is never a task recommended by Oracle. Use it at your own risk. This procedure was tested on several databases running on &#8220;Dedicated Server Mode&#8221;, not on &#8220;Shared Server Mode&#8221;.<\/span><\/p>\n<p>Steps:<br \/>\n1- Create a java source that runs the &#8220;kill&#8221; command on the Operating System<br \/>\n2- Create a procedure that calls\u00a0this java source.<br \/>\n3- Create a procedure which will fetch the dead sessions and kill the processes.<br \/>\n4- Create a job to run the procedure on item every hour.<\/p>\n<h3>1) Java Source to kill the process:<\/h3>\n<p>First of all, make sure that Java is enabled in your Oracle instance:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"oracledb\">SQL&gt; select comp_name, version from dba_registry where comp_name like '%JAVA%';\r\n\r\nCOMP_NAME                                                                        VERSION\r\n-------------------------------------------------------------------------------- ------------------------------\r\nJServer JAVA Virtual Machine                                                     9.2.0.8.0\r\n\r\nSQL&gt;<\/pre>\n<p>Let&#8217;s start creating the Java Source:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"oracledb\">CREATE AND COMPILE JAVA SOURCE NAMED \"Kill\" AS\r\nimport java.io.*;\r\npublic class Kill {\r\n  public static void executeCommand(String spid) {\r\n    try {\r\n      String[] finalCommand;\r\n      if (isWindows()) {\r\n        finalCommand = new String[4];\r\n        \/\/ Use the appropriate path for your windows version.\r\n        \/\/finalCommand[0] = \"C:\\\\winnt\\\\system32\\\\cmd.exe\";    \/\/ Windows NT\/2000\r\n        \/\/finalCommand[0] = \"C:\\\\windows\\\\syswow64\\\\cmd.exe\";  \/\/ Windows 64-bit\r\n        finalCommand[0] = \"C:\\\\windows\\\\system32\\\\taskkill.exe\";    \/\/ Windows XP\/2003\r\n        finalCommand[1] = \"\/f\";\r\n        finalCommand[2] = \"\/pid\";\r\n        finalCommand[3] = spid;\r\n      }\r\n      else {\r\n        finalCommand = new String[3];\r\n        finalCommand[0] = \"\/bin\/kill\";\r\n        finalCommand[1] = \"-9\";\r\n        finalCommand[2] = spid;\r\n      }\r\n\r\n      final Process pr = Runtime.getRuntime().exec(finalCommand);\r\n      pr.waitFor();\r\n\r\n      new Thread(new Runnable(){\r\n        public void run() {\r\n          BufferedReader br_in = null;\r\n          try {\r\n            br_in = new BufferedReader(new InputStreamReader(pr.getInputStream()));\r\n            String buff = null;\r\n            while ((buff = br_in.readLine()) != null) {\r\n              System.out.println(\"Process out :\" + buff);\r\n              try {Thread.sleep(100); } catch(Exception e) {}\r\n            }\r\n            br_in.close();\r\n          }\r\n          catch (IOException ioe) {\r\n            System.out.println(\"Exception caught printing process output.\");\r\n            ioe.printStackTrace();\r\n          }\r\n          finally {\r\n            try {\r\n              br_in.close();\r\n            } catch (Exception ex) {}\r\n          }\r\n        }\r\n      }).start();\r\n\r\n      new Thread(new Runnable(){\r\n        public void run() {\r\n          BufferedReader br_err = null;\r\n          try {\r\n            br_err = new BufferedReader(new InputStreamReader(pr.getErrorStream()));\r\n            String buff = null;\r\n            while ((buff = br_err.readLine()) != null) {\r\n              System.out.println(\"Process err :\" + buff);\r\n              try {Thread.sleep(100); } catch(Exception e) {}\r\n            }\r\n            br_err.close();\r\n          }\r\n          catch (IOException ioe) {\r\n            System.out.println(\"Exception caught printing process error.\");\r\n            ioe.printStackTrace();\r\n          }\r\n          finally {\r\n            try {\r\n              br_err.close();\r\n            } catch (Exception ex) {}\r\n          }\r\n        }\r\n      }).start();\r\n    }\r\n    catch (Exception ex) {\r\n      System.out.println(ex.getLocalizedMessage());\r\n    }\r\n  }\r\n\r\n  public static boolean isWindows() {\r\n    if (System.getProperty(\"os.name\").toLowerCase().indexOf(\"windows\") != -1)\r\n      return true;\r\n    else\r\n      return false;\r\n  }\r\n\r\n};\r\n\/\r\n\r\nshow errors java source \"Kill\"<\/pre>\n<p><em>NOTE: If necessary, make the appropriate adjustments according to the location of your OS binaries<\/em><\/p>\n<h3>2) Procedure to execute Java Source<\/h3>\n<p>Create a procedure to do the interface with the user who created the Java Source.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"oracledb\">CREATE PROCEDURE host_kill (p_spid  IN  VARCHAR2)\r\nAS LANGUAGE JAVA \r\nNAME 'Kill.executeCommand (java.lang.String)';\r\n\/<\/pre>\n<p>Now grant the following privileges to the same user (change the script with the appropriate username).<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"oracledb\">DECLARE\r\n  l_schema VARCHAR2(30) := 'USERNAME' -- Adjust as required.\r\nBEGIN\r\n  DBMS_JAVA.grant_permission(l_schema, 'SYS:java.io.FilePermission', '\/bin\/kill', 'execute' );\r\n  DBMS_JAVA.grant_permission(l_schema, 'SYS:java.lang.RuntimePermission', 'writeFileDescriptor', '');\r\n  DBMS_JAVA.grant_permission(l_schema, 'SYS:java.lang.RuntimePermission', 'readFileDescriptor', '');\r\nEND;\r\n\/<\/pre>\n<h3>3) Create procedure to kill the &#8220;everlasting wait&#8221; sessions<\/h3>\n<p>To create this procedure, first grant the privileges below to the same user who owns the procedure in step 2.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"oracledb\">GRANT SELECT ON V_$SESSION TO USERNAME;\r\nGRANT SELECT ON V_$SESSION_WAIT TO USERNAME;\r\nGRANT SELECT ON V_$PROCESS TO USERNAME;<\/pre>\n<p>Now create a procedure that will search sessions that are waiting DBLink for over 2 hours to eliminate them. After that, this same process will &#8220;kill&#8221; those sessions in OS.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CREATE OR REPLACE PROCEDURE KILL_EXPIRED_DBLINK_CONNECTION AS\r\n  SESSION_MARKED_KILL EXCEPTION;\r\n  PRAGMA EXCEPTION_INIT(SESSION_MARKED_KILL, -31);\r\n  -------------------\r\n  CURSOR C1 IS\r\n    SELECT 'alter system kill session ''' || A.SID || ',' || A.SERIAL# || ''' immediate' KILL\r\n    FROM   V$SESSION A,\r\n           V$SESSION_WAIT B\r\n    WHERE  A.SID = B.SID\r\n    AND    B.EVENT LIKE 'SQL*Net % from dblink'\r\n    AND    B.STATE = 'WAITING'\r\n    AND    B.SECONDS_IN_WAIT &gt; 7200; -- 2 hours\r\n  -------------------\r\n  CURSOR C2 IS\r\n    SELECT A.SPID\r\n    FROM   V$PROCESS A,\r\n           V$SESSION B\r\n    WHERE  A.ADDR = B.PADDR\r\n    AND    B.STATUS LIKE 'KILLED';\r\nBEGIN\r\n  FOR I1 IN C1\r\n  LOOP\r\n    BEGIN\r\n      EXECUTE IMMEDIATE I1.KILL;\r\n    EXCEPTION\r\n      WHEN SESSION_MARKED_KILL THEN\r\n        NULL;\r\n    END;\r\n  END LOOP;\r\n  -------------------\r\n  FOR I2 IN C2\r\n  LOOP\r\n    HOST_KILL(P_SPID =&gt; I2.SPID);\r\n  END LOOP;\r\nEND;\r\n\/<\/pre>\n<h3>4) Create cleaning job<\/h3>\n<p>Finally, create a job that will run every hour:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"oracledb\">-- Oracle 9i\r\n\r\nDECLARE\r\n  JOBN NUMBER;\r\nBEGIN\r\n  SYS.DBMS_JOB.SUBMIT(JOB =&gt; JOBN, WHAT =&gt; 'BEGIN KILL_EXPIRED_DBLINK_CONNECTION; END;', NEXT_DATE =&gt; SYSDATE, INTERVAL =&gt; 'SYSDATE + 1 \/ 24');\r\n  COMMIT;\r\nEND;\r\n\/\r\n\r\n-- Oracle &gt;= 10g\r\nBEGIN\r\nDBMS_SCHEDULER.CREATE_JOB (\r\n   job_name             =&gt; 'JOB_KILL_EXPIRED_DBLINK_CONN',\r\n   job_type             =&gt; 'STORED_PROCEDURE',\r\n   job_action           =&gt; 'KILL_EXPIRED_DBLINK_CONNECTION',\r\n   number_of_arguments  =&gt; 0,\r\n   start_date           =&gt; SYSDATE,\r\n   repeat_interval      =&gt; 'FREQ=HOURLY;INTERVAL=1;BYMINUTE=0',\r\n   end_date             =&gt; NULL,\r\n   job_class            =&gt; 'DEFAULT_JOB_CLASS',\r\n   enabled              =&gt; TRUE,\r\n   auto_drop            =&gt; FALSE,\r\n   comments             =&gt; 'Job to kill expired DBLink''s connections');\r\nEND;\r\n\/<\/pre>\n<p>Great, now the &#8220;everlasting wait&#8221; and killed Oracle sessions will be automaticaly eliminated.<\/p>\n<p>This post was based on Article <a href=\"http:\/\/www.oracle-base.com\/articles\/8i\/shell-commands-from-plsql.php\">http:\/\/www.oracle-base.com\/articles\/8i\/shell-commands-from-plsql.php<\/a>.<\/p>\n<b>Have you enjoyed? Please leave a comment or give a \ud83d\udc4d!<\/b>\n<div class='watch-action'><div class='watch-position align-left'><div class='action-like'><a class='lbg-style2 like-743 jlk' href='javascript:void(0)' data-task='like' data-post_id='743' data-nonce='de4404f630' rel='nofollow'><img class='wti-pixel' src='https:\/\/www.dbarj.com.br\/wp-content\/plugins\/wti-like-post\/images\/pixel.gif' title='Like' \/><span class='lc-743 lc'>+10<\/span><\/a><\/div><\/div> <div class='status-743 status align-left'><\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>In large corporations, it is still common to find several different Oracle versions (9i, 10g and 11g) communicating with each other. Among some of them, the Oracle Compatibility Matrix alerts that some error may occurs. Even so, the DBA still creates the database link with the impression that will always work. If we analyze the &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/www.dbarj.com.br\/en\/2014\/03\/howto-solve-session-waiting-sqlnet-from-to-dblink-forever\/\">Continue reading<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15],"tags":[],"class_list":["post-743","post","type-post","status-publish","format-standard","hentry","category-database-en","item-wrap"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Howto solve Session waiting SQL*Net from\/to DBLink forever - DBA - Rodrigo Jorge - Oracle Tips and Guides<\/title>\n<meta name=\"description\" content=\"How to troubleshoot sessions in wait due to DBLink issues and not disappearing even after a session kill.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbarj.com.br\/en\/2014\/03\/howto-solve-session-waiting-sqlnet-from-to-dblink-forever\/\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DBA RJ\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/03\\\/howto-solve-session-waiting-sqlnet-from-to-dblink-forever\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/03\\\/howto-solve-session-waiting-sqlnet-from-to-dblink-forever\\\/\"},\"author\":{\"name\":\"DBA RJ\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\"},\"headline\":\"Howto solve Session waiting SQL*Net from\\\/to DBLink forever\",\"datePublished\":\"2014-03-25T18:35:44+00:00\",\"dateModified\":\"2015-03-31T04:10:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/03\\\/howto-solve-session-waiting-sqlnet-from-to-dblink-forever\\\/\"},\"wordCount\":535,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\"},\"articleSection\":[\"Oracle Database General\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/03\\\/howto-solve-session-waiting-sqlnet-from-to-dblink-forever\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/03\\\/howto-solve-session-waiting-sqlnet-from-to-dblink-forever\\\/\",\"url\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/03\\\/howto-solve-session-waiting-sqlnet-from-to-dblink-forever\\\/\",\"name\":\"Howto solve Session waiting SQL*Net from\\\/to DBLink forever - DBA - Rodrigo Jorge - Oracle Tips and Guides\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#website\"},\"datePublished\":\"2014-03-25T18:35:44+00:00\",\"dateModified\":\"2015-03-31T04:10:10+00:00\",\"description\":\"How to troubleshoot sessions in wait due to DBLink issues and not disappearing even after a session kill.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/03\\\/howto-solve-session-waiting-sqlnet-from-to-dblink-forever\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/03\\\/howto-solve-session-waiting-sqlnet-from-to-dblink-forever\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/03\\\/howto-solve-session-waiting-sqlnet-from-to-dblink-forever\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Howto solve Session waiting SQL*Net from\\\/to DBLink forever\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/\",\"name\":\"DBA - Rodrigo Jorge - Oracle Tips and Guides\",\"description\":\"Blog about Databases, Security and High Availability\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\",\"name\":\"DBA RJ\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/RodrigoJorgePOUG19.png\",\"url\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/RodrigoJorgePOUG19.png\",\"contentUrl\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/RodrigoJorgePOUG19.png\",\"width\":712,\"height\":712,\"caption\":\"DBA RJ\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/RodrigoJorgePOUG19.png\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Howto solve Session waiting SQL*Net from\/to DBLink forever - DBA - Rodrigo Jorge - Oracle Tips and Guides","description":"How to troubleshoot sessions in wait due to DBLink issues and not disappearing even after a session kill.","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:\/\/www.dbarj.com.br\/en\/2014\/03\/howto-solve-session-waiting-sqlnet-from-to-dblink-forever\/","twitter_misc":{"Written by":"DBA RJ","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbarj.com.br\/en\/2014\/03\/howto-solve-session-waiting-sqlnet-from-to-dblink-forever\/#article","isPartOf":{"@id":"https:\/\/www.dbarj.com.br\/en\/2014\/03\/howto-solve-session-waiting-sqlnet-from-to-dblink-forever\/"},"author":{"name":"DBA RJ","@id":"https:\/\/www.dbarj.com.br\/en\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9"},"headline":"Howto solve Session waiting SQL*Net from\/to DBLink forever","datePublished":"2014-03-25T18:35:44+00:00","dateModified":"2015-03-31T04:10:10+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbarj.com.br\/en\/2014\/03\/howto-solve-session-waiting-sqlnet-from-to-dblink-forever\/"},"wordCount":535,"commentCount":3,"publisher":{"@id":"https:\/\/www.dbarj.com.br\/en\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9"},"articleSection":["Oracle Database General"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbarj.com.br\/en\/2014\/03\/howto-solve-session-waiting-sqlnet-from-to-dblink-forever\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbarj.com.br\/en\/2014\/03\/howto-solve-session-waiting-sqlnet-from-to-dblink-forever\/","url":"https:\/\/www.dbarj.com.br\/en\/2014\/03\/howto-solve-session-waiting-sqlnet-from-to-dblink-forever\/","name":"Howto solve Session waiting SQL*Net from\/to DBLink forever - DBA - Rodrigo Jorge - Oracle Tips and Guides","isPartOf":{"@id":"https:\/\/www.dbarj.com.br\/en\/#website"},"datePublished":"2014-03-25T18:35:44+00:00","dateModified":"2015-03-31T04:10:10+00:00","description":"How to troubleshoot sessions in wait due to DBLink issues and not disappearing even after a session kill.","breadcrumb":{"@id":"https:\/\/www.dbarj.com.br\/en\/2014\/03\/howto-solve-session-waiting-sqlnet-from-to-dblink-forever\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbarj.com.br\/en\/2014\/03\/howto-solve-session-waiting-sqlnet-from-to-dblink-forever\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbarj.com.br\/en\/2014\/03\/howto-solve-session-waiting-sqlnet-from-to-dblink-forever\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.dbarj.com.br\/en\/"},{"@type":"ListItem","position":2,"name":"Howto solve Session waiting SQL*Net from\/to DBLink forever"}]},{"@type":"WebSite","@id":"https:\/\/www.dbarj.com.br\/en\/#website","url":"https:\/\/www.dbarj.com.br\/en\/","name":"DBA - Rodrigo Jorge - Oracle Tips and Guides","description":"Blog about Databases, Security and High Availability","publisher":{"@id":"https:\/\/www.dbarj.com.br\/en\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbarj.com.br\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.dbarj.com.br\/en\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9","name":"DBA RJ","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2019\/09\/RodrigoJorgePOUG19.png","url":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2019\/09\/RodrigoJorgePOUG19.png","contentUrl":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2019\/09\/RodrigoJorgePOUG19.png","width":712,"height":712,"caption":"DBA RJ"},"logo":{"@id":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2019\/09\/RodrigoJorgePOUG19.png"}}]}},"_links":{"self":[{"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/posts\/743","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/comments?post=743"}],"version-history":[{"count":0,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/posts\/743\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/media?parent=743"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/categories?post=743"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/tags?post=743"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}