{"id":13933,"date":"2020-04-09T14:55:05","date_gmt":"2020-04-09T12:55:05","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/starting-an-oracle-database-when-a-first-connection-comes-in\/"},"modified":"2020-04-09T14:55:05","modified_gmt":"2020-04-09T12:55:05","slug":"starting-an-oracle-database-when-a-first-connection-comes-in","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/starting-an-oracle-database-when-a-first-connection-comes-in\/","title":{"rendered":"Starting an Oracle Database when a first connection comes in"},"content":{"rendered":"<p>To save resources I thought about the idea to start an Oracle database automatically when a first connection comes in. I.e. if there are many smaller databases on a server, which are not required during specific times, then we may shut them down and automatically start them when a connection comes in. The objective was that even the first connection should be successful. Is that possible? Yes, it is. Here&#8217;s what I did:<\/p>\n<p>First of all I needed a failed connection event which triggers the startup of the database. In my case I took the message a listener produces on a connection of a not registered service. E.g.<\/p>\n<pre><code>\nsqlplus cbleile\/@orclpdb1\n\nSQL*Plus: Release 19.0.0.0.0 - Production on Thu Apr 9 14:06:55 2020\nVersion 19.6.0.0.0\n\nCopyright (c) 1982, 2019, Oracle.  All rights reserved.\n\nERROR:\nORA-12514: TNS:listener does not currently know of service requested in connect descriptor\n<\/code><\/pre>\n<p>With the default listener-logging, above connection produces a message like the following in the listener.log-file:<\/p>\n<pre><code>\noracle@oracle-19c6-vagrant:\/opt\/oracle\/diag\/tnslsnr\/oracle-19c6-vagrant\/listener\/trace\/ [orclcdb (CDB$ROOT)] tail -2 listener.log \n09-APR-2020 14:06:55 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCLPDB1)(CID=(PROGRAM=sqlplus)(HOST=oracle-19c6-vagrant)(USER=oracle))) * (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=11348)) * establish * ORCLPDB1 * 12514\nTNS-12514: TNS:listener does not currently know of service requested in connect descriptor\n<\/code><\/pre>\n<p>or alternatively you may check listener alert-xml-logfile log.xml in the listener\/alert directory.<br \/>\nTo keep it easy, I used the listener.log file to check if such a failed connection came in.<\/p>\n<p>So now we just need a mechanism to check if we have a message in the listener.log and trigger the database-startup then.<\/p>\n<p>First I do create an application service on my PDB:<\/p>\n<pre><code>\nalter system set container=pdb1;\nexec dbms_service.create_service('APP_PDB1','APP_PDB1');\nexec dbms_service.start_service('APP_PDB1');\nalter system register;\nalter pluggable database save state;\n<\/code><\/pre>\n<p>REMARK1: Do not use the default service of a PDB when connecting with the application. ALWAYS create a service for the application.<br \/>\nREMARK2: By using the &#8220;save state&#8221; I do ensure that the service is started automatically on DB-startup.<\/p>\n<p>Secondly I created a tnsnames-alias, which retries the connection several times in case it fails initially:<\/p>\n<pre><code>\nORCLPDB1_S =\n  (DESCRIPTION =\n  (CONNECT_TIMEOUT=10)(RETRY_COUNT=30)(RETRY_DELAY=2)\n   (ADDRESS_LIST =\n    (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))\n   )\n    (CONNECT_DATA =\n      (SERVER = DEDICATED)\n      (SERVICE_NAME = APP_PDB1)\n    )\n  )\n<\/code><\/pre>\n<p>Important are the parameters <\/p>\n<pre><code>\n(RETRY_COUNT=30)(RETRY_DELAY=2)\n<\/code><\/pre>\n<p>I.e. in case of an error we do wait for 2 seconds and try again. We try 30 times to connect. That means we do have 60 seconds to start the database when the first connection comes in.<\/p>\n<p>The simple BASH-script below polls for the message of a failed connection and starts the database when such a message is in the listener.log:<\/p>\n<pre><code>\n#!\/bin\/bash\n&nbsp;\n# Set the env for orclcdb\nexport ORAENV_ASK=NO\nexport ORACLE_SID=orclcdb\n. oraenv\n&nbsp;\n# Define where the listener log-file is\nLISTENER_LOG=\/opt\/oracle\/diag\/tnslsnr\/oracle-19c6-vagrant\/listener\/trace\/listener.log\n&nbsp;\n# create a fifo-file\nfifo=\/tmp\/tmpfifo.$$\nmkfifo \"${fifo}\" || exit 1\n&nbsp;\n# tail the listener.log and write to fifo in a background process\ntail -F -n0 $LISTENER_LOG &gt;${fifo} &amp;\ntailpid=$! # optional\n&nbsp;\n# check if a connection to service APP_PDB1 arrived and the listener returns a TNS-12514\n# TNS-12514 TNS:listener does not currently know of service requested in connect descriptor\n# i.e. go ahead if we detect a line containing \"establish * APP_PDB1 * 12514\" in the listener.log\ngrep -i -m 1 \"establish * app_pdb1 * 12514\" \"${fifo}\"\n&nbsp;\n# if we get here a request to connect to service APP_PDB1 came in and the service is not \n# registered at the listener. We conclude then that the DB is down.\n&nbsp;\n# Do some cleanup by killing the tail-process and removing the fifo-file\nkill \"${tailpid}\" # optional\nrm \"${fifo}\"\n&nbsp;\n# Startup the DB\nsqlplus -S \/ as sysdba &lt;&lt;EOF\nstartup\nexit\nEOF\n<\/code><\/pre>\n<p>REMARK1: You may check the discussion <a href=\"https:\/\/superuser.com\/questions\/270529\/monitoring-a-file-until-a-string-is-found\">here<\/a> on how to poll for a string in a file on Linux.<br \/>\nREMARK2: In production above script would probably need a trap in case of e.g. Ctrl-C&#8217;ing it to kill the background tail process and remove the tmpfifo file.<\/p>\n<p><strong>Test: <\/strong><\/p>\n<p>The database is down.<br \/>\nIn session 1 I do start my simple bash-script:<\/p>\n<pre><code>\noracle@oracle-19c6-vagrant:\/home\/oracle\/tools\/test_db_start_whenconnecting\/ [orclcdb (CDB$ROOT)] bash .\/poll_listener.bash\n<\/code><\/pre>\n<p>In session 2 I try to connect:<\/p>\n<pre><code>\noracle@oracle-19c6-vagrant:\/home\/oracle\/ [orclcdb (CDB$ROOT)] sqlplus cbleile@orclpdb1_s\n&nbsp;\nSQL*Plus: Release 19.0.0.0.0 - Production on Thu Apr 9 14:33:11 2020\nVersion 19.6.0.0.0\n&nbsp;\nCopyright (c) 1982, 2019, Oracle.  All rights reserved.\n&nbsp;\nEnter password: \n<\/code><\/pre>\n<p>After entering my password my connection-attempt &#8220;hangs&#8221;.<br \/>\nIn session 1 I can see the following messages:<\/p>\n<pre><code>\n09-APR-2020 14:33:15 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=APP_PDB1)(CID=(PROGRAM=sqlplus)(HOST=oracle-19c6-vagrant)(USER=oracle))) * (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=11592)) * establish * APP_PDB1 * 12514\nORACLE instance started.\n&nbsp;\nTotal System Global Area 3724537976 bytes\nFixed Size\t\t    9142392 bytes\nVariable Size\t\t 1224736768 bytes\nDatabase Buffers\t 2483027968 bytes\nRedo Buffers\t\t    7630848 bytes\nDatabase mounted.\nDatabase opened.\n.\/poll_listener.bash: line 38: 19096 Terminated              tail -F -n0 $LISTENER_LOG &gt; ${fifo}\noracle@oracle-19c6-vagrant:\/home\/oracle\/tools\/test_db_start_whenconnecting\/ [orclcdb (CDB$ROOT)] \n<\/code><\/pre>\n<p>And session 2 automatically connects as the DB is open now:<\/p>\n<pre><code>\noracle@oracle-19c6-vagrant:\/home\/oracle\/ [orclcdb (CDB$ROOT)] sqlplus cbleile@orclpdb1_s\n&nbsp;\nSQL*Plus: Release 19.0.0.0.0 - Production on Thu Apr 9 14:33:11 2020\nVersion 19.6.0.0.0\n&nbsp;\nCopyright (c) 1982, 2019, Oracle.  All rights reserved.\n&nbsp;\nEnter password: \nLast Successful login time: Thu Apr 09 2020 14:31:44 +01:00\n&nbsp;\nConnected to:\nOracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production\nVersion 19.6.0.0.0\n&nbsp;\ncbleile@orclcdb@PDB1&gt; \n<\/code><\/pre>\n<p>All subsequent connects the the DB are fast of course.<\/p>\n<p>With such a mechanism I could even think of starting a virtual machine from a common listener once such a connection arrives. I.e. this would even allow us to e.g. start DB-servers in the Cloud when a first connection from the application comes in. I.e. we could stop DB-VMs on the Cloud to save money and start them up with a terraform-script (or whatever CLI-tool you use to manage your Cloud) when a first DB-connection arrives.<\/p>\n<p>REMARK: With (Transparent) Application Continuity there are even more possibilities, but that feature requires RAC\/RAC One Node or Active Data Guard and is out of scope here.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>To save resources I thought about the idea to start an Oracle database automatically when a first connection comes in. I.e. if there are many smaller databases on a server, which are not required during specific times, then we may shut them down and automatically start them when a connection comes in. The objective was [&hellip;]<\/p>\n","protected":false},"author":35,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[59],"tags":[1896,96,1897,1898,274],"type_dbi":[],"class_list":["post-13933","post","type-post","status-publish","format-standard","hentry","category-oracle","tag-automatic-startup","tag-oracle","tag-retry_count","tag-retry_delay","tag-startup"],"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>Starting an Oracle Database when a first connection comes in - 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\/starting-an-oracle-database-when-a-first-connection-comes-in\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Starting an Oracle Database when a first connection comes in\" \/>\n<meta property=\"og:description\" content=\"To save resources I thought about the idea to start an Oracle database automatically when a first connection comes in. I.e. if there are many smaller databases on a server, which are not required during specific times, then we may shut them down and automatically start them when a connection comes in. The objective was [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/starting-an-oracle-database-when-a-first-connection-comes-in\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-04-09T12:55:05+00:00\" \/>\n<meta name=\"author\" content=\"Clemens Bleile\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ifgtxD2SrQ8r!YuXj\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Clemens Bleile\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 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\/starting-an-oracle-database-when-a-first-connection-comes-in\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/starting-an-oracle-database-when-a-first-connection-comes-in\/\"},\"author\":{\"name\":\"Clemens Bleile\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0ac04011f60f2e93c115358d0789c2da\"},\"headline\":\"Starting an Oracle Database when a first connection comes in\",\"datePublished\":\"2020-04-09T12:55:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/starting-an-oracle-database-when-a-first-connection-comes-in\/\"},\"wordCount\":532,\"commentCount\":0,\"keywords\":[\"automatic startup\",\"Oracle\",\"retry_count\",\"retry_delay\",\"Startup\"],\"articleSection\":[\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/starting-an-oracle-database-when-a-first-connection-comes-in\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/starting-an-oracle-database-when-a-first-connection-comes-in\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/starting-an-oracle-database-when-a-first-connection-comes-in\/\",\"name\":\"Starting an Oracle Database when a first connection comes in - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2020-04-09T12:55:05+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0ac04011f60f2e93c115358d0789c2da\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/starting-an-oracle-database-when-a-first-connection-comes-in\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/starting-an-oracle-database-when-a-first-connection-comes-in\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/starting-an-oracle-database-when-a-first-connection-comes-in\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Starting an Oracle Database when a first connection comes in\"}]},{\"@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\/0ac04011f60f2e93c115358d0789c2da\",\"name\":\"Clemens Bleile\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/1f596609fc67cb28ed714e7bccc81ed4cd73b8582a8148a490c77daeb2fde21a?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1f596609fc67cb28ed714e7bccc81ed4cd73b8582a8148a490c77daeb2fde21a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1f596609fc67cb28ed714e7bccc81ed4cd73b8582a8148a490c77daeb2fde21a?s=96&d=mm&r=g\",\"caption\":\"Clemens Bleile\"},\"description\":\"Clemens Bleile has more than 30 years of IT experience, thirteen in Oracle Support and fifteen in Oracle Consulting. He is specialized in Oracle Database Performance Tuning (SQL Tuning, DB Tuning) and developing an Oracle DB IT architecture (highly available, low-maintenance, cost efficient storage of data). He is an expert in problem analysis and resolution. Prior to joining dbi services, Clemens Bleile was Manager of the EMEA Database Performance team at the Oracle Global Customer Support Services. Clemens Bleile is Oracle Certified Professional 11g, 12c and Oracle Certified Expert for Performance Management and Tuning and holds a Master Degree, Business Information Systems from the Fachhochschule Furtwangen, Germany.\",\"sameAs\":[\"https:\/\/www.dbi-services.com\",\"https:\/\/x.com\/ifgtxD2SrQ8r!YuXj\"],\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/clemens-bleile\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Starting an Oracle Database when a first connection comes in - 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\/starting-an-oracle-database-when-a-first-connection-comes-in\/","og_locale":"en_US","og_type":"article","og_title":"Starting an Oracle Database when a first connection comes in","og_description":"To save resources I thought about the idea to start an Oracle database automatically when a first connection comes in. I.e. if there are many smaller databases on a server, which are not required during specific times, then we may shut them down and automatically start them when a connection comes in. The objective was [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/starting-an-oracle-database-when-a-first-connection-comes-in\/","og_site_name":"dbi Blog","article_published_time":"2020-04-09T12:55:05+00:00","author":"Clemens Bleile","twitter_card":"summary_large_image","twitter_creator":"@ifgtxD2SrQ8r!YuXj","twitter_misc":{"Written by":"Clemens Bleile","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/starting-an-oracle-database-when-a-first-connection-comes-in\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/starting-an-oracle-database-when-a-first-connection-comes-in\/"},"author":{"name":"Clemens Bleile","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0ac04011f60f2e93c115358d0789c2da"},"headline":"Starting an Oracle Database when a first connection comes in","datePublished":"2020-04-09T12:55:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/starting-an-oracle-database-when-a-first-connection-comes-in\/"},"wordCount":532,"commentCount":0,"keywords":["automatic startup","Oracle","retry_count","retry_delay","Startup"],"articleSection":["Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/starting-an-oracle-database-when-a-first-connection-comes-in\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/starting-an-oracle-database-when-a-first-connection-comes-in\/","url":"https:\/\/www.dbi-services.com\/blog\/starting-an-oracle-database-when-a-first-connection-comes-in\/","name":"Starting an Oracle Database when a first connection comes in - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2020-04-09T12:55:05+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0ac04011f60f2e93c115358d0789c2da"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/starting-an-oracle-database-when-a-first-connection-comes-in\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/starting-an-oracle-database-when-a-first-connection-comes-in\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/starting-an-oracle-database-when-a-first-connection-comes-in\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Starting an Oracle Database when a first connection comes in"}]},{"@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\/0ac04011f60f2e93c115358d0789c2da","name":"Clemens Bleile","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1f596609fc67cb28ed714e7bccc81ed4cd73b8582a8148a490c77daeb2fde21a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1f596609fc67cb28ed714e7bccc81ed4cd73b8582a8148a490c77daeb2fde21a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1f596609fc67cb28ed714e7bccc81ed4cd73b8582a8148a490c77daeb2fde21a?s=96&d=mm&r=g","caption":"Clemens Bleile"},"description":"Clemens Bleile has more than 30 years of IT experience, thirteen in Oracle Support and fifteen in Oracle Consulting. He is specialized in Oracle Database Performance Tuning (SQL Tuning, DB Tuning) and developing an Oracle DB IT architecture (highly available, low-maintenance, cost efficient storage of data). He is an expert in problem analysis and resolution. Prior to joining dbi services, Clemens Bleile was Manager of the EMEA Database Performance team at the Oracle Global Customer Support Services. Clemens Bleile is Oracle Certified Professional 11g, 12c and Oracle Certified Expert for Performance Management and Tuning and holds a Master Degree, Business Information Systems from the Fachhochschule Furtwangen, Germany.","sameAs":["https:\/\/www.dbi-services.com","https:\/\/x.com\/ifgtxD2SrQ8r!YuXj"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/clemens-bleile\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/13933","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\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=13933"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/13933\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=13933"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=13933"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=13933"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=13933"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}