{"id":11534,"date":"2018-08-10T14:47:47","date_gmt":"2018-08-10T12:47:47","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/"},"modified":"2018-08-10T14:47:47","modified_gmt":"2018-08-10T12:47:47","slug":"transport_connect_timeout-and-retry_count","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/","title":{"rendered":"TRANSPORT_CONNECT_TIMEOUT and RETRY_COUNT"},"content":{"rendered":"<h2>By Franck Pachot<\/h2>\n<p>.<br \/>\nWhen you have a Data Guard configuration, you want the application to connect to the right server, where the primary is, without taking too much time. The default TCP timeout is 1 minute which is too long. When you don&#8217;t want to configure a virtual IP address (VIP) you can simply list all the addresses in the client connection string. But then you need to reduce the timeout. A short duration in 1 to 5 seconds will be ok most of the time, but in case of network issue, you want to give a chance to retry with a longer timeout. This post is about the connection string parameters to define this. Of course, all is <a href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/18\/netrf\/local-naming-parameters-in-tnsnames-ora-file.html#GUID-0CE85944-98CE-4984-8B5D-A7942B30F446\" target=\"_blank\" rel=\"noopener noreferrer\">documented<\/a> but the goal of this post is also to show how to quickly test it. Because a reliable understanding of how it works relies on both documentation and test.<br \/>\n<!--more--><br \/>\nHere is a simple client failover configuration where the connection tries 10.10.10.10 and, if it fails, tries 10.10.10.11<\/p>\n<pre><code>\nDEFAULT=\n (DESCRIPTION=\n  (CONNECT_DATA=(SERVICE_NAME=pdb1))\n  (ADDRESS_LIST=\n   (ADDRESS=(PROTOCOL=TCP)(HOST=10.10.10.10)(PORT=1521))\n   (ADDRESS=(PROTOCOL=TCP)(HOST=10.10.10.11)(PORT=1521))\n  )\n )\n<\/code><\/pre>\n<p>The problem with that is when the 10.10.10.10 is down then the 10.10.10.11 will be tried only after 60 seconds, the default TCP timeout. You can completely avoid waiting for the timeout by using a virtual IP that will always be up, started on the failed-over server. But you can also reduce the TCP timeout to a few seconds.<\/p>\n<p>Here is a tnsping with the above tnsnames.ora entry and when both servers are down:<\/p>\n<pre><code>\n$ time tnsping DESCRIPTION\n&nbsp;\nTNS Ping Utility for Linux: Version 18.0.0.0.0 - Production on 10-AUG-2018 15:15:55\n&nbsp;\nCopyright (c) 1997, 2018, Oracle.  All rights reserved.\n&nbsp;\nUsed parameter files:\n&nbsp;\nUsed TNSNAMES adapter to resolve the alias\nAttempting to contact (DESCRIPTION= (CONNECT_DATA=(SERVICE_NAME=pdb1)) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=10.10.10.10)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=10.10.10.11)(PORT=1521))))\nTNS-12535: TNS:operation timed out\n&nbsp;\nreal    2m0.051s\nuser    0m0.005s\nsys     0m0.011s\n<\/code><\/pre>\n<p>That&#8217;s 2 minutes because there is a 1 minute timeout for each address.<\/p>\n<h3>TRANSPORT_CONNECT_TIMEOUT<\/h3>\n<p>Now, just adding the TRANSPORT_CONNECT_TIMEOUT to the connection string description to reduce the timout to 4 seconds:<\/p>\n<pre><code>\nDESCRIPTION=\n (DESCRIPTION=\n  (CONNECT_DATA=(SERVICE_NAME=pdb1))\n  (TRANSPORT_CONNECT_TIMEOUT=4)\n  (ADDRESS_LIST=\n   (ADDRESS=(PROTOCOL=TCP)(HOST=10.10.10.10)(PORT=1521))\n   (ADDRESS=(PROTOCOL=TCP)(HOST=10.10.10.11)(PORT=1521))\n  )\n )\n<\/code><\/pre>\n<p>The total time to get the answer from both addresses is 8 seconds &#8211; 4 second for each:<\/p>\n<pre><code>\n$ time tnsping DESCRIPTION\n&nbsp;\nTNS Ping Utility for Linux: Version 18.0.0.0.0 - Production on 10-AUG-2018 15:15:55\n&nbsp;\nCopyright (c) 1997, 2018, Oracle.  All rights reserved.\n&nbsp;\nUsed parameter files:\n&nbsp;\nUsed TNSNAMES adapter to resolve the alias\nAttempting to contact (DESCRIPTION= (CONNECT_DATA=(SERVICE_NAME=pdb1)) (TRANSPORT_CONNECT_TIMEOUT=4) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=10.10.10.10)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=10.10.10.11)(PORT=1521))))\nTNS-12535: TNS:operation timed out\n&nbsp;\nreal    0m8.023s\nuser    0m0.010s\nsys     0m0.006s\n<\/code><\/pre>\n<h3>RETRY_COUNT<\/h3>\n<p>If you lower the timeout, you may give a chance to retry a few times with RETRY_COUNT. There, RETRY_COUNT=2 will give 3 attempts ( 1 + 2 retries ) to the address list:<\/p>\n<pre><code>\n$ time tnsping RETRY_COUNT\n&nbsp;\nTNS Ping Utility for Linux: Version 18.0.0.0.0 - Production on 10-AUG-2018 15:49:34\n&nbsp;\nCopyright (c) 1997, 2018, Oracle.  All rights reserved.\n&nbsp;\nUsed parameter files:\n&nbsp;\nUsed TNSNAMES adapter to resolve the alias\nAttempting to contact (DESCRIPTION= (CONNECT_DATA=(SERVICE_NAME=pdb1)) (TRANSPORT_CONNECT_TIMEOUT=4) (RETRY_COUNT=2) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=10.10.10.10)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=10.10.10.11)(PORT=1521))))\nTNS-12535: TNS:operation timed out\n&nbsp;\nreal    0m24.049s\nuser    0m0.011s\nsys     0m0.010s\n<\/code><\/pre>\n<p>This has tried 10.10.10.10 and then 10.10.10.11 for 4 seconds each, and then retried 2 times wich in total takes 4+4+2*(4+4)=24 seconds<\/p>\n<h3>DESCRIPTION_LIST<\/h3>\n<p>The TRANSPORT and RETRY_COUNT are used only in the DESCRIPTION. You may want to give several attempts with an increasing timeout. For example: try each address for one second to get a quick connection to the primary, wherever it is, when the network is in good health. Then give two attempts with a 5 seconds timeout for bad network times. And then one final attempt to each with the default timeout to be sure that the servers are down.<\/p>\n<p>You can use a DESCRIPTION_LIST for this:<\/p>\n<pre><code>\nINCREASING=\n (DESCRIPTION_LIST=\n  (LOAD_BALANCE=off)\n  (DESCRIPTION=\n   (CONNECT_DATA=(SERVICE_NAME=pdb1))\n   (TRANSPORT_CONNECT_TIMEOUT=1)\n   (ADDRESS_LIST=\n    (ADDRESS=(PROTOCOL=TCP)(HOST=10.10.10.10)(PORT=1521))\n    (ADDRESS=(PROTOCOL=TCP)(HOST=10.10.10.11)(PORT=1521))\n   )\n  )\n  (DESCRIPTION=\n   (CONNECT_DATA=(SERVICE_NAME=pdb1))\n   (TRANSPORT_CONNECT_TIMEOUT=5)\n   (RETRY_COUNT=1)\n   (ADDRESS_LIST=\n    (ADDRESS=(PROTOCOL=TCP)(HOST=10.10.10.10)(PORT=1521))\n    (ADDRESS=(PROTOCOL=TCP)(HOST=10.10.10.11)(PORT=1521))\n   )\n  )\n  (DESCRIPTION=\n   (CONNECT_DATA=(SERVICE_NAME=pdb1))\n   (TRANSPORT_CONNECT_TIMEOUT=2)\n   (ADDRESS_LIST=\n    (ADDRESS=(PROTOCOL=TCP)(HOST=10.10.10.10)(PORT=1521))\n    (ADDRESS=(PROTOCOL=TCP)(HOST=10.10.10.11)(PORT=1521))\n   )\n  )\n )\n<\/code><\/pre>\n<p>Rather than just time the total attempts, I&#8217;ll strace each connections:<\/p>\n<pre><code>\n$ strace -tT tnsping INCREASING 2&gt;&amp;1 | grep -C1 --color=auto -E 'poll.*|inet_addr[()\".0-9]*'\n&nbsp;\n16:15:49 fcntl(4, F_SETFL, O_RDONLY|O_NONBLOCK) = 0 &lt;0.000008&gt;\n16:15:49 connect(4, {sa_family=AF_INET, sin_port=htons(1521), sin_addr=inet_addr(\"10.10.10.10\")}, 16) = -1 EINPROGRESS (Operation now in progress) &lt;0.000087&gt;\n16:15:49 times(NULL)                    = 434920117 &lt;0.000011&gt;\n16:15:49 mmap(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7efce31bc000 &lt;0.000013&gt;\n16:15:49 poll([{fd=4, events=POLLOUT}], 1, 1000) = 0 (Timeout) &lt;1.001435&gt;\n16:15:50 close(4)                       = 0 &lt;0.000256&gt;\n--\n16:15:50 fcntl(4, F_SETFL, O_RDONLY|O_NONBLOCK) = 0 &lt;0.000060&gt;\n16:15:50 connect(4, {sa_family=AF_INET, sin_port=htons(1521), sin_addr=inet_addr(\"10.10.10.11\")}, 16) = -1 EINPROGRESS (Operation now in progress) &lt;0.000495&gt;\n16:15:50 times(NULL)                    = 434920218 &lt;0.000062&gt;\n16:15:50 poll([{fd=4, events=POLLOUT}], 1, 1000) = 0 (Timeout) &lt;1.000768&gt;\n16:15:51 close(4)                       = 0 &lt;0.000050&gt;\n--\n16:15:51 fcntl(4, F_SETFL, O_RDONLY|O_NONBLOCK) = 0 &lt;0.000015&gt;\n16:15:51 connect(4, {sa_family=AF_INET, sin_port=htons(1521), sin_addr=inet_addr(\"10.10.10.10\")}, 16) = -1 EINPROGRESS (Operation now in progress) &lt;0.000060&gt;\n16:15:51 times(NULL)                    = 434920318 &lt;0.000010&gt;\n16:15:51 poll([{fd=4, events=POLLOUT}], 1, 5000) = 0 (Timeout) &lt;5.005563&gt;\n16:15:56 close(4)                       = 0 &lt;0.000027&gt;\n--\n16:15:56 fcntl(4, F_SETFL, O_RDONLY|O_NONBLOCK) = 0 &lt;0.000012&gt;\n16:15:56 connect(4, {sa_family=AF_INET, sin_port=htons(1521), sin_addr=inet_addr(\"10.10.10.11\")}, 16) = -1 EINPROGRESS (Operation now in progress) &lt;0.000081&gt;\n16:15:56 times(NULL)                    = 434920819 &lt;0.000015&gt;\n16:15:56 poll([{fd=4, events=POLLOUT}], 1, 5000) = 0 (Timeout) &lt;5.006265&gt;\n16:16:01 close(4)                       = 0 &lt;0.000192&gt;\n--\n16:16:01 fcntl(4, F_SETFL, O_RDONLY|O_NONBLOCK) = 0 &lt;0.000079&gt;\n16:16:01 connect(4, {sa_family=AF_INET, sin_port=htons(1521), sin_addr=inet_addr(\"10.10.10.10\")}, 16) = -1 EINPROGRESS (Operation now in progress) &lt;0.000486&gt;\n16:16:01 times(NULL)                    = 434921320 &lt;0.000087&gt;\n16:16:01 poll([{fd=4, events=POLLOUT}], 1, 5000) = 0 (Timeout) &lt;5.004660&gt;\n16:16:06 close(4)                       = 0 &lt;0.000611&gt;\n--\n16:16:06 fcntl(4, F_SETFL, O_RDONLY|O_NONBLOCK) = 0 &lt;0.000114&gt;\n16:16:06 connect(4, {sa_family=AF_INET, sin_port=htons(1521), sin_addr=inet_addr(\"10.10.10.11\")}, 16) = -1 EINPROGRESS (Operation now in progress) &lt;0.000536&gt;\n16:16:06 times(NULL)                    = 434921822 &lt;0.000097&gt;\n16:16:06 poll([{fd=4, events=POLLOUT}], 1, 5000) = 0 (Timeout) &lt;5.008128&gt;\n16:16:11 close(4)                       = 0 &lt;0.000135&gt;\n--\n16:16:11 fcntl(4, F_SETFL, O_RDONLY|O_NONBLOCK) = 0 &lt;0.000137&gt;\n16:16:11 connect(4, {sa_family=AF_INET, sin_port=htons(1521), sin_addr=inet_addr(\"10.10.10.10\")}, 16) = -1 EINPROGRESS (Operation now in progress) &lt;0.000584&gt;\n16:16:11 times(NULL)                    = 434922323 &lt;0.000079&gt;\n16:16:11 poll([{fd=4, events=POLLOUT}], 1, 60000) = 0 (Timeout) &lt;60.053782&gt;\n16:17:11 close(4)                       = 0 &lt;0.000166&gt;\n--\n16:17:11 fcntl(4, F_SETFL, O_RDONLY|O_NONBLOCK) = 0 &lt;0.000195&gt;\n16:17:11 connect(4, {sa_family=AF_INET, sin_port=htons(1521), sin_addr=inet_addr(\"10.10.10.11\")}, 16) = -1 EINPROGRESS (Operation now in progress) &lt;0.000549&gt;\n16:17:11 times(NULL)                    = 434928329 &lt;0.000488&gt;\n16:17:11 poll([{fd=4, events=POLLOUT}], 1, 60000) = 0 (Timeout) &lt;60.007246&gt;\n16:18:11 close(4)                       = 0 &lt;0.000043&gt;\n<\/code><\/pre>\n<p>With &#8216;-T&#8217; strace shows the duration of the poll() system call between brackets after the return code. You can see here 1-second timeout attempts to each address, then 2 attempts with 5 seconds timeout and then 60 seconds.<\/p>\n<p>Note that I have added (LOAD_BALANCE=OFF) here because the default is ON in a DESCRIPTION_LIST but here I want to take them in the order I specified them.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>By Franck Pachot . When you have a Data Guard configuration, you want the application to connect to the right server, where the primary is, without taking too much time. The default TCP timeout is 1 minute which is too long. When you don&#8217;t want to configure a virtual IP address (VIP) you can simply [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229,59],"tags":[221,96,1425],"type_dbi":[],"class_list":["post-11534","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","category-oracle","tag-data-guard","tag-oracle","tag-tcp-timeout"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>TRANSPORT_CONNECT_TIMEOUT and RETRY_COUNT - dbi Blog<\/title>\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.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"TRANSPORT_CONNECT_TIMEOUT and RETRY_COUNT\" \/>\n<meta property=\"og:description\" content=\"By Franck Pachot . When you have a Data Guard configuration, you want the application to connect to the right server, where the primary is, without taking too much time. The default TCP timeout is 1 minute which is too long. When you don&#8217;t want to configure a virtual IP address (VIP) you can simply [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-08-10T12:47:47+00:00\" \/>\n<meta name=\"author\" content=\"Oracle Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oracle Team\" \/>\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.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"TRANSPORT_CONNECT_TIMEOUT and RETRY_COUNT\",\"datePublished\":\"2018-08-10T12:47:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/\"},\"wordCount\":505,\"commentCount\":0,\"keywords\":[\"Data Guard\",\"Oracle\",\"TCP. timeout\"],\"articleSection\":[\"Database Administration &amp; Monitoring\",\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/\",\"name\":\"TRANSPORT_CONNECT_TIMEOUT and RETRY_COUNT - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2018-08-10T12:47:47+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"TRANSPORT_CONNECT_TIMEOUT and RETRY_COUNT\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\",\"name\":\"Oracle Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"caption\":\"Oracle Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"TRANSPORT_CONNECT_TIMEOUT and RETRY_COUNT - dbi Blog","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.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/","og_locale":"en_US","og_type":"article","og_title":"TRANSPORT_CONNECT_TIMEOUT and RETRY_COUNT","og_description":"By Franck Pachot . When you have a Data Guard configuration, you want the application to connect to the right server, where the primary is, without taking too much time. The default TCP timeout is 1 minute which is too long. When you don&#8217;t want to configure a virtual IP address (VIP) you can simply [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/","og_site_name":"dbi Blog","article_published_time":"2018-08-10T12:47:47+00:00","author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"TRANSPORT_CONNECT_TIMEOUT and RETRY_COUNT","datePublished":"2018-08-10T12:47:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/"},"wordCount":505,"commentCount":0,"keywords":["Data Guard","Oracle","TCP. timeout"],"articleSection":["Database Administration &amp; Monitoring","Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/","url":"https:\/\/www.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/","name":"TRANSPORT_CONNECT_TIMEOUT and RETRY_COUNT - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2018-08-10T12:47:47+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/transport_connect_timeout-and-retry_count\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"TRANSPORT_CONNECT_TIMEOUT and RETRY_COUNT"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee","name":"Oracle Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","caption":"Oracle Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/11534","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=11534"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/11534\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=11534"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=11534"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=11534"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=11534"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}