Doc; mention quorum faiover introduced in 3.7
authorTatsuo Ishii <ishii@sraoss.co.jp>
Thu, 8 Aug 2019 05:55:53 +0000 (14:55 +0900)
committerTatsuo Ishii <ishii@sraoss.co.jp>
Thu, 8 Aug 2019 05:55:53 +0000 (14:55 +0900)
Also fix indentation.

doc.ja/src/sgml/advanced.sgml
doc/src/sgml/advanced.sgml

index 66313461d0f560f0faff724ecffe1141cda15bdd..2f904f70d1daa3a6774b61c93220ade7e49ec948 100644 (file)
 <!-- doc/src/sgml/advanced.sgml -->
 
 <chapter id="tutorial-watchdog">
 <title>Watchdog</title>
+ <title>Watchdog</title>
 
 <sect1 id="tutorial-watchdog-intro">
-<!--
-    <title>Introduction</title>
--->
-    <title>ใฏใ˜ใ‚ใซ</title>
+ <sect1 id="tutorial-watchdog-intro">
+  <!--
+  <title>Introduction</title>
+  -->
+  <title>ใฏใ˜ใ‚ใซ</title>
 
   <para>
-<!--
-    <firstterm>Watchdog</firstterm> is a sub process of <productname>Pgpool-II</productname>
-    to add high availability. Watchdog is used to resolve the single
-    point of failure by coordinating multiple <productname>Pgpool-II</productname>
-    nodes. The watchdog was first introduced in <productname>Pgpool-II</productname>
-    <emphasis>V3.2</emphasis> and is significantly enhanced in
-    <productname>Pgpool-II</productname> <emphasis>V3.5</emphasis>, to ensure the presence of a
-    quorum at all time. This new addition to watchdog makes it more fault tolerant
-    and robust in handling and guarding against the split-brain syndrome
-    and network partitioning. However to ensure the quorum mechanism properly
-    works, the number of pgpool-II nodes must be odd in number and greater than or
-    equal to 3.
--->
-<firstterm>Watchdog</firstterm>ใฏใ€้ซ˜ๅฏ็”จๆ€งใฎใŸใ‚ใฎ<productname>Pgpool-II</productname>ใฎใ‚ตใƒ–ใƒ—ใƒญใ‚ปใ‚นใงใ™ใ€‚
-Watchdogใฏใ€ๅ˜ไธ€้šœๅฎณ็‚นใ‚’้™คใใŸใ‚ใซ่ค‡ๆ•ฐใฎ<productname>Pgpool-II</productname>ใ‚’ไฝฟ็”จใ™ใ‚‹้š›ใซไฝฟ็”จใ•ใ‚Œใพใ™ใ€‚
-Watchdogใฏใ€ๆœ€ๅˆใซ<productname>Pgpool-II</productname> <emphasis>V3.2</emphasis>ใงๅฐŽๅ…ฅใ•ใ‚Œใ€<productname>Pgpool-II</productname> <emphasis>V3.5</emphasis>ใงๅธธใซใ‚ฏใ‚ฉใƒผใƒฉใƒ ใ‚’ไฟใคใ‚ˆใ†ใซๅคงใใๆ”นๅ–„ใ•ใ‚Œใพใ—ใŸใ€‚
-ใ“ใฎๆฉŸ่ƒฝ่ฟฝๅŠ ใซใ‚ˆใ‚Šใ€watchdogใฏใ‚ˆใ‚Šๅฏพ้šœๅฎณๆ€งใŒๅข—ใ—ใ€ใ‚นใƒ—ใƒชใƒƒใƒˆใƒ–ใƒฌใ‚คใƒณ้šœๅฎณใจใƒใƒƒใƒˆใƒฏใƒผใ‚ฏๅˆ†ๅ‰ฒใซๅฏพใ™ใ‚‹ๅฏพๅ‡ฆใŠใ‚ˆใณ้˜ฒๆญขใŒๅผทๅ›บใซใชใ‚Šใพใ—ใŸใ€‚
-ใŸใ ใ—ใ€ใ‚ฏใ‚ฉใƒผใƒฉใƒ ๆฉŸๆง‹ใ‚’ๆญฃใ—ใๅ‹•ใ‹ใ™ใŸใ‚ใซใฏใ€pgpool-IIใƒŽใƒผใƒ‰ใฎๆ•ฐใฏๅฅ‡ๆ•ฐใงใ‚ใ‚Šใ€ใ‹ใค3ไปฅไธŠใงใชใ‘ใ‚Œใฐใชใ‚Šใพใ›ใ‚“ใ€‚
+   <!--
+   <firstterm>Watchdog</firstterm> is a sub process of <productname>Pgpool-II</productname>
+   to add high availability. Watchdog is used to resolve the single
+   point of failure by coordinating multiple <productname>Pgpool-II</productname>
+   nodes. The watchdog was first introduced in <productname>Pgpool-II</productname>
+   <emphasis>V3.2</emphasis> and is significantly enhanced in
+   <productname>Pgpool-II</productname> <emphasis>V3.5</emphasis>, to ensure the presence of a
+   quorum at all time. This new addition to watchdog makes it more fault tolerant
+   and robust in handling and guarding against the split-brain syndrome
+   and network partitioning. However to ensure the quorum mechanism properly
+   works, the number of pgpool-II nodes must be odd in number and greater than or
+   equal to 3.
+   -->
+   <firstterm>Watchdog</firstterm>ใฏใ€้ซ˜ๅฏ็”จๆ€งใฎใŸใ‚ใฎ<productname>Pgpool-II</productname>ใฎใ‚ตใƒ–ใƒ—ใƒญใ‚ปใ‚นใงใ™ใ€‚
+   Watchdogใฏใ€ๅ˜ไธ€้šœๅฎณ็‚นใ‚’้™คใใŸใ‚ใซ่ค‡ๆ•ฐใฎ<productname>Pgpool-II</productname>ใ‚’ไฝฟ็”จใ™ใ‚‹้š›ใซไฝฟ็”จใ•ใ‚Œใพใ™ใ€‚
+   Watchdogใฏใ€ๆœ€ๅˆใซ<productname>Pgpool-II</productname> <emphasis>V3.2</emphasis>ใงๅฐŽๅ…ฅใ•ใ‚Œใ€<productname>Pgpool-II</productname> <emphasis>V3.5</emphasis>ใงๅธธใซใ‚ฏใ‚ฉใƒผใƒฉใƒ ใ‚’ไฟใคใ‚ˆใ†ใซๅคงใใๆ”นๅ–„ใ•ใ‚Œใพใ—ใŸใ€‚
+   ใ“ใฎๆฉŸ่ƒฝ่ฟฝๅŠ ใซใ‚ˆใ‚Šใ€watchdogใฏใ‚ˆใ‚Šๅฏพ้šœๅฎณๆ€งใŒๅข—ใ—ใ€ใ‚นใƒ—ใƒชใƒƒใƒˆใƒ–ใƒฌใ‚คใƒณ้šœๅฎณใจใƒใƒƒใƒˆใƒฏใƒผใ‚ฏๅˆ†ๅ‰ฒใซๅฏพใ™ใ‚‹ๅฏพๅ‡ฆใŠใ‚ˆใณ้˜ฒๆญขใŒๅผทๅ›บใซใชใ‚Šใพใ—ใŸใ€‚
+   ใพใŸใ€<emphasis>V3.7</emphasis>ใงใฏใ‚ฏใ‚ฉใƒผใƒฉใƒ ใƒ•ใ‚งใ‚คใƒซใ‚ชใƒผใƒ (<xref linkend="config-watchdog-failover-behavior">ๅ‚็…ง)ใŒๅฐŽๅ…ฅใ•ใ‚Œใ€<productname>PostgreSQL</productname>ใ‚ตใƒผใƒใฎๆ•…้šœ่ชคๆคœ็Ÿฅใซใ‚ˆใ‚‹ใƒ•ใ‚งใ‚คใƒซใ‚ชใƒผใƒใŒ่ตทใ“ใ‚Šใซใใใชใ‚Šใพใ—ใŸใ€‚
+   ใ‚ฏใ‚ฉใƒผใƒฉใƒ ๆฉŸๆง‹ใ‚’ๆญฃใ—ใๅ‹•ใ‹ใ™ใŸใ‚ใซใฏใ€<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใฎๆ•ฐใฏๅฅ‡ๆ•ฐใงใ‚ใ‚Šใ€ใ‹ใค3ไปฅไธŠใงใชใ‘ใ‚Œใฐใชใ‚Šใพใ›ใ‚“ใ€‚
   </para>
 
   <sect2 id="tutorial-watchdog-coordinating-nodes">
-<!--
+   <!--
    <title>Coordinating multiple <productname>Pgpool-II</productname> nodes</title>
--->
+   -->
    <title>่ค‡ๆ•ฐ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใ‚’ๅ”่ชฟใ•ใ›ใ‚‹</title>
 
    <indexterm zone="tutorial-watchdog-coordinating-nodes">
     <primary>WATCHDOG</primary>
    </indexterm>
-    <para>
-<!--
-      Watchdog coordinates multiple <productname>Pgpool-II</productname> nodes
-      by exchanging information with each other.
--->
-watchdogใฏใ€ใŠไบ’ใ„ใซๆƒ…ๅ ฑใ‚’ใ‚„ใ‚Šๅ–ใ‚Šใ™ใ‚‹ใ“ใจใซใ‚ˆใ‚Šใ€่ค‡ๆ•ฐใฎ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใ‚’ๅ”่ชฟใ•ใ›ใพใ™ใ€‚
-    </para>
-    <para>
-<!--
-      At the startup, if the watchdog is enabled, <productname>Pgpool-II</productname> node
-      sync the status of all configured backend nodes from the master watchdog node.
-      And if the node goes on to become a master node itself it initializes the backend
-      status locally. When a backend node status changes by failover etc..,
-      watchdog notifies the information to other <productname>Pgpool-II</productname>
-      nodes and synchronizes them. When online recovery occurs, watchdog restricts
-      client connections to other <productname>Pgpool-II</productname>
-      nodes for avoiding inconsistency between backends.
--->
-ใ‚‚ใ—watchdogใŒๆœ‰ๅŠนใชใ‚‰ใ€<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใฏ่ตทๅ‹•ๆ™‚ใซใƒžใ‚นใ‚ฟใƒผwatchdogใƒŽใƒผใƒ‰ใฎๆƒ…ๅ ฑใ‚’ไฝฟใฃใฆใƒใƒƒใ‚ฏใ‚จใƒณใƒ‰ใฎ็Šถๆ…‹ใฎๅŒๆœŸใ‚’ๅ–ใ‚Šใพใ™ใ€‚
-ใใฎใƒŽใƒผใƒ‰ใŒ่‡ชๅˆ†่‡ช่บซใ‚’ใƒžใ‚นใ‚ฟใƒผใซๆ˜‡ๆ ผไธญใงใ‚ใ‚Œใฐใ€ใƒใƒƒใ‚ฏใ‚จใƒณใƒ‰็Šถๆ…‹ใ‚’ใƒญใƒผใ‚ซใƒซใซๅˆๆœŸๅŒ–ใ—ใพใ™ใ€‚
-ใƒ•ใ‚งใ‚คใƒซใ‚ชใƒผใƒใชใฉใงใƒใƒƒใ‚ฏใ‚จใƒณใƒ‰ใฎ็Šถๆ…‹ใŒๅค‰ๆ›ดใ—ใŸใ‚‰ใ€watchdogใฏไป–ใฎ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใซ้€š็Ÿฅใ—ใ€ๅŒๆœŸใ‚’ๅ–ใ‚Šใพใ™ใ€‚
-ใ‚ชใƒณใƒฉใ‚คใƒณใƒชใ‚ซใƒใƒชใ‚’ๅฎŸ่กŒใ™ใ‚‹ใจใ€ใƒใƒƒใ‚ฏใ‚จใƒณใƒ‰ใฎไธๆ•ดๅˆใ‚’้˜ฒใใŸใ‚ใซใ€watchdogใฏใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆใŒไป–ใฎ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใซๆŽฅ็ถšใ™ใ‚‹ใฎใ‚’้˜ฒใŽใพใ™ใ€‚
-    </para>
-
-    <para>
-<!--
-      Watchdog also coordinates with all connected <productname>Pgpool-II</productname> nodes to ensure
-      that failback, failover and follow_master commands must be executed only on one <productname>pgpool-II</productname> node.
--->
-ใพใŸใ€watchdogใฏใ€ๆŽฅ็ถšใ—ใŸใ™ในใฆใฎ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใ‚’่ชฟๅœใ—ใ€ใƒ•ใ‚งใ‚คใƒซใƒใƒƒใ‚ฏใ€ใƒ•ใ‚งใ‚คใƒซใ‚ชใƒผใƒใ€ใƒ•ใ‚ฉใƒญใƒผใƒžใ‚นใ‚ฟใƒผใ‚ณใƒžใƒณใƒ‰ใŒใŸใ ใฒใจใคใฎ<productname>Pgpool-II</productname>ใงๅฎŸ่กŒใ•ใ‚Œใ‚‹ใ‚ˆใ†ใซใ—ใพใ™ใ€‚
-    </para>
+   <para>
+    <!--
+    Watchdog coordinates multiple <productname>Pgpool-II</productname> nodes
+    by exchanging information with each other.
+    -->
+    watchdogใฏใ€ใŠไบ’ใ„ใซๆƒ…ๅ ฑใ‚’ใ‚„ใ‚Šๅ–ใ‚Šใ™ใ‚‹ใ“ใจใซใ‚ˆใ‚Šใ€่ค‡ๆ•ฐใฎ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใ‚’ๅ”่ชฟใ•ใ›ใพใ™ใ€‚
+   </para>
+   <para>
+    <!--
+    At the startup, if the watchdog is enabled, <productname>Pgpool-II</productname> node
+    sync the status of all configured backend nodes from the master watchdog node.
+    And if the node goes on to become a master node itself it initializes the backend
+    status locally. When a backend node status changes by failover etc..,
+    watchdog notifies the information to other <productname>Pgpool-II</productname>
+    nodes and synchronizes them. When online recovery occurs, watchdog restricts
+    client connections to other <productname>Pgpool-II</productname>
+    nodes for avoiding inconsistency between backends.
+    -->
+    ใ‚‚ใ—watchdogใŒๆœ‰ๅŠนใชใ‚‰ใ€<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใฏ่ตทๅ‹•ๆ™‚ใซใƒžใ‚นใ‚ฟใƒผwatchdogใƒŽใƒผใƒ‰ใฎๆƒ…ๅ ฑใ‚’ไฝฟใฃใฆใƒใƒƒใ‚ฏใ‚จใƒณใƒ‰ใฎ็Šถๆ…‹ใฎๅŒๆœŸใ‚’ๅ–ใ‚Šใพใ™ใ€‚
+    ใใฎใƒŽใƒผใƒ‰ใŒ่‡ชๅˆ†่‡ช่บซใ‚’ใƒžใ‚นใ‚ฟใƒผใซๆ˜‡ๆ ผไธญใงใ‚ใ‚Œใฐใ€ใƒใƒƒใ‚ฏใ‚จใƒณใƒ‰็Šถๆ…‹ใ‚’ใƒญใƒผใ‚ซใƒซใซๅˆๆœŸๅŒ–ใ—ใพใ™ใ€‚
+    ใƒ•ใ‚งใ‚คใƒซใ‚ชใƒผใƒใชใฉใงใƒใƒƒใ‚ฏใ‚จใƒณใƒ‰ใฎ็Šถๆ…‹ใŒๅค‰ๆ›ดใ—ใŸใ‚‰ใ€watchdogใฏไป–ใฎ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใซ้€š็Ÿฅใ—ใ€ๅŒๆœŸใ‚’ๅ–ใ‚Šใพใ™ใ€‚
+    ใ‚ชใƒณใƒฉใ‚คใƒณใƒชใ‚ซใƒใƒชใ‚’ๅฎŸ่กŒใ™ใ‚‹ใจใ€ใƒใƒƒใ‚ฏใ‚จใƒณใƒ‰ใฎไธๆ•ดๅˆใ‚’้˜ฒใใŸใ‚ใซใ€watchdogใฏใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆใŒไป–ใฎ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใซๆŽฅ็ถšใ™ใ‚‹ใฎใ‚’้˜ฒใŽใพใ™ใ€‚
+   </para>
+
+   <para>
+    <!--
+    Watchdog also coordinates with all connected <productname>Pgpool-II</productname> nodes to ensure
+    that failback, failover and follow_master commands must be executed only on one <productname>pgpool-II</productname> node.
+    -->
+    ใพใŸใ€watchdogใฏใ€ๆŽฅ็ถšใ—ใŸใ™ในใฆใฎ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใ‚’่ชฟๅœใ—ใ€ใƒ•ใ‚งใ‚คใƒซใƒใƒƒใ‚ฏใ€ใƒ•ใ‚งใ‚คใƒซใ‚ชใƒผใƒใ€ใƒ•ใ‚ฉใƒญใƒผใƒžใ‚นใ‚ฟใƒผใ‚ณใƒžใƒณใƒ‰ใŒใŸใ ใฒใจใคใฎ<productname>Pgpool-II</productname>ใงๅฎŸ่กŒใ•ใ‚Œใ‚‹ใ‚ˆใ†ใซใ—ใพใ™ใ€‚
+   </para>
 
   </sect2>
 
   <sect2 id="tutorial-watchdog-lifechecking">
-<!--
+   <!--
    <title>Life checking of other <productname>Pgpool-II</productname> nodes</title>
--->
+   -->
    <title>ไป–ใฎ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใฎๆญปๆดป็›ฃ่ฆ–</title>
 
    <indexterm zone="tutorial-watchdog-lifechecking">
     <primary>WATCHDOG</primary>
    </indexterm>
-    <para>
-<!--
-      Watchdog lifecheck is the sub-component of watchdog to monitor
-      the health of <productname>Pgpool-II</productname> nodes participating
-      in the watchdog cluster to provide the high availability.
-      Traditionally <productname>Pgpool-II</productname> watchdog provides
-      two methods of remote node health checking. <literal>"heartbeat"</literal>
-      and <literal>"query"</literal> mode.
-      The watchdog in <productname>Pgpool-II</productname> <emphasis>V3.5</emphasis>
-      adds a new <literal>"external"</literal> to <xref linkend="guc-wd-lifecheck-method">,
-      which enables to hook an external third party health checking
-      system with <productname>Pgpool-II</productname> watchdog.
--->
-watchdogๆญปๆดป็›ฃ่ฆ–ใฏใ€้ซ˜ๅฏ็”จๆ€งใฎใŸใ‚ใซใ€watchdogใ‚ฏใƒฉใ‚นใ‚ฟใซๆ‰€ๅฑžใ™ใ‚‹<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใฎๅฅๅ…จๆ€งใ‚’็›ฃ่ฆ–ใ™ใ‚‹ใŸใ‚ใฎไธ‹ไฝใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใงใ™ใ€‚
-ไผ็ตฑ็š„ใซใ€<productname>Pgpool-II</productname> watchdogใฏ2็จฎ้กžใฎใƒชใƒขใƒผใƒˆใฎๆญปๆดป็›ฃ่ฆ–ๆ–นๆณ•ใ‚’ๆไพ›ใ—ใฆใ„ใพใ™ใ€‚
-<literal>"heartbeat"</literal>ใจ<literal>"query"</literal>ใƒขใƒผใƒ‰ใงใ™ใ€‚
-<productname>Pgpool-II</productname> <emphasis>V3.5</emphasis>ใงใ€<xref linkend="guc-wd-lifecheck-method">ใซๆ–ฐใ—ใ<literal>"external"</literal>ใŒ่ฟฝๅŠ ใ•ใ‚Œใ€<productname>Pgpool-II</productname> watchdogใŒๅค–้ƒจใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃใฎใ‚ทใ‚นใƒ†ใƒ ใ‚’ๅ‘ผใณๅ‡บใ™ใ“ใจใŒๅฏ่ƒฝใซใชใ‚Šใพใ—ใŸใ€‚
-    </para>
-    <para>
-<!--
-      Apart from remote node health checking watchdog lifecheck can also check
-      the health of node it is installed on by monitoring the connection to upstream servers.
-      If the monitoring fails, watchdog treats it as the local <productname>Pgpool-II</productname>
-      node failure.
--->
-ใƒชใƒขใƒผใƒˆใƒŽใƒผใƒ‰ใฎๆญปๆดป็›ฃ่ฆ–ใฎไป–ใซใ€watchdogๆญปๆดป็›ฃ่ฆ–ใฏใ€ไธŠไฝใ‚ตใƒผใƒใธใฎๆŽฅ็ถšใ‚’็›ฃ่ฆ–ใ™ใ‚‹ใ“ใจใซใ‚ˆใ‚Šใ€็จผๅƒใ—ใฆใ„ใ‚‹ใƒŽใƒผใƒ‰ใฎๅฅๅ…จๆ€งใ‚’ใƒใ‚งใƒƒใ‚ฏใ™ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚
-็›ฃ่ฆ–ใŒใ‚จใƒฉใƒผใ‚’่ฟ”ใ—ใŸใ‚‰ใ€watchdogใฏใƒญใƒผใ‚ซใƒซ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใฎ้šœๅฎณใจใ—ใฆๆ‰ฑใ„ใพใ™ใ€‚
-    </para>
-
-    <para>
-<!--
-      In <literal>heartbeat</literal> mode, watchdog monitors other <productname>Pgpool-II</productname>
-      processes by using <literal>heartbeat</literal> signal.
-      Watchdog receives heartbeat signals sent by other <productname>Pgpool-II</productname>
-      periodically. If there is no signal for a certain period,
-      watchdog regards this as the failure of the <productname>Pgpool-II</productname>.
-      For redundancy you can use multiple network connections for heartbeat
-      exchange between <productname>Pgpool-II</productname> nodes.
-      This is the default and recommended mode to be used for health checking.
--->
-<literal>heartbeat</literal>ใƒขใƒผใƒ‰ใงใฏใ€watchdogใฏไป–ใฎ<productname>Pgpool-II</productname>ใƒ—ใƒญใ‚ปใ‚นใ‚’ใƒใƒผใƒˆใƒ“ใƒผใƒˆไฟกๅทใง็›ฃ่ฆ–ใ—ใพใ™ใ€‚
-watchdogใฏใ€ๅฎšๆœŸ็š„ใซไป–ใฎ<productname>Pgpool-II</productname>ใ‹ใ‚‰้€ใ‚‰ใ‚ŒใŸใƒใƒผใƒˆใƒ“ใƒผใƒˆไฟกๅทใ‚’ๅ—ไฟกใ—ใพใ™ใ€‚
-ไธ€ๅฎšๆœŸ้–“ไฟกๅทใŒๅ—ไฟกใ•ใ‚Œใชใ‘ใ‚Œใฐใ€watchdogใฏใใฎ<productname>Pgpool-II</productname>ใซ้šœๅฎณใŒ่ตทใ“ใฃใŸใจใฟใชใ—ใพใ™ใ€‚
-ๅ†—้•ทๆ€งใฎใŸใ‚ใซ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰้–“ใงๅ–ใ‚Šไบคใ‚ใ•ใ‚Œใ‚‹ใƒใƒผใƒˆใƒ“ใƒผใƒˆ้€šไฟกใฎใŸใ‚ใฎใƒใƒƒใƒˆใƒฏใƒผใ‚ฏๆŽฅ็ถšใ‚’่ค‡ๆ•ฐไฝฟใ†ใ“ใจใŒใงใใพใ™ใ€‚
-ใ“ใ‚ŒใŒใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใ‹ใคๆŽจๅฅจใ•ใ‚Œใ‚‹ๆญปๆดป็›ฃ่ฆ–ใฎใƒขใƒผใƒ‰ใงใ™ใ€‚
-    </para>
-
-    <para>
-<!--
-      In <literal>query</literal> mode, watchdog monitors <productname>Pgpool-II</productname>
-      service rather than process. In this mode watchdog sends queries to other
-      <productname>Pgpool-II</productname> and checks the response.
--->
-<literal>query</literal>ใƒขใƒผใƒ‰ใงใฏใ€watchdogใฏ<productname>Pgpool-II</productname>ใฎใƒ—ใƒญใ‚ปใ‚นใงใฏใชใใ€ใ‚ตใƒผใƒ“ใ‚นใ‚’็›ฃ่ฆ–ใ—ใพใ™ใ€‚
-ใ“ใฎใƒขใƒผใƒ‰ใงใฏใ€watchdogใฏไป–ใฎ<productname>Pgpool-II</productname>ใซใ‚ฏใ‚จใƒชใ‚’้€ใ‚Šใ€็ตๆžœใ‚’ใƒใ‚งใƒƒใ‚ฏใ—ใพใ™ใ€‚
-       <note>
-       <para>
-<!--
-         Note that this method requires connections from other <productname>Pgpool-II</productname>,
-         so it would fail monitoring if the <xref linkend="guc-num-init-children"> parameter isn't large enough.
-         This mode is deprecated and left for backward compatibility.
--->
-ใ“ใฎๆ–นๆณ•ใงใฏใ€ไป–ใฎ<productname>Pgpool-II</productname>ใ‹ใ‚‰ใฎๆŽฅ็ถšใŒๅฟ…่ฆใงใ€<xref linkend="guc-num-init-children">ใŒๅๅˆ†ใซๅคงใใใชใ„ใจๅคฑๆ•—ใ—ใพใ™ใ€‚
-ใ“ใฎใƒขใƒผใƒ‰ใฏ้žๆŽจๅฅจใงใ€ๅพŒๆ–นไบ’ๆ›ๆ€งใฎใŸใ‚ใซๆฎ‹ใ•ใ‚Œใฆใ„ใพใ™ใ€‚
-       </para>
-       </note>
-      </para>
-
-      <para>
-<!--
-       <literal>external</literal> mode is introduced by <productname>Pgpool-II</productname>
-       <emphasis>V3.5</emphasis>. This mode basically disables the built in lifecheck
-       of <productname>Pgpool-II</productname> watchdog and expects that the external system
-       will inform the watchdog about health of local and all remote nodes participating in the watchdog cluster.
--->
-<literal>external</literal>ใƒขใƒผใƒ‰ใฏใ€<productname>Pgpool-II</productname> <emphasis>V3.5</emphasis>ใงๅฐŽๅ…ฅใ•ใ‚Œใพใ—ใŸใ€‚
-ใ“ใฎใƒขใƒผใƒ‰ใงใฏใ€ๅŸบๆœฌ็š„ใซ<productname>Pgpool-II</productname> watchdogใฎ็ต„ใฟ่พผใฟๆญปๆดป็›ฃ่ฆ–ใฏ็„กๅŠนใซใชใ‚Šใ€watchdogใฏๅค–้ƒจใ‚ทใ‚นใƒ†ใƒ ใŒใƒญใƒผใ‚ซใƒซใจใ€watchdogใ‚ฏใƒฉใ‚นใ‚ฟใซๆ‰€ๅฑžใ—ใฆใ„ใ‚‹ใ™ในใฆใฎใƒชใƒขใƒผใƒˆใƒŽใƒผใƒ‰ใฎๅฅๅ…จๆ€งใซใคใ„ใฆๅ ฑๅ‘Šใ™ใ‚‹ใ“ใจใ‚’ๆœŸๅพ…ใ—ใพใ™ใ€‚
-      </para>
+   <para>
+    <!--
+    Watchdog lifecheck is the sub-component of watchdog to monitor
+    the health of <productname>Pgpool-II</productname> nodes participating
+    in the watchdog cluster to provide the high availability.
+    Traditionally <productname>Pgpool-II</productname> watchdog provides
+    two methods of remote node health checking. <literal>"heartbeat"</literal>
+    and <literal>"query"</literal> mode.
+    The watchdog in <productname>Pgpool-II</productname> <emphasis>V3.5</emphasis>
+    adds a new <literal>"external"</literal> to <xref linkend="guc-wd-lifecheck-method">,
+    which enables to hook an external third party health checking
+    system with <productname>Pgpool-II</productname> watchdog.
+    -->
+    watchdogๆญปๆดป็›ฃ่ฆ–ใฏใ€้ซ˜ๅฏ็”จๆ€งใฎใŸใ‚ใซใ€watchdogใ‚ฏใƒฉใ‚นใ‚ฟใซๆ‰€ๅฑžใ™ใ‚‹<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใฎๅฅๅ…จๆ€งใ‚’็›ฃ่ฆ–ใ™ใ‚‹ใŸใ‚ใฎไธ‹ไฝใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใงใ™ใ€‚
+    ไผ็ตฑ็š„ใซใ€<productname>Pgpool-II</productname> watchdogใฏ2็จฎ้กžใฎใƒชใƒขใƒผใƒˆใฎๆญปๆดป็›ฃ่ฆ–ๆ–นๆณ•ใ‚’ๆไพ›ใ—ใฆใ„ใพใ™ใ€‚
+    <literal>"heartbeat"</literal>ใจ<literal>"query"</literal>ใƒขใƒผใƒ‰ใงใ™ใ€‚
+    <productname>Pgpool-II</productname> <emphasis>V3.5</emphasis>ใงใ€<xref linkend="guc-wd-lifecheck-method">ใซๆ–ฐใ—ใ<literal>"external"</literal>ใŒ่ฟฝๅŠ ใ•ใ‚Œใ€<productname>Pgpool-II</productname> watchdogใŒๅค–้ƒจใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃใฎใ‚ทใ‚นใƒ†ใƒ ใ‚’ๅ‘ผใณๅ‡บใ™ใ“ใจใŒๅฏ่ƒฝใซใชใ‚Šใพใ—ใŸใ€‚
+   </para>
+   <para>
+    <!--
+    Apart from remote node health checking watchdog lifecheck can also check
+    the health of node it is installed on by monitoring the connection to upstream servers.
+    If the monitoring fails, watchdog treats it as the local <productname>Pgpool-II</productname>
+    node failure.
+    -->
+    ใƒชใƒขใƒผใƒˆใƒŽใƒผใƒ‰ใฎๆญปๆดป็›ฃ่ฆ–ใฎไป–ใซใ€watchdogๆญปๆดป็›ฃ่ฆ–ใฏใ€ไธŠไฝใ‚ตใƒผใƒใธใฎๆŽฅ็ถšใ‚’็›ฃ่ฆ–ใ™ใ‚‹ใ“ใจใซใ‚ˆใ‚Šใ€็จผๅƒใ—ใฆใ„ใ‚‹ใƒŽใƒผใƒ‰ใฎๅฅๅ…จๆ€งใ‚’ใƒใ‚งใƒƒใ‚ฏใ™ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚
+    ็›ฃ่ฆ–ใŒใ‚จใƒฉใƒผใ‚’่ฟ”ใ—ใŸใ‚‰ใ€watchdogใฏใƒญใƒผใ‚ซใƒซ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใฎ้šœๅฎณใจใ—ใฆๆ‰ฑใ„ใพใ™ใ€‚
+   </para>
+
+   <para>
+    <!--
+    In <literal>heartbeat</literal> mode, watchdog monitors other <productname>Pgpool-II</productname>
+    processes by using <literal>heartbeat</literal> signal.
+    Watchdog receives heartbeat signals sent by other <productname>Pgpool-II</productname>
+    periodically. If there is no signal for a certain period,
+    watchdog regards this as the failure of the <productname>Pgpool-II</productname>.
+    For redundancy you can use multiple network connections for heartbeat
+    exchange between <productname>Pgpool-II</productname> nodes.
+    This is the default and recommended mode to be used for health checking.
+    -->
+    <literal>heartbeat</literal>ใƒขใƒผใƒ‰ใงใฏใ€watchdogใฏไป–ใฎ<productname>Pgpool-II</productname>ใƒ—ใƒญใ‚ปใ‚นใ‚’ใƒใƒผใƒˆใƒ“ใƒผใƒˆไฟกๅทใง็›ฃ่ฆ–ใ—ใพใ™ใ€‚
+    watchdogใฏใ€ๅฎšๆœŸ็š„ใซไป–ใฎ<productname>Pgpool-II</productname>ใ‹ใ‚‰้€ใ‚‰ใ‚ŒใŸใƒใƒผใƒˆใƒ“ใƒผใƒˆไฟกๅทใ‚’ๅ—ไฟกใ—ใพใ™ใ€‚
+    ไธ€ๅฎšๆœŸ้–“ไฟกๅทใŒๅ—ไฟกใ•ใ‚Œใชใ‘ใ‚Œใฐใ€watchdogใฏใใฎ<productname>Pgpool-II</productname>ใซ้šœๅฎณใŒ่ตทใ“ใฃใŸใจใฟใชใ—ใพใ™ใ€‚
+    ๅ†—้•ทๆ€งใฎใŸใ‚ใซ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰้–“ใงๅ–ใ‚Šไบคใ‚ใ•ใ‚Œใ‚‹ใƒใƒผใƒˆใƒ“ใƒผใƒˆ้€šไฟกใฎใŸใ‚ใฎใƒใƒƒใƒˆใƒฏใƒผใ‚ฏๆŽฅ็ถšใ‚’่ค‡ๆ•ฐไฝฟใ†ใ“ใจใŒใงใใพใ™ใ€‚
+    ใ“ใ‚ŒใŒใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใ‹ใคๆŽจๅฅจใ•ใ‚Œใ‚‹ๆญปๆดป็›ฃ่ฆ–ใฎใƒขใƒผใƒ‰ใงใ™ใ€‚
+   </para>
+
+   <para>
+    <!--
+    In <literal>query</literal> mode, watchdog monitors <productname>Pgpool-II</productname>
+    service rather than process. In this mode watchdog sends queries to other
+    <productname>Pgpool-II</productname> and checks the response.
+    -->
+    <literal>query</literal>ใƒขใƒผใƒ‰ใงใฏใ€watchdogใฏ<productname>Pgpool-II</productname>ใฎใƒ—ใƒญใ‚ปใ‚นใงใฏใชใใ€ใ‚ตใƒผใƒ“ใ‚นใ‚’็›ฃ่ฆ–ใ—ใพใ™ใ€‚
+    ใ“ใฎใƒขใƒผใƒ‰ใงใฏใ€watchdogใฏไป–ใฎ<productname>Pgpool-II</productname>ใซใ‚ฏใ‚จใƒชใ‚’้€ใ‚Šใ€็ตๆžœใ‚’ใƒใ‚งใƒƒใ‚ฏใ—ใพใ™ใ€‚
+    <note>
+     <para>
+      <!--
+      Note that this method requires connections from other <productname>Pgpool-II</productname>,
+      so it would fail monitoring if the <xref linkend="guc-num-init-children"> parameter isn't large enough.
+      This mode is deprecated and left for backward compatibility.
+      -->
+      ใ“ใฎๆ–นๆณ•ใงใฏใ€ไป–ใฎ<productname>Pgpool-II</productname>ใ‹ใ‚‰ใฎๆŽฅ็ถšใŒๅฟ…่ฆใงใ€<xref linkend="guc-num-init-children">ใŒๅๅˆ†ใซๅคงใใใชใ„ใจๅคฑๆ•—ใ—ใพใ™ใ€‚
+       ใ“ใฎใƒขใƒผใƒ‰ใฏ้žๆŽจๅฅจใงใ€ๅพŒๆ–นไบ’ๆ›ๆ€งใฎใŸใ‚ใซๆฎ‹ใ•ใ‚Œใฆใ„ใพใ™ใ€‚
+     </para>
+    </note>
+   </para>
+
+   <para>
+    <!--
+    <literal>external</literal> mode is introduced by <productname>Pgpool-II</productname>
+    <emphasis>V3.5</emphasis>. This mode basically disables the built in lifecheck
+    of <productname>Pgpool-II</productname> watchdog and expects that the external system
+    will inform the watchdog about health of local and all remote nodes participating in the watchdog cluster.
+    -->
+    <literal>external</literal>ใƒขใƒผใƒ‰ใฏใ€<productname>Pgpool-II</productname> <emphasis>V3.5</emphasis>ใงๅฐŽๅ…ฅใ•ใ‚Œใพใ—ใŸใ€‚
+    ใ“ใฎใƒขใƒผใƒ‰ใงใฏใ€ๅŸบๆœฌ็š„ใซ<productname>Pgpool-II</productname> watchdogใฎ็ต„ใฟ่พผใฟๆญปๆดป็›ฃ่ฆ–ใฏ็„กๅŠนใซใชใ‚Šใ€watchdogใฏๅค–้ƒจใ‚ทใ‚นใƒ†ใƒ ใŒใƒญใƒผใ‚ซใƒซใจใ€watchdogใ‚ฏใƒฉใ‚นใ‚ฟใซๆ‰€ๅฑžใ—ใฆใ„ใ‚‹ใ™ในใฆใฎใƒชใƒขใƒผใƒˆใƒŽใƒผใƒ‰ใฎๅฅๅ…จๆ€งใซใคใ„ใฆๅ ฑๅ‘Šใ™ใ‚‹ใ“ใจใ‚’ๆœŸๅพ…ใ—ใพใ™ใ€‚
+   </para>
 
   </sect2>
 
   <sect2 id="tutorial-watchdog-consistency-of-config">
-<!--
+   <!--
    <title>Consistency of configuration parameters on all <productname>Pgpool-II</productname> nodes</title>
--->
+   -->
    <title>ใ™ในใฆใฎ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใฎ่จญๅฎšใƒ‘ใƒฉใƒกใƒผใ‚ฟใฎไธ€่ฒซๆ€ง</title>
 
    <indexterm zone="tutorial-watchdog-consistency-of-config">
     <primary>WATCHDOG</primary>
    </indexterm>
-    <para>
-<!--
-      At startup watchdog verifies the <productname>Pgpool-II</productname>
-      configuration of the local node for      the consistency with the configurations
-      on the master watchdog node and warns the user of any differences.
-      This eliminates the likelihood of undesired behavior that can happen
-      because of different configuration on different <productname>Pgpool-II</productname> nodes.
--->
-่ตทๅ‹•ๆ™‚ใซใ€watchdogใฏใƒญใƒผใ‚ซใƒซใƒŽใƒผใƒ‰ใฎ<productname>Pgpool-II</productname>ใฎ่จญๅฎšใƒ‘ใƒฉใƒกใƒผใ‚ฟใ‚’ใ€ใƒžใ‚นใ‚ฟใƒผใƒŽใƒผใƒ‰ใฎwatchdogไธŠใฎ่จญๅฎšใƒ‘ใƒฉใƒกใƒผใ‚ฟใจใฎไธ€่ฒซๆ€งใ‚’็ขบ่ชใ—ใ€้•ใ„ใŒใ‚ใ‚Œใฐ่ญฆๅ‘Šใ‚’ๅ‡บใ—ใพใ™ใ€‚
-ใ“ใ‚Œใซใ‚ˆใ‚Šใ€็•ฐใชใ‚‹<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใซใŠใ‘ใ‚‹่จญๅฎšใƒ‘ใƒฉใƒกใƒผใ‚ฟใฎ้•ใ„ใซใ‚ˆใ‚‹ๅฅฝใพใ—ใใชใ„ๆŒฏใ‚‹่ˆžใ„ใŒ่ตทใใ‚‹ๅฏ่ƒฝๆ€งใ‚’ๆธ›ใ‚‰ใ—ใพใ™ใ€‚
-    </para>
+   <para>
+    <!--
+    At startup watchdog verifies the <productname>Pgpool-II</productname>
+    configuration of the local node for        the consistency with the configurations
+    on the master watchdog node and warns the user of any differences.
+    This eliminates the likelihood of undesired behavior that can happen
+    because of different configuration on different <productname>Pgpool-II</productname> nodes.
+    -->
+    ่ตทๅ‹•ๆ™‚ใซใ€watchdogใฏใƒญใƒผใ‚ซใƒซใƒŽใƒผใƒ‰ใฎ<productname>Pgpool-II</productname>ใฎ่จญๅฎšใƒ‘ใƒฉใƒกใƒผใ‚ฟใ‚’ใ€ใƒžใ‚นใ‚ฟใƒผใƒŽใƒผใƒ‰ใฎwatchdogไธŠใฎ่จญๅฎšใƒ‘ใƒฉใƒกใƒผใ‚ฟใจใฎไธ€่ฒซๆ€งใ‚’็ขบ่ชใ—ใ€้•ใ„ใŒใ‚ใ‚Œใฐ่ญฆๅ‘Šใ‚’ๅ‡บใ—ใพใ™ใ€‚
+    ใ“ใ‚Œใซใ‚ˆใ‚Šใ€็•ฐใชใ‚‹<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใซใŠใ‘ใ‚‹่จญๅฎšใƒ‘ใƒฉใƒกใƒผใ‚ฟใฎ้•ใ„ใซใ‚ˆใ‚‹ๅฅฝใพใ—ใใชใ„ๆŒฏใ‚‹่ˆžใ„ใŒ่ตทใใ‚‹ๅฏ่ƒฝๆ€งใ‚’ๆธ›ใ‚‰ใ—ใพใ™ใ€‚
+   </para>
   </sect2>
 
   <sect2 id="tutorial-watchdog-changing-active">
-<!--
+   <!--
    <title>Changing active/standby state when certain fault is detected</title>
--->
+   -->
    <title>้šœๅฎณใŒๆคœๅ‡บใ•ใ‚ŒใŸ้š›ใฎใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–/ใ‚นใ‚ฟใƒณใƒใ‚ค็Šถๆ…‹ใฎๅˆ‡ๆ›</title>
 
    <indexterm zone="tutorial-watchdog-changing-active">
     <primary>WATCHDOG</primary>
    </indexterm>
-    <para>
-<!--
-      When a fault of <productname>Pgpool-II</productname> is detected,
-      watchdog notifies the other watchdogs of it.
-      If this is the active <productname>Pgpool-II</productname>,
-      watchdogs decide the new active <productname>Pgpool-II</productname>
-      by voting and change active/standby state.
--->
-<productname>Pgpool-II</productname>ใฎ้šœๅฎณใŒๆคœๅ‡บใ•ใ‚Œใ‚‹ใจใ€watchdogใฏไป–ใฎwatchdogใซใใฎใ“ใจใ‚’้€š็Ÿฅใ—ใพใ™ใ€‚
-้šœๅฎณใŒ่ตทใใŸใฎใŒใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–ใช<productname>Pgpool-II</productname>ใงใ‚ใ‚Œใฐใ€watchdogใฏๆŠ•็ฅจใซใ‚ˆใฃใฆๆ–ฐใ—ใ„ใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–<productname>Pgpool-II</productname>ใ‚’ๆฑบๅฎšใ—ใ€active/standby็Šถๆ…‹ใ‚’ๅค‰ๆ›ดใ—ใพใ™
-    </para>
+   <para>
+    <!--
+    When a fault of <productname>Pgpool-II</productname> is detected,
+    watchdog notifies the other watchdogs of it.
+    If this is the active <productname>Pgpool-II</productname>,
+    watchdogs decide the new active <productname>Pgpool-II</productname>
+    by voting and change active/standby state.
+    -->
+    <productname>Pgpool-II</productname>ใฎ้šœๅฎณใŒๆคœๅ‡บใ•ใ‚Œใ‚‹ใจใ€watchdogใฏไป–ใฎwatchdogใซใใฎใ“ใจใ‚’้€š็Ÿฅใ—ใพใ™ใ€‚
+    ้šœๅฎณใŒ่ตทใใŸใฎใŒใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–ใช<productname>Pgpool-II</productname>ใงใ‚ใ‚Œใฐใ€watchdogใฏๆŠ•็ฅจใซใ‚ˆใฃใฆๆ–ฐใ—ใ„ใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–<productname>Pgpool-II</productname>ใ‚’ๆฑบๅฎšใ—ใ€active/standby็Šถๆ…‹ใ‚’ๅค‰ๆ›ดใ—ใพใ™
+   </para>
   </sect2>
 
   <sect2 id="tutorial-watchdog-automatic-vip">
-<!--
+   <!--
    <title>Automatic virtual IP switching</title>
--->
+   -->
    <title>่‡ชๅ‹•ไปฎๆƒณIPๅˆ‡ๆ›</title>
 
    <indexterm zone="tutorial-watchdog-automatic-vip">
     <primary>WATCHDOG</primary>
    </indexterm>
-    <para>
-<!--
-      When a standby <productname>Pgpool-II</productname> server promotes to active,
-      the new active server brings up virtual IP interface. Meanwhile, the previous
-      active server brings down the virtual IP interface. This enables the active
-      <productname>Pgpool-II</productname> to work using the same
-      IP address even when servers are switched.
--->
-ใ‚นใ‚ฟใƒณใƒใ‚ค<productname>Pgpool-II</productname>ใ‚ตใƒผใƒใŒๆ˜‡ๆ ผใ™ใ‚‹ใจใ€ๆ–ฐใ—ใ„ใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–ใ‚ตใƒผใƒใฏไปฎๆƒณIPใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใ‚คใ‚นใ‚’็ซ‹ใกไธŠใ’ใพใ™ใ€‚
-ไธ€ๆ–นใ€ไปฅๅ‰ใฎใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–ใ‚ตใƒผใƒใฏใ€ไปฎๆƒณIPใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใ‚คใ‚นใ‚’ๅœๆญขใ—ใพใ™ใ€‚
-ใ“ใ‚Œใซใ‚ˆใ‚Šใ€ใ‚ตใƒผใƒใŒๅˆ‡ใ‚Šๆ›ฟใ‚ใฃใฆใ‚‚<productname>Pgpool-II</productname>ใฏๅŒใ˜IPใ‚ขใƒ‰ใƒฌใ‚นใ‚’ไฝฟใ†ใ“ใจใŒใงใใพใ™ใ€‚
-    </para>
+   <para>
+    <!--
+    When a standby <productname>Pgpool-II</productname> server promotes to active,
+    the new active server brings up virtual IP interface. Meanwhile, the previous
+    active server brings down the virtual IP interface. This enables the active
+    <productname>Pgpool-II</productname> to work using the same
+    IP address even when servers are switched.
+    -->
+    ใ‚นใ‚ฟใƒณใƒใ‚ค<productname>Pgpool-II</productname>ใ‚ตใƒผใƒใŒๆ˜‡ๆ ผใ™ใ‚‹ใจใ€ๆ–ฐใ—ใ„ใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–ใ‚ตใƒผใƒใฏไปฎๆƒณIPใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใ‚คใ‚นใ‚’็ซ‹ใกไธŠใ’ใพใ™ใ€‚
+    ไธ€ๆ–นใ€ไปฅๅ‰ใฎใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–ใ‚ตใƒผใƒใฏใ€ไปฎๆƒณIPใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใ‚คใ‚นใ‚’ๅœๆญขใ—ใพใ™ใ€‚
+    ใ“ใ‚Œใซใ‚ˆใ‚Šใ€ใ‚ตใƒผใƒใŒๅˆ‡ใ‚Šๆ›ฟใ‚ใฃใฆใ‚‚<productname>Pgpool-II</productname>ใฏๅŒใ˜IPใ‚ขใƒ‰ใƒฌใ‚นใ‚’ไฝฟใ†ใ“ใจใŒใงใใพใ™ใ€‚
+   </para>
   </sect2>
 
   <sect2 id="tutorial-watchdog-changing-automatic-register-in-recovery">
-<!--
+   <!--
    <title>Automatic registration of a server as a standby in recovery</title>
--->
+   -->
    <title>ใƒชใ‚ซใƒใƒชๆ™‚ใซใ‚ตใƒผใƒใ‚’ใ‚นใ‚ฟใƒณใƒใ‚คใจใ—ใฆ่‡ชๅ‹•็š„ใซ็™ป้Œฒ</title>
 
    <indexterm zone="tutorial-watchdog-changing-automatic-register-in-recovery">
     <primary>WATCHDOG</primary>
    </indexterm>
-    <para>
-<!--
-      When the broken server recovers or new server is attached, the watchdog process
-      notifies this to the other watchdogs in the cluster along with the information of the new server,
-      and the watchdog process receives information on the active server and
-      other servers. Then, the attached server is registered as a standby.
--->
-ๆ•…้šœใ—ใŸใ‚ตใƒผใƒใŒๅพฉๅธฐใ‚ใ‚‹ใ„ใฏๆ–ฐใ—ใ„ใ‚ตใƒผใƒใŒ่ฟฝๅŠ ใ•ใ‚Œใ‚‹ใจใ€watchdogใƒ—ใƒญใ‚ปใ‚นใฏๆ–ฐใ—ใ„ใ‚ตใƒผใƒใฎๆƒ…ๅ ฑใจๅ…ฑใซใ€ใ‚ฏใƒฉใ‚นใ‚ฟๅ†…ใฎไป–ใฎwatchdogใซ้€š็Ÿฅใ—ใพใ™ใ€‚
-ใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–ใ‚ตใƒผใƒใจใใ‚Œไปฅๅค–ใฎใ‚ตใƒผใƒไธŠใฎwatchdogใฏใใฎๆƒ…ๅ ฑใ‚’ๅ—ใ‘ใจใ‚Šใพใ™ใ€‚
-ใใ—ใฆใ€ๅพฉๅธฐใ—ใŸใ‚ตใƒผใƒใฏใ‚นใ‚ฟใƒณใƒใ‚คใจใ—ใฆ็™ป้Œฒใ•ใ‚Œใพใ™ใ€‚
-    </para>
+   <para>
+    <!--
+    When the broken server recovers or new server is attached, the watchdog process
+    notifies this to the other watchdogs in the cluster along with the information of the new server,
+    and the watchdog process receives information on the active server and
+    other servers. Then, the attached server is registered as a standby.
+    -->
+    ๆ•…้šœใ—ใŸใ‚ตใƒผใƒใŒๅพฉๅธฐใ‚ใ‚‹ใ„ใฏๆ–ฐใ—ใ„ใ‚ตใƒผใƒใŒ่ฟฝๅŠ ใ•ใ‚Œใ‚‹ใจใ€watchdogใƒ—ใƒญใ‚ปใ‚นใฏๆ–ฐใ—ใ„ใ‚ตใƒผใƒใฎๆƒ…ๅ ฑใจๅ…ฑใซใ€ใ‚ฏใƒฉใ‚นใ‚ฟๅ†…ใฎไป–ใฎwatchdogใซ้€š็Ÿฅใ—ใพใ™ใ€‚
+    ใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–ใ‚ตใƒผใƒใจใใ‚Œไปฅๅค–ใฎใ‚ตใƒผใƒไธŠใฎwatchdogใฏใใฎๆƒ…ๅ ฑใ‚’ๅ—ใ‘ใจใ‚Šใพใ™ใ€‚
+    ใใ—ใฆใ€ๅพฉๅธฐใ—ใŸใ‚ตใƒผใƒใฏใ‚นใ‚ฟใƒณใƒใ‚คใจใ—ใฆ็™ป้Œฒใ•ใ‚Œใพใ™ใ€‚
+   </para>
   </sect2>
 
   <sect2 id="tutorial-watchdog-start-stop">
-<!--
+   <!--
    <title>Starting/stopping watchdog</title>
--->
+   -->
    <title>watchdogใฎ่ตทๅ‹•ใจๅœๆญข</title>
 
    <indexterm zone="tutorial-watchdog-start-stop">
     <primary>WATCHDOG</primary>
    </indexterm>
+   <para>
+    <!--
+    The watchdog process starts and stops automatically as sub-processes
+    of the <productname>Pgpool-II</productname>, therefore there is no
+    dedicated command to start and stop watchdog.
+   </para>
     <para>
-<!--
-      The watchdog process starts and stops automatically as sub-processes
-      of the <productname>Pgpool-II</productname>, therefore there is no
-      dedicated command to start and stop watchdog.
-    </para>
-    <para>
-      Watchdog controls the virtual IP interface, the commands executed by
-      the watchdog for bringing up and bringing down the VIP require the
-      root privileges. <productname>Pgpool-II</productname> requires the
-      user running <productname>Pgpool-II</productname> to have root
-      privileges when the watchdog is enabled along with virtual IP.
-      This is however not good security practice to run the
-      <productname>Pgpool-II</productname> as root user, the alternative
-      and preferred way is to run the <productname>Pgpool-II</productname>
-      as normal user and use either the custom commands for
-      <xref linkend="guc-if-up-cmd">, <xref linkend="guc-if-down-cmd">,
-      and <xref linkend="guc-arping-cmd"> using <command>sudo</command>
-      or use <command>setuid</command> ("set user ID upon execution")
-      on <literal>if_*</literal> commands
-    </para>
+    Watchdog controls the virtual IP interface, the commands executed by
+    the watchdog for bringing up and bringing down the VIP require the
+    root privileges. <productname>Pgpool-II</productname> requires the
+    user running <productname>Pgpool-II</productname> to have root
+    privileges when the watchdog is enabled along with virtual IP.
+    This is however not good security practice to run the
+    <productname>Pgpool-II</productname> as root user, the alternative
+    and preferred way is to run the <productname>Pgpool-II</productname>
+    as normal user and use either the custom commands for
+    <xref linkend="guc-if-up-cmd">, <xref linkend="guc-if-down-cmd">,
+    and <xref linkend="guc-arping-cmd"> using <command>sudo</command>
+    or use <command>setuid</command> ("set user ID upon execution")
+    on <literal>if_*</literal> commands
+   </para>
     <para>
-      Lifecheck process is a sub-component of watchdog, its job is to monitor the
-      health of <productname>Pgpool-II</productname> nodes participating in
-      the watchdog cluster. The Lifecheck process is started automatically
-      when the watchdog is configured to use the built-in life-checking,
-      it starts after the watchdog main process initialization is complete.
-      However lifecheck process only kicks in when all configured watchdog
-      nodes join the cluster and becomes active. If some remote node fails
-      before the Lifecheck become active that failure will not get caught by the lifecheck.
--->
-watchdogใฏใ€<productname>Pgpool-II</productname>ใฎไธ‹ไฝใƒ—ใƒญใ‚ปใ‚นใจใ—ใฆ่‡ชๅ‹•็š„ใซ่ตทๅ‹•ใ€ๅœๆญขใ•ใ‚Œใพใ™ใ€‚
-ใ—ใŸใŒใฃใฆใ€ๅฐ‚็”จใฎ่ตทๅ‹•ใ€ๅœๆญขใ‚ณใƒžใƒณใƒ‰ใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚
-</para>
-<para>
-watchdogใฏไปฎๆƒณIPใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใ‚คใ‚นใ‚’ๅˆถๅพกใ—ใพใ™ใ€‚
-VIPใ‚’่ตทๅ‹•ใ€ๅœๆญขใ™ใ‚‹ใŸใ‚ใซๅฎŸ่กŒใ•ใ‚Œใ‚‹ใ‚ณใƒžใƒณใƒ‰ใซใฏrootๆจฉ้™ใŒๅฟ…่ฆใงใ™ใ€‚
-watchdogใŒไปฎๆƒณIPใ‚’ไผดใฃใฆ่ตทๅ‹•ใ•ใ‚Œใ‚‹้š›ใซใฏใ€<productname>Pgpool-II</productname>ใฏใ€<productname>Pgpool-II</productname>ใ‚’ๅฎŸ่กŒใ—ใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใŒrootๆจฉ้™ใ‚’ๆŒใคใ“ใจใ‚’่ฆๆฑ‚ใ—ใพใ™ใ€‚
-ใ—ใ‹ใ—ใ€<productname>Pgpool-II</productname>ใ‚’rootใƒฆใƒผใ‚ถใงๅฎŸ่กŒใ™ใ‚‹ใฎใฏ่‰ฏใ„ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃใฎๅฎŸ่ทตใจใฏ่จ€ใˆใพใ›ใ‚“ใ€‚
-ๅˆฅใฎๆŽจๅฅจใ™ใ‚‹ๆ–นๆณ•ใฏใ€<productname>Pgpool-II</productname>ใ‚’้€šๅธธใฎใƒฆใƒผใ‚ถใจใ—ใฆ่ตทๅ‹•ใ—ใ€<command>sudo</command>ใ‚’ไฝฟใฃใฆ<xref linkend="guc-if-up-cmd">ใ€<xref linkend="guc-if-down-cmd">ใ€<xref linkend="guc-arping-cmd">ใซใ‚ซใ‚นใ‚ฟใƒ ใ‚ณใƒžใƒณใƒ‰ใ‚’่จญๅฎšใ™ใ‚‹ใ‹ใ€<literal>if_*</literal>ใ‚ณใƒžใƒณใƒ‰ใซ<command>setuid</command>("set user ID upon execution")ใ™ใ‚‹ใ“ใจใงใ™ใ€‚
-</para>
-<para>
-ๆญปๆดป็›ฃ่ฆ–ใƒ—ใƒญใ‚ปใ‚นใฏwatchdogใฎไธ‹ไฝใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใงใ™ใ€‚
-ใใฎไป•ไบ‹ใฏใ€watchdogใ‚ฏใƒฉใ‚นใ‚ฟใซๅ‚ๅŠ ใ—ใฆใ„ใ‚‹<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใฎๅฅๅ…จใ•ใ‚’็›ฃ่ฆ–ใ™ใ‚‹ใ“ใจใงใ™ใ€‚
-ๆญปๆดป็›ฃ่ฆ–ใƒ—ใƒญใ‚ปใ‚นใฏใ€็ต„ใฟ่พผใฟใฎๆญปๆดป็›ฃ่ฆ–ใ‚’ไฝฟ็”จใ™ใ‚‹ใ‚ˆใ†ใซwatchdogใŒ่จญๅฎšใ•ใ‚Œใฆใ„ใ‚‹ๅ ดๅˆใ€่‡ชๅ‹•็š„ใซ่ตทๅ‹•ใ•ใ‚Œใพใ™ใ€‚
-ๆญปๆดป็›ฃ่ฆ–ใƒ—ใƒญใ‚ปใ‚นใฏใ€watchdogใฎใƒกใ‚คใƒณใƒ—ใƒญใ‚ปใ‚นใฎๅˆๆœŸๅŒ–ใŒๅฎŒไบ†ใ—ใŸๅพŒใซ่ตทๅ‹•ใ—ใพใ™ใ€‚
-watchdogใฎ็ต„ใฟ่พผใฟๆญปๆดป็›ฃ่ฆ–ใฏใ€ใ™ในใฆใฎ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใŒ่ตทๅ‹•ใ—ใฆใ‹ใ‚‰ๅง‹ใพใ‚Šใพใ™ใ€‚
-ใŸใ ใ—ใ€ๆญปๆดป็›ฃ่ฆ–ใƒ—ใƒญใ‚ปใ‚นใฏใ€่จญๅฎšใ•ใ‚Œใฆใ„ใ‚‹ใ™ในใฆใฎwatchdogใƒŽใƒผใƒ‰ใŒใ‚ฏใƒฉใ‚นใ‚ฟใซๅ‚ๅŠ ใ—ใ€ใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–ใซใชใฃใŸๆ™‚ใซใ ใ‘่ตทๅ‹•ใ•ใ‚Œใพใ™ใ€‚
-ๆญปๆดป็›ฃ่ฆ–ใŒใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–ใซใชใ‚‹ๅ‰ใซใƒชใƒขใƒผใƒˆใƒŽใƒผใƒ‰ใซ้šœๅฎณใŒ่ตทใ“ใ‚‹ใจใ€ใใฎ้šœๅฎณใŒๆญปๆดป็›ฃ่ฆ–ใซใ‚ˆใฃใฆๆ•ๆ‰ใ•ใ‚Œใพใ›ใ‚“ใ€‚
-    </para>
+    Lifecheck process is a sub-component of watchdog, its job is to monitor the
+    health of <productname>Pgpool-II</productname> nodes participating in
+    the watchdog cluster. The Lifecheck process is started automatically
+    when the watchdog is configured to use the built-in life-checking,
+    it starts after the watchdog main process initialization is complete.
+    However lifecheck process only kicks in when all configured watchdog
+    nodes join the cluster and becomes active. If some remote node fails
+    before the Lifecheck become active that failure will not get caught by the lifecheck.
+    -->
+    watchdogใฏใ€<productname>Pgpool-II</productname>ใฎไธ‹ไฝใƒ—ใƒญใ‚ปใ‚นใจใ—ใฆ่‡ชๅ‹•็š„ใซ่ตทๅ‹•ใ€ๅœๆญขใ•ใ‚Œใพใ™ใ€‚
+    ใ—ใŸใŒใฃใฆใ€ๅฐ‚็”จใฎ่ตทๅ‹•ใ€ๅœๆญขใ‚ณใƒžใƒณใƒ‰ใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚
+   </para>
+   <para>
+    watchdogใฏไปฎๆƒณIPใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใ‚คใ‚นใ‚’ๅˆถๅพกใ—ใพใ™ใ€‚
+    VIPใ‚’่ตทๅ‹•ใ€ๅœๆญขใ™ใ‚‹ใŸใ‚ใซๅฎŸ่กŒใ•ใ‚Œใ‚‹ใ‚ณใƒžใƒณใƒ‰ใซใฏrootๆจฉ้™ใŒๅฟ…่ฆใงใ™ใ€‚
+    watchdogใŒไปฎๆƒณIPใ‚’ไผดใฃใฆ่ตทๅ‹•ใ•ใ‚Œใ‚‹้š›ใซใฏใ€<productname>Pgpool-II</productname>ใฏใ€<productname>Pgpool-II</productname>ใ‚’ๅฎŸ่กŒใ—ใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใŒrootๆจฉ้™ใ‚’ๆŒใคใ“ใจใ‚’่ฆๆฑ‚ใ—ใพใ™ใ€‚
+    ใ—ใ‹ใ—ใ€<productname>Pgpool-II</productname>ใ‚’rootใƒฆใƒผใ‚ถใงๅฎŸ่กŒใ™ใ‚‹ใฎใฏ่‰ฏใ„ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃใฎๅฎŸ่ทตใจใฏ่จ€ใˆใพใ›ใ‚“ใ€‚
+    ๅˆฅใฎๆŽจๅฅจใ™ใ‚‹ๆ–นๆณ•ใฏใ€<productname>Pgpool-II</productname>ใ‚’้€šๅธธใฎใƒฆใƒผใ‚ถใจใ—ใฆ่ตทๅ‹•ใ—ใ€<command>sudo</command>ใ‚’ไฝฟใฃใฆ<xref linkend="guc-if-up-cmd">ใ€<xref linkend="guc-if-down-cmd">ใ€<xref linkend="guc-arping-cmd">ใซใ‚ซใ‚นใ‚ฟใƒ ใ‚ณใƒžใƒณใƒ‰ใ‚’่จญๅฎšใ™ใ‚‹ใ‹ใ€<literal>if_*</literal>ใ‚ณใƒžใƒณใƒ‰ใซ<command>setuid</command>("set user ID upon execution")ใ™ใ‚‹ใ“ใจใงใ™ใ€‚
+   </para>
+   <para>
+    ๆญปๆดป็›ฃ่ฆ–ใƒ—ใƒญใ‚ปใ‚นใฏwatchdogใฎไธ‹ไฝใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใงใ™ใ€‚
+    ใใฎไป•ไบ‹ใฏใ€watchdogใ‚ฏใƒฉใ‚นใ‚ฟใซๅ‚ๅŠ ใ—ใฆใ„ใ‚‹<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใฎๅฅๅ…จใ•ใ‚’็›ฃ่ฆ–ใ™ใ‚‹ใ“ใจใงใ™ใ€‚
+    ๆญปๆดป็›ฃ่ฆ–ใƒ—ใƒญใ‚ปใ‚นใฏใ€็ต„ใฟ่พผใฟใฎๆญปๆดป็›ฃ่ฆ–ใ‚’ไฝฟ็”จใ™ใ‚‹ใ‚ˆใ†ใซwatchdogใŒ่จญๅฎšใ•ใ‚Œใฆใ„ใ‚‹ๅ ดๅˆใ€่‡ชๅ‹•็š„ใซ่ตทๅ‹•ใ•ใ‚Œใพใ™ใ€‚
+    ๆญปๆดป็›ฃ่ฆ–ใƒ—ใƒญใ‚ปใ‚นใฏใ€watchdogใฎใƒกใ‚คใƒณใƒ—ใƒญใ‚ปใ‚นใฎๅˆๆœŸๅŒ–ใŒๅฎŒไบ†ใ—ใŸๅพŒใซ่ตทๅ‹•ใ—ใพใ™ใ€‚
+    watchdogใฎ็ต„ใฟ่พผใฟๆญปๆดป็›ฃ่ฆ–ใฏใ€ใ™ในใฆใฎ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใŒ่ตทๅ‹•ใ—ใฆใ‹ใ‚‰ๅง‹ใพใ‚Šใพใ™ใ€‚
+    ใŸใ ใ—ใ€ๆญปๆดป็›ฃ่ฆ–ใƒ—ใƒญใ‚ปใ‚นใฏใ€่จญๅฎšใ•ใ‚Œใฆใ„ใ‚‹ใ™ในใฆใฎwatchdogใƒŽใƒผใƒ‰ใŒใ‚ฏใƒฉใ‚นใ‚ฟใซๅ‚ๅŠ ใ—ใ€ใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–ใซใชใฃใŸๆ™‚ใซใ ใ‘่ตทๅ‹•ใ•ใ‚Œใพใ™ใ€‚
+    ๆญปๆดป็›ฃ่ฆ–ใŒใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–ใซใชใ‚‹ๅ‰ใซใƒชใƒขใƒผใƒˆใƒŽใƒผใƒ‰ใซ้šœๅฎณใŒ่ตทใ“ใ‚‹ใจใ€ใใฎ้šœๅฎณใŒๆญปๆดป็›ฃ่ฆ–ใซใ‚ˆใฃใฆๆ•ๆ‰ใ•ใ‚Œใพใ›ใ‚“ใ€‚
+   </para>
   </sect2>
 </sect1>
+ </sect1>
 
 <sect1 id="tutorial-watchdog-integrating-external-lifecheck">
-<!--
-    <title>Integrating external lifecheck with watchdog</title>
--->
-    <title>watchdogใซๅค–้ƒจๆญปๆดป็›ฃ่ฆ–ใ‚’็ต„ใฟ่พผใ‚€</title>
+ <sect1 id="tutorial-watchdog-integrating-external-lifecheck">
+  <!--
+  <title>Integrating external lifecheck with watchdog</title>
+  -->
+  <title>watchdogใซๅค–้ƒจๆญปๆดป็›ฃ่ฆ–ใ‚’็ต„ใฟ่พผใ‚€</title>
 
-    <para>
-<!--
-      <productname>Pgpool-II</productname> watchdog process uses the
-      <acronym>BSD</acronym> sockets for communicating with
-      all the <productname>Pgpool-II</productname> processes and the
-      same <acronym>BSD</acronym> socket can also be used by any third
-      party system to provide the lifecheck function for local and remote
-      <productname>Pgpool-II</productname> watchdog nodes.
-      The <acronym>BSD</acronym> socket file name for IPC is constructed
-      by appending <productname>Pgpool-II</productname> wd_port after
-      <literal>"s.PGPOOLWD_CMD."</literal> string and the socket file is
-      placed in the <xref linkend="guc-wd-ipc-socket-dir"> directory.
--->
-<productname>Pgpool-II</productname> watchdogใƒ—ใƒญใ‚ปใ‚นใฏใ€ใ™ในใฆใฎ<productname>Pgpool-II</productname>ใƒ—ใƒญใ‚ปใ‚นใจ<acronym>BSD</acronym>ใ‚ฝใ‚ฑใƒƒใƒˆใ‚’ไฝฟใฃใฆ้€šไฟกใ—ใพใ™ใ€‚
-ใใฎ<acronym>BSD</acronym>ใ‚ฝใ‚ฑใƒƒใƒˆใฏใ€ใƒญใƒผใ‚ซใƒซใจใƒชใƒขใƒผใƒˆใฎ<productname>Pgpool-II</productname> watchdogใƒŽใƒผใƒ‰ใ‚’ใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃใฎใ‚ทใ‚นใƒ†ใƒ ใŒๆญปๆดป็›ฃ่ฆ–ใ™ใ‚‹ใŸใ‚ใซไฝฟ็”จใ™ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚
-IPCใฎใŸใ‚ใฎ<acronym>BSD</acronym>ใ‚ฝใ‚ฑใƒƒใƒˆใฎๅๅ‰ใฏใ€<literal>"s.PGPOOLWD_CMD."</literal>ๆ–‡ๅญ—ๅˆ—ใฎๅพŒใซ<productname>Pgpool-II</productname>ใฎwd_portใ‚’ไป˜ใ‘ใŸใ‚‚ใฎใงใ€ใใฎใ‚ฝใ‚ฑใƒƒใƒˆใƒ•ใ‚กใ‚คใƒซใฏ<xref linkend="guc-wd-ipc-socket-dir">ใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใซ็ฝฎใ‹ใ‚Œใพใ™ใ€‚
-    </para>
+  <para>
+   <!--
+   <productname>Pgpool-II</productname> watchdog process uses the
+   <acronym>BSD</acronym> sockets for communicating with
+   all the <productname>Pgpool-II</productname> processes and the
+   same <acronym>BSD</acronym> socket can also be used by any third
+   party system to provide the lifecheck function for local and remote
+   <productname>Pgpool-II</productname> watchdog nodes.
+   The <acronym>BSD</acronym> socket file name for IPC is constructed
+   by appending <productname>Pgpool-II</productname> wd_port after
+   <literal>"s.PGPOOLWD_CMD."</literal> string and the socket file is
+   placed in the <xref linkend="guc-wd-ipc-socket-dir"> directory.
+   -->
+   <productname>Pgpool-II</productname> watchdogใƒ—ใƒญใ‚ปใ‚นใฏใ€ใ™ในใฆใฎ<productname>Pgpool-II</productname>ใƒ—ใƒญใ‚ปใ‚นใจ<acronym>BSD</acronym>ใ‚ฝใ‚ฑใƒƒใƒˆใ‚’ไฝฟใฃใฆ้€šไฟกใ—ใพใ™ใ€‚
+   ใใฎ<acronym>BSD</acronym>ใ‚ฝใ‚ฑใƒƒใƒˆใฏใ€ใƒญใƒผใ‚ซใƒซใจใƒชใƒขใƒผใƒˆใฎ<productname>Pgpool-II</productname> watchdogใƒŽใƒผใƒ‰ใ‚’ใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃใฎใ‚ทใ‚นใƒ†ใƒ ใŒๆญปๆดป็›ฃ่ฆ–ใ™ใ‚‹ใŸใ‚ใซไฝฟ็”จใ™ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚
+   IPCใฎใŸใ‚ใฎ<acronym>BSD</acronym>ใ‚ฝใ‚ฑใƒƒใƒˆใฎๅๅ‰ใฏใ€<literal>"s.PGPOOLWD_CMD."</literal>ๆ–‡ๅญ—ๅˆ—ใฎๅพŒใซ<productname>Pgpool-II</productname>ใฎwd_portใ‚’ไป˜ใ‘ใŸใ‚‚ใฎใงใ€ใใฎใ‚ฝใ‚ฑใƒƒใƒˆใƒ•ใ‚กใ‚คใƒซใฏ<xref linkend="guc-wd-ipc-socket-dir">ใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใซ็ฝฎใ‹ใ‚Œใพใ™ใ€‚
+  </para>
 
   <sect2 id="tutorial-watchdog-ipc-command-packet">
-<!--
+   <!--
    <title>Watchdog IPC command packet format</title>
--->
+   -->
    <title>watchdogใฎIPCใ‚ณใƒžใƒณใƒ‰ใƒ‘ใ‚ฑใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆ</title>
 
    <indexterm zone="tutorial-watchdog-ipc-command-packet">
     <primary>WATCHDOG</primary>
    </indexterm>
-    <para>
-<!--
-      The watchdog IPC command packet consists of three fields.
-      Below table details the message fields and description.
--->
-watchdogใฎIPCใ‚ณใƒžใƒณใƒ‰ใƒ‘ใ‚ฑใƒƒใƒˆใฏ3ใคใฎใƒ•ใ‚ฃใƒผใƒซใƒ‰ใ‹ใ‚‰ๆง‹ๆˆใ•ใ‚Œใพใ™ใ€‚
-ไปฅไธ‹ใฎใƒ†ใƒผใƒ–ใƒซใฏใƒกใƒƒใ‚ปใƒผใ‚ธใƒ•ใ‚ฃใƒผใƒซใƒ‰ใฎ่ฉณ็ดฐใช่ชฌๆ˜Žใงใ™ใ€‚
-    </para>
-
-    <table id="wd-ipc-command-format-table">
-<!--
-      <title>Watchdog IPC command packet format</title>
--->
-
-      <title>watchdogใฎIPCใ‚ณใƒžใƒณใƒ‰ใƒ‘ใ‚ฑใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆ</title>
-      <tgroup cols="3">
-        <thead>
-          <row>
-<!--
-            <entry>Field</entry>
-            <entry>Type</entry>
-            <entry>Description</entry>
--->
-            <entry>ใƒ•ใ‚ฃใƒผใƒซใƒ‰</entry>
-            <entry>ๅž‹</entry>
-            <entry>่ชฌๆ˜Ž</entry>
-          </row>
-        </thead>
-
-        <tbody>
-          <row>
-<!--
-            <entry>TYPE</entry>
-            <entry>BYTE1</entry>
-            <entry>Command Type</entry>
-          </row>
-          <row>
-            <entry>LENGTH</entry>
-            <entry>INT32 in network byte order</entry>
-            <entry>The length of data to follow</entry>
-          </row>
-          <row>
-            <entry>DATA</entry>
-            <entry>DATA in <acronym>JSON</acronym> format</entry>
-            <entry>Command data in <acronym>JSON</acronym> format</entry>
--->
-            <entry>TYPE</entry>
-            <entry>BYTE1</entry>
-            <entry>ใ‚ณใƒžใƒณใƒ‰ๅž‹</entry>
-          </row>
-          <row>
-            <entry>LENGTH</entry>
-            <entry>ใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใƒใ‚คใƒˆใ‚ชใƒผใƒ€ใƒผใฎINT32</entry>
-            <entry>ใƒ‡ใƒผใ‚ฟ้ƒจใฎ้•ทใ•</entry>
-          </row>
-          <row>
-            <entry>DATA</entry>
-            <entry><acronym>JSON</acronym>ใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆใฎใƒ‡ใƒผใ‚ฟ</entry>
-            <entry><acronym>JSON</acronym>ใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆใฎใ‚ณใƒžใƒณใƒ‰ใƒ‡ใƒผใ‚ฟ</entry>
-          </row>
-
-        </tbody>
-      </tgroup>
-    </table>
+   <para>
+    <!--
+    The watchdog IPC command packet consists of three fields.
+    Below table details the message fields and description.
+    -->
+    watchdogใฎIPCใ‚ณใƒžใƒณใƒ‰ใƒ‘ใ‚ฑใƒƒใƒˆใฏ3ใคใฎใƒ•ใ‚ฃใƒผใƒซใƒ‰ใ‹ใ‚‰ๆง‹ๆˆใ•ใ‚Œใพใ™ใ€‚
+    ไปฅไธ‹ใฎใƒ†ใƒผใƒ–ใƒซใฏใƒกใƒƒใ‚ปใƒผใ‚ธใƒ•ใ‚ฃใƒผใƒซใƒ‰ใฎ่ฉณ็ดฐใช่ชฌๆ˜Žใงใ™ใ€‚
+   </para>
+
+   <table id="wd-ipc-command-format-table">
+    <!--
+    <title>Watchdog IPC command packet format</title>
+    -->
+
+    <title>watchdogใฎIPCใ‚ณใƒžใƒณใƒ‰ใƒ‘ใ‚ฑใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆ</title>
+    <tgroup cols="3">
+     <thead>
+      <row>
+       <!--
+       <entry>Field</entry>
+       <entry>Type</entry>
+       <entry>Description</entry>
+       -->
+       <entry>ใƒ•ใ‚ฃใƒผใƒซใƒ‰</entry>
+       <entry>ๅž‹</entry>
+       <entry>่ชฌๆ˜Ž</entry>
+      </row>
+     </thead>
+
+     <tbody>
+      <row>
+       <!--
+       <entry>TYPE</entry>
+       <entry>BYTE1</entry>
+       <entry>Command Type</entry>
+      </row>
+       <row>
+       <entry>LENGTH</entry>
+       <entry>INT32 in network byte order</entry>
+       <entry>The length of data to follow</entry>
+      </row>
+       <row>
+       <entry>DATA</entry>
+       <entry>DATA in <acronym>JSON</acronym> format</entry>
+       <entry>Command data in <acronym>JSON</acronym> format</entry>
+       -->
+       <entry>TYPE</entry>
+       <entry>BYTE1</entry>
+       <entry>ใ‚ณใƒžใƒณใƒ‰ๅž‹</entry>
+      </row>
+      <row>
+       <entry>LENGTH</entry>
+       <entry>ใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใƒใ‚คใƒˆใ‚ชใƒผใƒ€ใƒผใฎINT32</entry>
+       <entry>ใƒ‡ใƒผใ‚ฟ้ƒจใฎ้•ทใ•</entry>
+      </row>
+      <row>
+       <entry>DATA</entry>
+       <entry><acronym>JSON</acronym>ใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆใฎใƒ‡ใƒผใ‚ฟ</entry>
+       <entry><acronym>JSON</acronym>ใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆใฎใ‚ณใƒžใƒณใƒ‰ใƒ‡ใƒผใ‚ฟ</entry>
+      </row>
+
+     </tbody>
+    </tgroup>
+   </table>
   </sect2>
 
   <sect2 id="tutorial-watchdog-ipc-result-packet">
-<!--
+   <!--
    <title>Watchdog IPC result packet format</title>
--->
+   -->
    <title>watchdogใฎIPC็ตๆžœใƒ‘ใ‚ฑใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆ</title>
 
    <indexterm zone="tutorial-watchdog-ipc-result-packet">
     <primary>WATCHDOG</primary>
    </indexterm>
-    <para>
-<!--
-      The watchdog IPC command result packet consists of three fields.
-      Below table details the message fields and description.
--->
-watchdogใฎIPCใ‚ณใƒžใƒณใƒ‰็ตๆžœใƒ‘ใ‚ฑใƒƒใƒˆใฏ3ใคใฎใƒ•ใ‚ฃใƒผใƒซใƒ‰ใ‹ใ‚‰ๆง‹ๆˆใ•ใ‚Œใพใ™ใ€‚
-ไปฅไธ‹ใฎใƒ†ใƒผใƒ–ใƒซใฏใƒกใƒƒใ‚ปใƒผใ‚ธใƒ•ใ‚ฃใƒผใƒซใƒ‰ใฎ่ฉณ็ดฐใช่ชฌๆ˜Žใงใ™ใ€‚
-    </para>
-
-    <table id="wd-ipc-resutl-format-table">
-<!--
-      <title>Watchdog IPC result packet format</title>
--->
-      <title>watchdogใฎIPC็ตๆžœใƒ‘ใ‚ฑใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆ</title>
-      <tgroup cols="3">
-        <thead>
-          <row>
-<!--
-            <entry>Field</entry>
-            <entry>Type</entry>
-            <entry>Description</entry>
--->
-            <entry>ใƒ•ใ‚ฃใƒผใƒซใƒ‰</entry>
-            <entry>ๅž‹</entry>
-            <entry>่ชฌๆ˜Ž</entry>
-          </row>
-        </thead>
-
-        <tbody>
-          <row>
-<!--
-            <entry>TYPE</entry>
-            <entry>BYTE1</entry>
-            <entry>Command Type</entry>
-          </row>
-          <row>
-            <entry>LENGTH</entry>
-            <entry>INT32 in network byte order</entry>
-            <entry>The length of data to follow</entry>
-          </row>
-          <row>
-            <entry>DATA</entry>
-            <entry>DATA in <acronym>JSON</acronym> format</entry>
-            <entry>Command result data in <acronym>JSON</acronym> format</entry>
--->
-            <entry>TYPE</entry>
-            <entry>BYTE1</entry>
-            <entry>ใ‚ณใƒžใƒณใƒ‰ๅž‹</entry>
-          </row>
-          <row>
-            <entry>LENGTH</entry>
-            <entry>ใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใƒใ‚คใƒˆใ‚ชใƒผใƒ€ใƒผใฎINT32</entry>
-            <entry>ใƒ‡ใƒผใ‚ฟ้ƒจใฎ้•ทใ•</entry>
-          </row>
-          <row>
-            <entry>DATA</entry>
-            <entry><acronym>JSON</acronym>ใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆใฎใƒ‡ใƒผใ‚ฟ</entry>
-            <entry><acronym>JSON</acronym>ใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆใฎใ‚ณใƒžใƒณใƒ‰ใƒ‡ใƒผใ‚ฟ</entry>
-          </row>
-
-        </tbody>
-      </tgroup>
-    </table>
+   <para>
+    <!--
+    The watchdog IPC command result packet consists of three fields.
+    Below table details the message fields and description.
+    -->
+    watchdogใฎIPCใ‚ณใƒžใƒณใƒ‰็ตๆžœใƒ‘ใ‚ฑใƒƒใƒˆใฏ3ใคใฎใƒ•ใ‚ฃใƒผใƒซใƒ‰ใ‹ใ‚‰ๆง‹ๆˆใ•ใ‚Œใพใ™ใ€‚
+    ไปฅไธ‹ใฎใƒ†ใƒผใƒ–ใƒซใฏใƒกใƒƒใ‚ปใƒผใ‚ธใƒ•ใ‚ฃใƒผใƒซใƒ‰ใฎ่ฉณ็ดฐใช่ชฌๆ˜Žใงใ™ใ€‚
+   </para>
+
+   <table id="wd-ipc-resutl-format-table">
+    <!--
+    <title>Watchdog IPC result packet format</title>
+    -->
+    <title>watchdogใฎIPC็ตๆžœใƒ‘ใ‚ฑใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆ</title>
+    <tgroup cols="3">
+     <thead>
+      <row>
+       <!--
+       <entry>Field</entry>
+       <entry>Type</entry>
+       <entry>Description</entry>
+       -->
+       <entry>ใƒ•ใ‚ฃใƒผใƒซใƒ‰</entry>
+       <entry>ๅž‹</entry>
+       <entry>่ชฌๆ˜Ž</entry>
+      </row>
+     </thead>
+
+     <tbody>
+      <row>
+       <!--
+       <entry>TYPE</entry>
+       <entry>BYTE1</entry>
+       <entry>Command Type</entry>
+      </row>
+       <row>
+       <entry>LENGTH</entry>
+       <entry>INT32 in network byte order</entry>
+       <entry>The length of data to follow</entry>
+      </row>
+       <row>
+       <entry>DATA</entry>
+       <entry>DATA in <acronym>JSON</acronym> format</entry>
+       <entry>Command result data in <acronym>JSON</acronym> format</entry>
+       -->
+       <entry>TYPE</entry>
+       <entry>BYTE1</entry>
+       <entry>ใ‚ณใƒžใƒณใƒ‰ๅž‹</entry>
+      </row>
+      <row>
+       <entry>LENGTH</entry>
+       <entry>ใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใƒใ‚คใƒˆใ‚ชใƒผใƒ€ใƒผใฎINT32</entry>
+       <entry>ใƒ‡ใƒผใ‚ฟ้ƒจใฎ้•ทใ•</entry>
+      </row>
+      <row>
+       <entry>DATA</entry>
+       <entry><acronym>JSON</acronym>ใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆใฎใƒ‡ใƒผใ‚ฟ</entry>
+       <entry><acronym>JSON</acronym>ใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆใฎใ‚ณใƒžใƒณใƒ‰ใƒ‡ใƒผใ‚ฟ</entry>
+      </row>
+
+     </tbody>
+    </tgroup>
+   </table>
   </sect2>
 
   <sect2 id="tutorial-watchdog-ipc-command-packet-types">
-<!--
+   <!--
    <title>Watchdog IPC command packet types</title>
--->
+   -->
    <title>watchdogใฎIPCใ‚ณใƒžใƒณใƒ‰ใƒ‘ใ‚ฑใƒƒใƒˆๅž‹</title>
 
    <indexterm zone="tutorial-watchdog-ipc-command-packet-types">
     <primary>WATCHDOG</primary>
    </indexterm>
-    <para>
-<!--
-      The first byte of the IPC command packet sent to watchdog process
-      and the result returned by watchdog process is identified as the
-      command or command result type.
-      The below table lists all valid types and their meanings
--->
-watchdogใƒ—ใƒญใ‚ปใ‚นใซ้€ใ‚‰ใ‚Œใ€ใพใŸwatchdogใƒ—ใƒญใ‚ปใ‚นใ‹ใ‚‰่ฟ”ๅดใ•ใ‚Œใ‚‹IPCใ‚ณใƒžใƒณใƒ‰ใฎใƒ‘ใ‚ฑใƒƒใƒˆใฎๆœ€ๅˆใฎใƒใ‚คใƒˆใฏใ€ใ‚ณใƒžใƒณใƒ‰ใพใŸใฏใ‚ณใƒžใƒณใƒ‰็ตๆžœๅž‹ใจ่ช่ญ˜ใ•ใ‚Œใพใ™ใ€‚
-    </para>
-
-    <table id="wd-ipc-command-packet--types-table">
-      <title>Watchdog IPC command packet types</title>
-      <tgroup cols="4">
-        <thead>
-          <row>
-<!--
-            <entry>Name</entry>
-            <entry>Byte Value</entry>
-            <entry>Type</entry>
-            <entry>Description</entry>
--->
-            <entry>ๅๅ‰</entry>
-            <entry>ใƒใ‚คใƒˆๅ€ค</entry>
-            <entry>ๅž‹</entry>
-            <entry>่ชฌๆ˜Ž</entry>
-          </row>
-        </thead>
-
-        <tbody>
-          <row>
-<!--
-            <entry>REGISTER FOR NOTIFICATIONS</entry>
-            <entry>'0'</entry>
-            <entry>Command packet</entry>
-            <entry>Command to register the current connection to receive watchdog notifications</entry>
-          </row>
-          <row>
-            <entry>NODE STATUS CHANGE</entry>
-            <entry>'2'</entry>
-            <entry>Command packet</entry>
-            <entry>Command to inform watchdog about node status change of watchddog node</entry>
-          </row>
-          <row>
-            <entry>GET NODES LIST</entry>
-            <entry>'3'</entry>
-            <entry>Command packet</entry>
-            <entry>Command to get the list of all configured watchdog nodes</entry>
-          </row>
-          <row>
-            <entry>NODES LIST DATA</entry>
-            <entry>'4'</entry>
-            <entry>Result packet</entry>
-            <entry>The <acronym>JSON</acronym> data in packet contains the list of all configured watchdog nodes</entry>
-          </row>
-          <row>
-            <entry>CLUSTER IN TRANSITION</entry>
-            <entry>'7'</entry>
-            <entry>Result packet</entry>
-            <entry>Watchdog returns this packet type when it is not possible to process the command because the cluster is transitioning.</entry>
-          </row>
-          <row>
-            <entry>RESULT BAD</entry>
-            <entry>'8'</entry>
-            <entry>Result packet</entry>
-            <entry>Watchdog returns this packet type when the IPC command fails</entry>
-          </row>
-          <row>
-            <entry>RESULT OK</entry>
-            <entry>'9'</entry>
-            <entry>Result packet</entry>
-            <entry>Watchdog returns this packet type when IPC command succeeds</entry>
--->
-            <entry>REGISTER FOR NOTIFICATIONS</entry>
-            <entry>'0'</entry>
-            <entry>ใ‚ณใƒžใƒณใƒ‰ใƒ‘ใ‚ฑใƒƒใƒˆ</entry>
-            <entry>็พๅœจใฎๆŽฅ็ถšใ‚’watchdog้€š็Ÿฅใ‚’ๅ—ใ‘ๅ–ใ‚‹ใŸใ‚ใซ็™ป้Œฒใ™ใ‚‹ใ‚ณใƒžใƒณใƒ‰</entry>
-          </row>
-          <row>
-            <entry>NODE STATUS CHANGE</entry>
-            <entry>'2'</entry>
-            <entry>ใ‚ณใƒžใƒณใƒ‰ใƒ‘ใ‚ฑใƒƒใƒˆ</entry>
-            <entry>watchdogใƒŽใƒผใƒ‰ใฎ็Šถๆ…‹ๅค‰ๅŒ–ใ‚’watchdogใซ้€š็Ÿฅใ™ใ‚‹ใŸใ‚ใฎใ‚ณใƒžใƒณใƒ‰</entry>
-          </row>
-          <row>
-            <entry>GET NODES LIST</entry>
-            <entry>'3'</entry>
-            <entry>ใ‚ณใƒžใƒณใƒ‰ใƒ‘ใ‚ฑใƒƒใƒˆ</entry>
-            <entry>Command to get the list of all configured watchdog nodes</entry>
-          </row>
-          <row>
-            <entry>NODES LIST DATA</entry>
-            <entry>'4'</entry>
-            <entry>็ตๆžœใƒ‘ใ‚ฑใƒƒใƒˆ</entry>
-            <entry>ใƒ‘ใ‚ฑใƒƒใƒˆไธญใฎ<acronym>JSON</acronym>ใƒ‡ใƒผใ‚ฟใซใ™ในใฆใฎwatchdogใƒŽใƒผใƒ‰ใฎใƒชใ‚นใƒˆใŒๅซใพใ‚Œใพใ™</entry>
-          </row>
-          <row>
-            <entry>CLUSTER IN TRANSITION</entry>
-            <entry>'7'</entry>
-            <entry>็ตๆžœใƒ‘ใ‚ฑใƒƒใƒˆ</entry>
-            <entry>ใ‚ฏใƒฉใ‚นใ‚ฟใŒ้ท็งปไธญใชใฎใงใ‚ณใƒžใƒณใƒ‰ใ‚’ๅ‡ฆ็†ใงใใชใ„ใจใใซwatchdogใฏใ“ใฎใƒ‘ใ‚ฑใƒƒใƒˆใ‚’่ฟ”ใ—ใพใ™</entry>
-          </row>
-          <row>
-            <entry>RESULT BAD</entry>
-            <entry>'8'</entry>
-            <entry>็ตๆžœใƒ‘ใ‚ฑใƒƒใƒˆ</entry>
-            <entry>IPCใ‚ณใƒžใƒณใƒ‰ใŒๅคฑๆ•—ใ™ใ‚‹ใจใ€watchdogใฏใ“ใฎใƒ‘ใ‚ฑใƒƒใƒˆๅž‹ใ‚’่ฟ”ใ—ใพใ™</entry>
-          </row>
-          <row>
-            <entry>RESULT OK</entry>
-            <entry>'9'</entry>
-            <entry>็ตๆžœใƒ‘ใ‚ฑใƒƒใƒˆ</entry>
-            <entry>IPCใ‚ณใƒžใƒณใƒ‰ใŒๆˆๅŠŸใ™ใ‚‹ใจใ€watchdogใฏใ“ใฎใƒ‘ใ‚ฑใƒƒใƒˆๅž‹ใ‚’่ฟ”ใ—ใพใ™</entry>
-          </row>
-
-        </tbody>
-      </tgroup>
-    </table>
+   <para>
+    <!--
+    The first byte of the IPC command packet sent to watchdog process
+    and the result returned by watchdog process is identified as the
+    command or command result type.
+    The below table lists all valid types and their meanings
+    -->
+    watchdogใƒ—ใƒญใ‚ปใ‚นใซ้€ใ‚‰ใ‚Œใ€ใพใŸwatchdogใƒ—ใƒญใ‚ปใ‚นใ‹ใ‚‰่ฟ”ๅดใ•ใ‚Œใ‚‹IPCใ‚ณใƒžใƒณใƒ‰ใฎใƒ‘ใ‚ฑใƒƒใƒˆใฎๆœ€ๅˆใฎใƒใ‚คใƒˆใฏใ€ใ‚ณใƒžใƒณใƒ‰ใพใŸใฏใ‚ณใƒžใƒณใƒ‰็ตๆžœๅž‹ใจ่ช่ญ˜ใ•ใ‚Œใพใ™ใ€‚
+   </para>
+
+   <table id="wd-ipc-command-packet--types-table">
+    <title>Watchdog IPC command packet types</title>
+    <tgroup cols="4">
+     <thead>
+      <row>
+       <!--
+       <entry>Name</entry>
+       <entry>Byte Value</entry>
+       <entry>Type</entry>
+       <entry>Description</entry>
+       -->
+       <entry>ๅๅ‰</entry>
+       <entry>ใƒใ‚คใƒˆๅ€ค</entry>
+       <entry>ๅž‹</entry>
+       <entry>่ชฌๆ˜Ž</entry>
+      </row>
+     </thead>
+
+     <tbody>
+      <row>
+       <!--
+       <entry>REGISTER FOR NOTIFICATIONS</entry>
+       <entry>'0'</entry>
+       <entry>Command packet</entry>
+       <entry>Command to register the current connection to receive watchdog notifications</entry>
+      </row>
+       <row>
+       <entry>NODE STATUS CHANGE</entry>
+       <entry>'2'</entry>
+       <entry>Command packet</entry>
+       <entry>Command to inform watchdog about node status change of watchddog node</entry>
+      </row>
+       <row>
+       <entry>GET NODES LIST</entry>
+       <entry>'3'</entry>
+       <entry>Command packet</entry>
+       <entry>Command to get the list of all configured watchdog nodes</entry>
+      </row>
+       <row>
+       <entry>NODES LIST DATA</entry>
+       <entry>'4'</entry>
+       <entry>Result packet</entry>
+       <entry>The <acronym>JSON</acronym> data in packet contains the list of all configured watchdog nodes</entry>
+      </row>
+       <row>
+       <entry>CLUSTER IN TRANSITION</entry>
+       <entry>'7'</entry>
+       <entry>Result packet</entry>
+       <entry>Watchdog returns this packet type when it is not possible to process the command because the cluster is transitioning.</entry>
+      </row>
+       <row>
+       <entry>RESULT BAD</entry>
+       <entry>'8'</entry>
+       <entry>Result packet</entry>
+       <entry>Watchdog returns this packet type when the IPC command fails</entry>
+      </row>
+       <row>
+       <entry>RESULT OK</entry>
+       <entry>'9'</entry>
+       <entry>Result packet</entry>
+       <entry>Watchdog returns this packet type when IPC command succeeds</entry>
+       -->
+       <entry>REGISTER FOR NOTIFICATIONS</entry>
+       <entry>'0'</entry>
+       <entry>ใ‚ณใƒžใƒณใƒ‰ใƒ‘ใ‚ฑใƒƒใƒˆ</entry>
+       <entry>็พๅœจใฎๆŽฅ็ถšใ‚’watchdog้€š็Ÿฅใ‚’ๅ—ใ‘ๅ–ใ‚‹ใŸใ‚ใซ็™ป้Œฒใ™ใ‚‹ใ‚ณใƒžใƒณใƒ‰</entry>
+      </row>
+      <row>
+       <entry>NODE STATUS CHANGE</entry>
+       <entry>'2'</entry>
+       <entry>ใ‚ณใƒžใƒณใƒ‰ใƒ‘ใ‚ฑใƒƒใƒˆ</entry>
+       <entry>watchdogใƒŽใƒผใƒ‰ใฎ็Šถๆ…‹ๅค‰ๅŒ–ใ‚’watchdogใซ้€š็Ÿฅใ™ใ‚‹ใŸใ‚ใฎใ‚ณใƒžใƒณใƒ‰</entry>
+      </row>
+      <row>
+       <entry>GET NODES LIST</entry>
+       <entry>'3'</entry>
+       <entry>ใ‚ณใƒžใƒณใƒ‰ใƒ‘ใ‚ฑใƒƒใƒˆ</entry>
+       <entry>Command to get the list of all configured watchdog nodes</entry>
+      </row>
+      <row>
+       <entry>NODES LIST DATA</entry>
+       <entry>'4'</entry>
+       <entry>็ตๆžœใƒ‘ใ‚ฑใƒƒใƒˆ</entry>
+       <entry>ใƒ‘ใ‚ฑใƒƒใƒˆไธญใฎ<acronym>JSON</acronym>ใƒ‡ใƒผใ‚ฟใซใ™ในใฆใฎwatchdogใƒŽใƒผใƒ‰ใฎใƒชใ‚นใƒˆใŒๅซใพใ‚Œใพใ™</entry>
+      </row>
+      <row>
+       <entry>CLUSTER IN TRANSITION</entry>
+       <entry>'7'</entry>
+       <entry>็ตๆžœใƒ‘ใ‚ฑใƒƒใƒˆ</entry>
+       <entry>ใ‚ฏใƒฉใ‚นใ‚ฟใŒ้ท็งปไธญใชใฎใงใ‚ณใƒžใƒณใƒ‰ใ‚’ๅ‡ฆ็†ใงใใชใ„ใจใใซwatchdogใฏใ“ใฎใƒ‘ใ‚ฑใƒƒใƒˆใ‚’่ฟ”ใ—ใพใ™</entry>
+      </row>
+      <row>
+       <entry>RESULT BAD</entry>
+       <entry>'8'</entry>
+       <entry>็ตๆžœใƒ‘ใ‚ฑใƒƒใƒˆ</entry>
+       <entry>IPCใ‚ณใƒžใƒณใƒ‰ใŒๅคฑๆ•—ใ™ใ‚‹ใจใ€watchdogใฏใ“ใฎใƒ‘ใ‚ฑใƒƒใƒˆๅž‹ใ‚’่ฟ”ใ—ใพใ™</entry>
+      </row>
+      <row>
+       <entry>RESULT OK</entry>
+       <entry>'9'</entry>
+       <entry>็ตๆžœใƒ‘ใ‚ฑใƒƒใƒˆ</entry>
+       <entry>IPCใ‚ณใƒžใƒณใƒ‰ใŒๆˆๅŠŸใ™ใ‚‹ใจใ€watchdogใฏใ“ใฎใƒ‘ใ‚ฑใƒƒใƒˆๅž‹ใ‚’่ฟ”ใ—ใพใ™</entry>
+      </row>
+
+     </tbody>
+    </tgroup>
+   </table>
   </sect2>
 
   <sect2 id="tutorial-watchdog-external-lifecheck-ipc">
-<!--
+   <!--
    <title>External lifecheck IPC packets and data</title>
--->
+   -->
    <title>ๅค–้ƒจๆญปๆดป็›ฃ่ฆ–ใฎIPCใƒ‘ใ‚ฑใƒƒใƒˆใจใƒ‡ใƒผใ‚ฟ</title>
 
    <indexterm zone="tutorial-watchdog-external-lifecheck-ipc">
     <primary>WATCHDOG</primary>
    </indexterm>
-    <para>
-<!--
-      "GET NODES LIST" ,"NODES LIST DATA" and "NODE STATUS CHANGE"
-      IPC messages of watchdog can be used to integration an external
-      lifecheck systems. Note that the built-in lifecheck of pgpool
-      also uses the same channel and technique.
--->
-watchdogใฎ"GET NODES LIST"ใ€"NODES LIST DATA"ใ€"NODE STATUS CHANGE"IPCใƒกใƒƒใ‚ปใƒผใ‚ธใฏใ€ๅค–้ƒจๆญปๆดป็›ฃ่ฆ–ใ‚ทใ‚นใƒ†ใƒ ใ‚’็ตฑๅˆใ™ใ‚‹ใŸใ‚ใซไฝฟ็”จใงใใพใ™ใ€‚
-pgpoolใฎ็ต„ใฟ่พผใฟๆญปๆดป็›ฃ่ฆ–ใ‚‚ๅŒใ˜ใƒใƒฃใƒณใƒใƒซใจๆŠ€่ก“ใ‚’ไฝฟใฃใฆใ„ใ‚‹ใ“ใจใซๆณจๆ„ใ—ใฆใใ ใ•ใ„ใ€‚
-    </para>
-
-    <sect3 id="tutorial-watchdog-external-lifecheck-get-nodes">
-<!--
-      <title>Getting list of configured watchdog nodes</title>
--->
-      <title>ๆง‹ๆˆใ•ใ‚Œใฆใ„ใ‚‹watchdogใƒŽใƒผใƒ‰ใฎใƒชใ‚นใƒˆใฎๅ–ๅพ—</title>
+   <para>
+    <!--
+    "GET NODES LIST" ,"NODES LIST DATA" and "NODE STATUS CHANGE"
+    IPC messages of watchdog can be used to integration an external
+    lifecheck systems. Note that the built-in lifecheck of pgpool
+    also uses the same channel and technique.
+    -->
+    watchdogใฎ"GET NODES LIST"ใ€"NODES LIST DATA"ใ€"NODE STATUS CHANGE"IPCใƒกใƒƒใ‚ปใƒผใ‚ธใฏใ€ๅค–้ƒจๆญปๆดป็›ฃ่ฆ–ใ‚ทใ‚นใƒ†ใƒ ใ‚’็ตฑๅˆใ™ใ‚‹ใŸใ‚ใซไฝฟ็”จใงใใพใ™ใ€‚
+    pgpoolใฎ็ต„ใฟ่พผใฟๆญปๆดป็›ฃ่ฆ–ใ‚‚ๅŒใ˜ใƒใƒฃใƒณใƒใƒซใจๆŠ€่ก“ใ‚’ไฝฟใฃใฆใ„ใ‚‹ใ“ใจใซๆณจๆ„ใ—ใฆใใ ใ•ใ„ใ€‚
+   </para>
+
+   <sect3 id="tutorial-watchdog-external-lifecheck-get-nodes">
+    <!--
+    <title>Getting list of configured watchdog nodes</title>
+    -->
+    <title>ๆง‹ๆˆใ•ใ‚Œใฆใ„ใ‚‹watchdogใƒŽใƒผใƒ‰ใฎใƒชใ‚นใƒˆใฎๅ–ๅพ—</title>
 
     <indexterm zone="tutorial-watchdog-external-lifecheck-get-nodes">
-      <primary>WATCHDOG</primary>
+     <primary>WATCHDOG</primary>
     </indexterm>
-      <para>
-<!--
-        Any third party lifecheck system can send the "GET NODES LIST"
-        packet on watchdog IPC socket with a <acronym>JSON</acronym>
-        data containing the authorization key and value if
-        <xref linkend="guc-wd-authkey"> is set or empty packet data
-        when <xref linkend="guc-wd-authkey"> is not configured to get
-        the "NODES LIST DATA" result packet.
--->
-ใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃใฎๆญปๆดป็›ฃ่ฆ–ใ‚ทใ‚นใƒ†ใƒ ใฏใ€<xref linkend="guc-wd-authkey">ใŒ่จญๅฎšใ•ใ‚Œใฆใ„ใ‚‹ๆ™‚ใฏ่ช่จผใ‚ญใƒผใจใƒ‡ใƒผใ‚ฟใ‚’ๅซใ‚€<acronym>JSON</acronym>ใƒ‡ใƒผใ‚ฟใ‚’ใ€<xref linkend="guc-wd-authkey">ใŒ่จญๅฎšใ•ใ‚Œใฆใ„ใชใ„ๆ™‚ใฏ็ฉบใฎใƒ‘ใ‚ฑใƒƒใƒˆใƒ‡ใƒผใ‚ฟใ‚’ๅซใ‚€"GET NODES LIST"ใƒ‘ใ‚ฑใƒƒใƒˆใ‚’watchdogใฎIPCใ‚ฝใ‚ฑใƒƒใƒˆใซ้€ใ‚‹ใ“ใจใซใ‚ˆใ‚Šใ€"NODES LIST DATA"็ตๆžœใƒ‘ใ‚ฑใƒƒใƒˆใ‚’ๅ…ฅๆ‰‹ใงใใพใ™ใ€‚
-      </para>
-      <para>
-<!--
-        The result packet returnd by watchdog for the "GET NODES LIST"
-        will contains the list of all configured watchdog nodes to do
-        health check on in the <acronym>JSON</acronym> format.
-        The <acronym>JSON</acronym> of the watchdog nodes contains the
-        <literal>"WatchdogNodes"</literal> Array of all watchdog nodes.
-        Each watchdog <acronym>JSON</acronym> node contains the
-        <literal>"ID"</literal>, <literal>"NodeName"</literal>,
-        <literal>"HostName"</literal>, <literal>"DelegateIP"</literal>,
-        <literal>"WdPort"</literal> and <literal>"PgpoolPort"</literal>
-        for each node.
--->
-"GET NODES LIST"ใซๅฏพใ™ใ‚‹watchdogใซ่ฟ”ๅดใ•ใ‚Œใ‚‹็ตๆžœใƒ‘ใ‚ฑใƒƒใƒˆใฏใ€ๆญปๆดป็›ฃ่ฆ–ใ‚’ๅฎŸๆ–ฝใ™ใ‚‹ๅฏพ่ฑกใจใชใ‚‹ใ€ๆง‹ๆˆใ•ใ‚Œใฆใ„ใ‚‹ใ™ในใฆใฎwatchdogใƒŽใƒผใƒ‰ใฎใƒชใ‚นใƒˆใ‚’ๅซใ‚€<acronym>JSON</acronym>ใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆใงใ™ใ€‚
-      </para>
-      <para>
-        <programlisting>
-    -- The example JSON data contained in "NODES LIST DATA"
+    <para>
+     <!--
+     Any third party lifecheck system can send the "GET NODES LIST"
+     packet on watchdog IPC socket with a <acronym>JSON</acronym>
+     data containing the authorization key and value if
+     <xref linkend="guc-wd-authkey"> is set or empty packet data
+     when <xref linkend="guc-wd-authkey"> is not configured to get
+     the "NODES LIST DATA" result packet.
+     -->
+     ใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃใฎๆญปๆดป็›ฃ่ฆ–ใ‚ทใ‚นใƒ†ใƒ ใฏใ€<xref linkend="guc-wd-authkey">ใŒ่จญๅฎšใ•ใ‚Œใฆใ„ใ‚‹ๆ™‚ใฏ่ช่จผใ‚ญใƒผใจใƒ‡ใƒผใ‚ฟใ‚’ๅซใ‚€<acronym>JSON</acronym>ใƒ‡ใƒผใ‚ฟใ‚’ใ€<xref linkend="guc-wd-authkey">ใŒ่จญๅฎšใ•ใ‚Œใฆใ„ใชใ„ๆ™‚ใฏ็ฉบใฎใƒ‘ใ‚ฑใƒƒใƒˆใƒ‡ใƒผใ‚ฟใ‚’ๅซใ‚€"GET NODES LIST"ใƒ‘ใ‚ฑใƒƒใƒˆใ‚’watchdogใฎIPCใ‚ฝใ‚ฑใƒƒใƒˆใซ้€ใ‚‹ใ“ใจใซใ‚ˆใ‚Šใ€"NODES LIST DATA"็ตๆžœใƒ‘ใ‚ฑใƒƒใƒˆใ‚’ๅ…ฅๆ‰‹ใงใใพใ™ใ€‚
+    </para>
+    <para>
+     <!--
+     The result packet returnd by watchdog for the "GET NODES LIST"
+     will contains the list of all configured watchdog nodes to do
+     health check on in the <acronym>JSON</acronym> format.
+     The <acronym>JSON</acronym> of the watchdog nodes contains the
+     <literal>"WatchdogNodes"</literal> Array of all watchdog nodes.
+     Each watchdog <acronym>JSON</acronym> node contains the
+     <literal>"ID"</literal>, <literal>"NodeName"</literal>,
+     <literal>"HostName"</literal>, <literal>"DelegateIP"</literal>,
+     <literal>"WdPort"</literal> and <literal>"PgpoolPort"</literal>
+     for each node.
+     -->
+     "GET NODES LIST"ใซๅฏพใ™ใ‚‹watchdogใซ่ฟ”ๅดใ•ใ‚Œใ‚‹็ตๆžœใƒ‘ใ‚ฑใƒƒใƒˆใฏใ€ๆญปๆดป็›ฃ่ฆ–ใ‚’ๅฎŸๆ–ฝใ™ใ‚‹ๅฏพ่ฑกใจใชใ‚‹ใ€ๆง‹ๆˆใ•ใ‚Œใฆใ„ใ‚‹ใ™ในใฆใฎwatchdogใƒŽใƒผใƒ‰ใฎใƒชใ‚นใƒˆใ‚’ๅซใ‚€<acronym>JSON</acronym>ใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆใงใ™ใ€‚
+    </para>
+    <para>
+     <programlisting>
+      -- The example JSON data contained in "NODES LIST DATA"
 
       {
       "NodeCount":3,
       "WatchdogNodes":
-        [
-          {
-            "ID":0,
-            "State":1,
-            "NodeName":"Linux_ubuntu_9999",
-            "HostName":"watchdog-host1",
-            "DelegateIP":"172.16.5.133",
-            "WdPort":9000,
-            "PgpoolPort":9999
-          },
-          {
-            "ID":1,
-            "State":1,
-            "NodeName":"Linux_ubuntu_9991",
-            "HostName":"watchdog-host2",
-            "DelegateIP":"172.16.5.133",
-            "WdPort":9000,
-            "PgpoolPort":9991
-          },
-          {
-            "ID":2,
-            "State":1,
-            "NodeName":"Linux_ubuntu_9992",
-            "HostName":"watchdog-host3",
-            "DelegateIP":"172.16.5.133",
-            "WdPort":9000,
-            "PgpoolPort":9992
-          }
-        ]
+      [
+      {
+      "ID":0,
+      "State":1,
+      "NodeName":"Linux_ubuntu_9999",
+      "HostName":"watchdog-host1",
+      "DelegateIP":"172.16.5.133",
+      "WdPort":9000,
+      "PgpoolPort":9999
+      },
+      {
+      "ID":1,
+      "State":1,
+      "NodeName":"Linux_ubuntu_9991",
+      "HostName":"watchdog-host2",
+      "DelegateIP":"172.16.5.133",
+      "WdPort":9000,
+      "PgpoolPort":9991
+      },
+      {
+      "ID":2,
+      "State":1,
+      "NodeName":"Linux_ubuntu_9992",
+      "HostName":"watchdog-host3",
+      "DelegateIP":"172.16.5.133",
+      "WdPort":9000,
+      "PgpoolPort":9992
+      }
+      ]
+      }
+
+      -- Note that ID 0 is always reserved for local watchdog node
+
+     </programlisting>
+    </para>
+    <para>
+     <!--
+     After getting the configured watchdog nodes information from the
+     watchdog the external lifecheck system can proceed with the
+     health checking of watchdog nodes, and when it detects some status
+     change of any node it can inform that to watchdog using the
+     "NODE STATUS CHANGE" IPC messages of watchdog.
+     The data in the message should contain the <acronym>JSON</acronym>
+     with the node ID of the node whose status is changed
+     (The node ID must be same as returned by watchdog for that node
+     in WatchdogNodes list) and the new status of node.
+     -->
+     ๆง‹ๆˆใ•ใ‚Œใฆใ„ใ‚‹watchdogใƒŽใƒผใƒ‰ๆƒ…ๅ ฑใ‚’watchdogใ‹ใ‚‰ๅ…ฅๆ‰‹ใ—ใŸใ‚‰ใ€ๅค–้ƒจๆญปๆดป็›ฃ่ฆ–ใ‚ทใ‚นใƒ†ใƒ ใฏwatchdogใƒŽใƒผใƒ‰ใฎๆญปๆดป็›ฃ่ฆ–ใ‚’ๅฎŸๆ–ฝใงใใพใ™ใ€‚
+     ใƒŽใƒผใƒ‰ใฎ็Šถๆ…‹ๅค‰ๅŒ–ใ‚’ๆคœ็Ÿฅใ—ใŸใ‚‰ใ€watchdogใฎ"NODE STATUS CHANGE"IPCใƒกใƒƒใ‚ปใƒผใ‚ธใ‚’ไฝฟใฃใฆใ€watchdogใซ้€š็Ÿฅใงใใพใ™ใ€‚
+     ใƒกใƒƒใ‚ปใƒผใ‚ธใซใฏใ€็Šถๆ…‹ๅค‰ๅŒ–ใ—ใŸใƒŽใƒผใƒ‰IDใจใƒŽใƒผใƒ‰ใฎๆ–ฐใ—ใ„็Šถๆ…‹ใ‚’ไผดใ†<acronym>JSON</acronym>ใงใƒ‡ใƒผใ‚ฟใ‚’ๆ ผ็ดใ—ใฆใใ ใ•ใ„๏ผˆใƒŽใƒผใƒ‰IDใฏใ€watchdogใ‹ใ‚‰่ฟ”ๅดใ•ใ‚ŒใŸWatchdogNodesใƒชใ‚นใƒˆไธญใฎใƒŽใƒผใƒ‰ใจๅŒใ˜ใƒŽใƒผใƒ‰IDใ‚’ไฝฟใ‚ใชใ‘ใ‚Œใฐใชใ‚Šใพใ›ใ‚“๏ผ‰ใ€‚
+    </para>
+    <para>
+     <programlisting>
+      -- The example JSON to inform pgpool-II watchdog about health check
+      failed on node with ID 1 will look like
+
+      {
+      "NodeID":1,
+      "NodeStatus":1,
+      "Message":"optional message string to log by watchdog for this event"
+      "IPCAuthKey":"wd_authkey configuration parameter value"
       }
 
-    -- Note that ID 0 is always reserved for local watchdog node
-
-        </programlisting>
-      </para>
-      <para>
-<!--
-        After getting the configured watchdog nodes information from the
-        watchdog the external lifecheck system can proceed with the
-        health checking of watchdog nodes, and when it detects some status
-        change of any node it can inform that to watchdog using the
-        "NODE STATUS CHANGE" IPC messages of watchdog.
-        The data in the message should contain the <acronym>JSON</acronym>
-        with the node ID of the node whose status is changed
-        (The node ID must be same as returned by watchdog for that node
-        in WatchdogNodes list) and the new status of node.
--->
-ๆง‹ๆˆใ•ใ‚Œใฆใ„ใ‚‹watchdogใƒŽใƒผใƒ‰ๆƒ…ๅ ฑใ‚’watchdogใ‹ใ‚‰ๅ…ฅๆ‰‹ใ—ใŸใ‚‰ใ€ๅค–้ƒจๆญปๆดป็›ฃ่ฆ–ใ‚ทใ‚นใƒ†ใƒ ใฏwatchdogใƒŽใƒผใƒ‰ใฎๆญปๆดป็›ฃ่ฆ–ใ‚’ๅฎŸๆ–ฝใงใใพใ™ใ€‚
-ใƒŽใƒผใƒ‰ใฎ็Šถๆ…‹ๅค‰ๅŒ–ใ‚’ๆคœ็Ÿฅใ—ใŸใ‚‰ใ€watchdogใฎ"NODE STATUS CHANGE"IPCใƒกใƒƒใ‚ปใƒผใ‚ธใ‚’ไฝฟใฃใฆใ€watchdogใซ้€š็Ÿฅใงใใพใ™ใ€‚
-ใƒกใƒƒใ‚ปใƒผใ‚ธใซใฏใ€็Šถๆ…‹ๅค‰ๅŒ–ใ—ใŸใƒŽใƒผใƒ‰IDใจใƒŽใƒผใƒ‰ใฎๆ–ฐใ—ใ„็Šถๆ…‹ใ‚’ไผดใ†<acronym>JSON</acronym>ใงใƒ‡ใƒผใ‚ฟใ‚’ๆ ผ็ดใ—ใฆใใ ใ•ใ„๏ผˆใƒŽใƒผใƒ‰IDใฏใ€watchdogใ‹ใ‚‰่ฟ”ๅดใ•ใ‚ŒใŸWatchdogNodesใƒชใ‚นใƒˆไธญใฎใƒŽใƒผใƒ‰ใจๅŒใ˜ใƒŽใƒผใƒ‰IDใ‚’ไฝฟใ‚ใชใ‘ใ‚Œใฐใชใ‚Šใพใ›ใ‚“๏ผ‰ใ€‚
-      </para>
-      <para>
-        <programlisting>
-  -- The example JSON to inform pgpool-II watchdog about health check
-  failed on node with ID 1 will look like
-
-    {
-    "NodeID":1,
-    "NodeStatus":1,
-    "Message":"optional message string to log by watchdog for this event"
-    "IPCAuthKey":"wd_authkey configuration parameter value"
-    }
-
-  -- NodeStatus values meanings are as follows
-  NODE STATUS DEAD  =  1
-  NODE STATUS ALIVE =  2
-
-        </programlisting>
-      </para>
-    </sect3>
+      -- NodeStatus values meanings are as follows
+      NODE STATUS DEAD  =  1
+      NODE STATUS ALIVE =  2
+
+     </programlisting>
+    </para>
+   </sect3>
+  </sect2>
+ </sect1>
+ <sect1 id="tutorial-watchdog-restrictions">
+  <!--
+  <title>Restrictions on watchdog</title>
+  -->
+  <title>watchdogใฎๅˆถ้™ไบ‹้ …</title>
+
+  <indexterm zone="tutorial-watchdog-restrictions">
+   <primary>WATCHDOG</primary>
+  </indexterm>
+
+  <sect2 id="tutorial-watchdog-restrictions-query-mode">
+   <!--
+   <title>Watchdog restriction with query mode lifecheck</title>
+   -->
+   <title>ใ‚ฏใ‚จใƒชใƒขใƒผใƒ‰ใฎๆญปๆดป็›ฃ่ฆ–ใซใŠใ‘ใ‚‹watchdogใฎๅˆถ้™ไบ‹้ …</title>
+   <indexterm zone="tutorial-watchdog-restrictions-query-mode">
+    <primary>WATCHDOG</primary>
+   </indexterm>
+
+   <para>
+    <!--
+    In query mode, when all the DB nodes are detached from a
+    <productname>Pgpool-II</productname> due to PostgreSQL server
+    failure or pcp_detach_node issued, watchdog regards that the
+    <productname>Pgpool-II</productname> service is in the down
+    status and brings the virtual IP assigned to watchdog down.
+    Thus clients of <productname>Pgpool-II</productname> cannot
+    connect to <productname>Pgpool-II</productname> using the
+    virtual IP any more. This is neccessary to avoid split-brain,
+    that is, situations where there are multiple active
+    <productname>Pgpool-II</productname>.
+    -->
+    ใ‚ฏใ‚จใƒชใƒขใƒผใƒ‰ใงใฏใ€PostgreSQLใ‚ตใƒผใƒใฎ้šœๅฎณใ‚„pcp_detach_nodeใซใ‚ˆใฃใฆใ™ในใฆใฎDBใƒŽใƒผใƒ‰ใŒ<productname>Pgpool-II</productname>ใ‹ใ‚‰ๅˆ‡ใ‚Š้›ขใ•ใ‚Œใ‚‹ใจใ€watchdogใฏ<productname>Pgpool-II</productname>ใ‚ตใƒผใƒ“ใ‚นใŒๅœๆญข็Šถๆ…‹ใซใ‚ใ‚‹ใจใฟใชใ—ใ€watchdogใซๅ‰ฒใ‚Šๅฝ“ใฆใ‚ใ‚‰ใ‚ŒใŸไปฎๆƒณIPใ‚’ๅœๆญขใ—ใพใ™ใ€‚
+    ใงใ™ใฎใงใ€<productname>Pgpool-II</productname>ใฎใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆใฏไปฎๆƒณIPใ‚’ไฝฟใฃใฆ<productname>Pgpool-II</productname>ใซๆŽฅ็ถšใงใใชใใชใ‚Šใพใ™ใ€‚
+    ใ“ใ‚Œใฏใ€่ค‡ๆ•ฐใฎใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–<productname>Pgpool-II</productname>ใŒๅญ˜ๅœจใ™ใ‚‹ใ‚นใƒ—ใƒชใƒƒใƒˆใƒ–ใƒฌใ‚คใƒณใ‚’ๅ›ž้ฟใ™ใ‚‹ใŸใ‚ใซๅฟ…่ฆใงใ™ใ€‚
+   </para>
+  </sect2>
+
+  <sect2 id="tutorial-watchdog-restrictions-down-watchdog-mode">
+   <!--
+   <title>Connecting to <productname>Pgpool-II</productname> whose watchdog status is down</title>
+   -->
+   <title>watchdogใŒๅœๆญขใ—ใฆใ„ใ‚‹<productname>Pgpool-II</productname>ใซๆŽฅ็ถšใ™ใ‚‹</title>
+   <indexterm zone="tutorial-watchdog-restrictions-down-watchdog-mode">
+    <primary>WATCHDOG</primary>
+   </indexterm>
+   <para>
+    <!--
+    Don't connect to <productname>Pgpool-II</productname> in down
+    status using the real IP. Because a <productname>Pgpool-II</productname>
+    in down status can't receive information from other
+    <productname>Pgpool-II</productname> watchdogs so it's backend status
+    may be different from other the <productname>Pgpool-II</productname>.
+    -->
+    watchdog ใŒๅœๆญข็Šถๆ…‹ใฎ<productname>Pgpool-II</productname>ใซๅฎŸIPใงๆŽฅ็ถšใ—ใชใ„ใงใใ ใ•ใ„ใ€‚
+    ใชใœใชใ‚‰ใ€watchdog ใŒใƒ€ใ‚ฆใƒณ็Šถๆ…‹ใฎ<productname>Pgpool-II</productname>ใฏใ€ไป–ใฎ<productname>Pgpool-II</productname> watchdogใ‹ใ‚‰ๆƒ…ๅ ฑใ‚’ๅ—ใ‘ๅ–ใ‚Œใชใ„ใฎใงใ€ไป–ใฎ<productname>Pgpool-II</productname>ใ‹ใ‚‰ใ€ใƒใƒƒใ‚ฏใ‚จใƒณใƒ‰ใฎ็Šถๆ…‹ใŒใšใ‚Œใ‚‹ใ‹ใ‚‚ใ—ใ‚Œใชใ„ใ‹ใ‚‰ใงใ™ใ€‚
+   </para>
   </sect2>
-</sect1>
-  <sect1 id="tutorial-watchdog-restrictions">
-<!--
-   <title>Restrictions on watchdog</title>
--->
-   <title>watchdogใฎๅˆถ้™ไบ‹้ …</title>
-
-   <indexterm zone="tutorial-watchdog-restrictions">
+
+  <sect2 id="tutorial-watchdog-restrictions-down-watchdog-require-restart">
+   <!--
+   <title><productname>Pgpool-II</productname> whose watchdog status is down requires restart</title>
+   -->
+   <title>watchdogใŒๅœๆญขใ—ใฆใ„ใ‚‹<productname>Pgpool-II</productname>ใฏๅ†่ตทๅ‹•ใŒๅฟ…่ฆใงใ™</title>
+   <indexterm zone="tutorial-watchdog-restrictions-down-watchdog-require-restart">
     <primary>WATCHDOG</primary>
    </indexterm>
+   <para>
+    <!--
+    <productname>Pgpool-II</productname> in down status can't become active
+    nor the standby <productname>Pgpool-II</productname>.
+    Recovery from down status requires the restart of <productname>Pgpool-II</productname>.
+    -->
+    watchdog ใŒๅœๆญข็Šถๆ…‹ใฎ<productname>Pgpool-II</productname>ใฏใ€ใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–ใฎ<productname>Pgpool-II</productname>ใซใ‚‚ใ‚นใ‚ฟใƒณใƒใ‚คใฎ<productname>Pgpool-II</productname>ใซใ‚‚ใชใ‚Œใพใ›ใ‚“ใ€‚
+    ๅœๆญข็Šถๆ…‹ใ‹ใ‚‰ใฎๅพฉๅธฐใซใฏ<productname>Pgpool-II</productname>ใฎๅ†่ตทๅ‹•ใŒๅฟ…่ฆใงใ™ใ€‚
+   </para>
+  </sect2>
+
+  <sect2 id="tutorial-watchdog-restrictions-active-take-time">
+   <!--
+   <title>Watchdog promotion to active takes few seconds</title>
+   -->
+   <title>watchdogใฎๆ˜‡ๆ ผใซใฏๆ•ฐ็ง’ใ‚’่ฆใ—ใพใ™</title>
+   <indexterm zone="tutorial-watchdog-restrictions-active-take-time">
+    <primary>WATCHDOG</primary>
+   </indexterm>
+   <para>
+    <!--
+    After the active <productname>Pgpool-II</productname> stops,
+    it will take a few seconds until the standby <productname>Pgpool-II</productname>
+    promote to new active, to make sure that the former virtual IP is
+    brought down before a down notification packet is sent to other
+    <productname>Pgpool-II</productname>.
+    -->
+    ๅœๆญข้€š็Ÿฅใƒ‘ใ‚ฑใƒƒใƒˆใŒไป–ใฎ<productname>Pgpool-II</productname>ใซ้€ใ‚‰ใ‚Œใ‚‹ๅ‰ใซใ€ไปฅๅ‰ใฎไปฎๆƒณIPใŒๅœๆญขใ—ใŸใ“ใจใ‚’็ขบ่ชใ™ใ‚‹ใฎใงใ€ใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–<productname>Pgpool-II</productname>ใŒๅœๆญขใ—ใฆใ‹ใ‚‰ใ‚นใ‚ฟใƒณใƒใ‚ค<productname>Pgpool-II</productname>ใŒๆ–ฐใ—ใ„ใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–ใซๆ˜‡ๆ ผใ™ใ‚‹ใพใงใซใฏๆ•ฐ็ง’ใ‚’่ฆใ—ใพใ™ใ€‚
+   </para>
+  </sect2>
+ </sect1>
 
-    <sect2 id="tutorial-watchdog-restrictions-query-mode">
-<!--
-      <title>Watchdog restriction with query mode lifecheck</title>
--->
-      <title>ใ‚ฏใ‚จใƒชใƒขใƒผใƒ‰ใฎๆญปๆดป็›ฃ่ฆ–ใซใŠใ‘ใ‚‹watchdogใฎๅˆถ้™ไบ‹้ …</title>
-      <indexterm zone="tutorial-watchdog-restrictions-query-mode">
-        <primary>WATCHDOG</primary>
-      </indexterm>
-
-      <para>
-<!--
-        In query mode, when all the DB nodes are detached from a
-        <productname>Pgpool-II</productname> due to PostgreSQL server
-        failure or pcp_detach_node issued, watchdog regards that the
-        <productname>Pgpool-II</productname> service is in the down
-        status and brings the virtual IP assigned to watchdog down.
-        Thus clients of <productname>Pgpool-II</productname> cannot
-        connect to <productname>Pgpool-II</productname> using the
-        virtual IP any more. This is neccessary to avoid split-brain,
-        that is, situations where there are multiple active
-        <productname>Pgpool-II</productname>.
--->
-ใ‚ฏใ‚จใƒชใƒขใƒผใƒ‰ใงใฏใ€PostgreSQLใ‚ตใƒผใƒใฎ้šœๅฎณใ‚„pcp_detach_nodeใซใ‚ˆใฃใฆใ™ในใฆใฎDBใƒŽใƒผใƒ‰ใŒ<productname>Pgpool-II</productname>ใ‹ใ‚‰ๅˆ‡ใ‚Š้›ขใ•ใ‚Œใ‚‹ใจใ€watchdogใฏ<productname>Pgpool-II</productname>ใ‚ตใƒผใƒ“ใ‚นใŒๅœๆญข็Šถๆ…‹ใซใ‚ใ‚‹ใจใฟใชใ—ใ€watchdogใซๅ‰ฒใ‚Šๅฝ“ใฆใ‚ใ‚‰ใ‚ŒใŸไปฎๆƒณIPใ‚’ๅœๆญขใ—ใพใ™ใ€‚
-ใงใ™ใฎใงใ€<productname>Pgpool-II</productname>ใฎใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆใฏไปฎๆƒณIPใ‚’ไฝฟใฃใฆ<productname>Pgpool-II</productname>ใซๆŽฅ็ถšใงใใชใใชใ‚Šใพใ™ใ€‚
-ใ“ใ‚Œใฏใ€่ค‡ๆ•ฐใฎใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–<productname>Pgpool-II</productname>ใŒๅญ˜ๅœจใ™ใ‚‹ใ‚นใƒ—ใƒชใƒƒใƒˆใƒ–ใƒฌใ‚คใƒณใ‚’ๅ›ž้ฟใ™ใ‚‹ใŸใ‚ใซๅฟ…่ฆใงใ™ใ€‚
-      </para>
-    </sect2>
-
-    <sect2 id="tutorial-watchdog-restrictions-down-watchdog-mode">
-<!--
-      <title>Connecting to <productname>Pgpool-II</productname> whose watchdog status is down</title>
--->
-      <title>watchdogใŒๅœๆญขใ—ใฆใ„ใ‚‹<productname>Pgpool-II</productname>ใซๆŽฅ็ถšใ™ใ‚‹</title>
-      <indexterm zone="tutorial-watchdog-restrictions-down-watchdog-mode">
-        <primary>WATCHDOG</primary>
-      </indexterm>
-      <para>
-<!--
-        Don't connect to <productname>Pgpool-II</productname> in down
-        status using the real IP. Because a <productname>Pgpool-II</productname>
-        in down status can't receive information from other
-        <productname>Pgpool-II</productname> watchdogs so it's backend status
-        may be different from other the <productname>Pgpool-II</productname>.
--->
-watchdog ใŒๅœๆญข็Šถๆ…‹ใฎ<productname>Pgpool-II</productname>ใซๅฎŸIPใงๆŽฅ็ถšใ—ใชใ„ใงใใ ใ•ใ„ใ€‚
-ใชใœใชใ‚‰ใ€watchdog ใŒใƒ€ใ‚ฆใƒณ็Šถๆ…‹ใฎ<productname>Pgpool-II</productname>ใฏใ€ไป–ใฎ<productname>Pgpool-II</productname> watchdogใ‹ใ‚‰ๆƒ…ๅ ฑใ‚’ๅ—ใ‘ๅ–ใ‚Œใชใ„ใฎใงใ€ไป–ใฎ<productname>Pgpool-II</productname>ใ‹ใ‚‰ใ€ใƒใƒƒใ‚ฏใ‚จใƒณใƒ‰ใฎ็Šถๆ…‹ใŒใšใ‚Œใ‚‹ใ‹ใ‚‚ใ—ใ‚Œใชใ„ใ‹ใ‚‰ใงใ™ใ€‚
-      </para>
-    </sect2>
-
-    <sect2 id="tutorial-watchdog-restrictions-down-watchdog-require-restart">
-<!--
-      <title><productname>Pgpool-II</productname> whose watchdog status is down requires restart</title>
--->
-      <title>watchdogใŒๅœๆญขใ—ใฆใ„ใ‚‹<productname>Pgpool-II</productname>ใฏๅ†่ตทๅ‹•ใŒๅฟ…่ฆใงใ™</title>
-      <indexterm zone="tutorial-watchdog-restrictions-down-watchdog-require-restart">
-        <primary>WATCHDOG</primary>
-      </indexterm>
-      <para>
-<!--
-        <productname>Pgpool-II</productname> in down status can't become active
-        nor the standby <productname>Pgpool-II</productname>.
-        Recovery from down status requires the restart of <productname>Pgpool-II</productname>.
--->
-watchdog ใŒๅœๆญข็Šถๆ…‹ใฎ<productname>Pgpool-II</productname>ใฏใ€ใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–ใฎ<productname>Pgpool-II</productname>ใซใ‚‚ใ‚นใ‚ฟใƒณใƒใ‚คใฎ<productname>Pgpool-II</productname>ใซใ‚‚ใชใ‚Œใพใ›ใ‚“ใ€‚
-ๅœๆญข็Šถๆ…‹ใ‹ใ‚‰ใฎๅพฉๅธฐใซใฏ<productname>Pgpool-II</productname>ใฎๅ†่ตทๅ‹•ใŒๅฟ…่ฆใงใ™ใ€‚
-      </para>
-    </sect2>
-
-    <sect2 id="tutorial-watchdog-restrictions-active-take-time">
-<!--
-      <title>Watchdog promotion to active takes few seconds</title>
--->
-      <title>watchdogใฎๆ˜‡ๆ ผใซใฏๆ•ฐ็ง’ใ‚’่ฆใ—ใพใ™</title>
-      <indexterm zone="tutorial-watchdog-restrictions-active-take-time">
-        <primary>WATCHDOG</primary>
-      </indexterm>
-      <para>
-<!--
-        After the active <productname>Pgpool-II</productname> stops,
-        it will take a few seconds until the standby <productname>Pgpool-II</productname>
-        promote to new active, to make sure that the former virtual IP is
-        brought down before a down notification packet is sent to other
-        <productname>Pgpool-II</productname>.
--->
-ๅœๆญข้€š็Ÿฅใƒ‘ใ‚ฑใƒƒใƒˆใŒไป–ใฎ<productname>Pgpool-II</productname>ใซ้€ใ‚‰ใ‚Œใ‚‹ๅ‰ใซใ€ไปฅๅ‰ใฎไปฎๆƒณIPใŒๅœๆญขใ—ใŸใ“ใจใ‚’็ขบ่ชใ™ใ‚‹ใฎใงใ€ใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–<productname>Pgpool-II</productname>ใŒๅœๆญขใ—ใฆใ‹ใ‚‰ใ‚นใ‚ฟใƒณใƒใ‚ค<productname>Pgpool-II</productname>ใŒๆ–ฐใ—ใ„ใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–ใซๆ˜‡ๆ ผใ™ใ‚‹ใพใงใซใฏๆ•ฐ็ง’ใ‚’่ฆใ—ใพใ™ใ€‚
-      </para>
-    </sect2>
-  </sect1>
-
-  <sect1 id="tutorial-advanced-arch">
-<!--
-    <title>Architecure of the watchdog</title>
--->
-    <title>watchdogใฎๆง‹้€ </title>
+ <sect1 id="tutorial-advanced-arch">
+  <!--
+  <title>Architecure of the watchdog</title>
+  -->
+  <title>watchdogใฎๆง‹้€ </title>
 
+  <para>
+   <!--
+   Watchdog is a sub process of <productname>Pgpool-II</productname>,
+   which adds the high availability and resolves the single point of
+   failure by coordinating multiple <productname>Pgpool-II</productname>.
+   The watchdog process automatically starts (if enabled) when the
+   <productname>Pgpool-II</productname> starts up and consists of two
+   main components, Watchdog core and the lifecheck system.
+   -->
+   watchdogใฏ<productname>Pgpool-II</productname>ใฎไธ‹ไฝใƒ—ใƒญใ‚ปใ‚นใงใ€่ค‡ๆ•ฐใฎ<productname>Pgpool-II</productname>ใ‚’่ชฟๆ•ดใ—ใฆใ€้ซ˜ๅฏ็”จๆ€งใ‚’่ฟฝๅŠ ใ—ใ€ๅ˜ไธ€้šœๅฎณ็‚นใ‚’้™คใใพใ™ใ€‚
+   ๏ผˆใ‚‚ใ—ๆœ‰ๅŠนใชใ‚‰๏ผ‰watchdogใƒ—ใƒญใ‚ปใ‚นใฏ<productname>Pgpool-II</productname>ใŒ่ตทๅ‹•ใ—ใŸ้š›ใซ่‡ชๅ‹•็š„ใซ่ตทๅ‹•ใ•ใ‚Œใพใ™ใ€‚
+   watchdogใฏใ€ใ‚ณใ‚ขใ‚ทใ‚นใƒ†ใƒ ใจๆญปๆดป็›ฃ่ฆ–ใ‚ทใ‚นใƒ†ใƒ ใฎ2ใคใฎไธปใชใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใ‹ใ‚‰ๆง‹ๆˆใ•ใ‚Œใพใ™ใ€‚
+  </para>
+
+  <sect2 id="tutorial-advanced-arch-wd-core">
+   <!--
+   <title>Watchdog Core</title>
+   -->
+   <title>watchdogใ‚ณใ‚ข</title>
+   <para>
+    <!--
+    Watchdog core referred as a "watchdog" is a
+    <productname>Pgpool-II</productname> child process that
+    manages all the watchdog related communications with the
+    <productname>Pgpool-II</productname> nodes present in the
+    cluster and also communicates with the <productname>Pgpool-II</productname>
+    parent and lifecheck processes.
+    -->
+    "watchdog"ใจใ—ใฆๅ‚็…งใ•ใ‚Œใ‚‹watchdogใ‚ณใ‚ขใฏใ€ใ‚ฏใƒฉใ‚นใ‚ฟใซๅญ˜ๅœจใ™ใ‚‹<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใจใฎwatchdog้–ข้€ฃใฎ้€šไฟกใ‚’็ฎก็†ใ—ใพใ™ใ€‚
+    ใพใŸใ€<productname>Pgpool-II</productname>่ฆชใƒ—ใƒญใ‚ปใ‚นใจๆญปๆดป็›ฃ่ฆ–ใƒ—ใƒญใ‚ปใ‚นใจใ‚‚้€šไฟกใ—ใพใ™ใ€‚
+   </para>
+   <para>
+    <!--
+    The heart of a watchdog process is a state machine that starts
+    from its initial state (<literal>WD_LOADING</literal>) and transit
+    towards either standby (<literal>WD_STANDBY</literal>) or
+    master/coordinator (<literal>WD_COORDINATOR</literal>) state.
+    Both standby and master/coordinator states are stable states of the
+    watchdog state machine and the node stays in standby or
+    master/coordinator state until some problem in local
+    <productname>Pgpool-II</productname> node is detected or a
+    remote <productname>Pgpool-II</productname> disconnects from the cluster.
+    -->
+    watchdogใƒ—ใƒญใ‚ปใ‚นใฎไธญๅฟƒใฏใ‚นใƒ†ใƒผใƒˆใƒžใ‚ทใƒณใงใ€ๅˆๆœŸ็Šถๆ…‹(<literal>WD_LOADING</literal>)ใ‹ใ‚‰ๅ‡บ็™บใ—ใ€ใ‚นใ‚ฟใƒณใƒใ‚ค็Šถๆ…‹(<literal>WD_STANDBY</literal>)ใ‹ใƒžใ‚นใ‚ฟใƒผ/ใ‚ณใƒผใƒ‡ใ‚ฃใƒใƒผใ‚ฟใƒผ็Šถๆ…‹(<literal>WD_COORDINATOR</literal>)ใธใจ้ท็งปใ—ใพใ™ใ€‚
+    ใ‚นใ‚ฟใƒณใƒใ‚ค็Šถๆ…‹ใ‚‚ใƒžใ‚นใ‚ฟใƒผ/ใ‚ณใƒผใƒ‡ใ‚ฃใƒใƒผใ‚ฟใƒผ็Šถๆ…‹ใ‚‚ใ€watchdogใ‚นใƒ†ใƒผใƒˆใƒžใ‚ทใƒณใจใ—ใฆใฏๅฎ‰ๅฎš็Šถๆ…‹ใงใ™ใ€‚
+    ใƒญใƒผใ‚ซใƒซใฎ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใซๅ•้กŒใŒ่ตทใใ‚‹ใ‹ใ€ใƒชใƒขใƒผใƒˆใฎ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใŒใ‚ฏใƒฉใ‚นใ‚ฟใ‹ใ‚‰ๅˆ‡ใ‚Š้›ขใ•ใ‚Œใ‚‹ใพใงใใฎ็Šถๆ…‹ใ‚’ไฟใกใพใ™ใ€‚
+   </para>
+   <para>
+    <!--
+    The watchdog process performs the following tasks:
+    -->
+    watchdogใƒ—ใƒญใ‚ปใ‚นใฏไปฅไธ‹ใฎใ‚ฟใ‚นใ‚ฏใ‚’ๅฎŸ่กŒใ—ใพใ™ใ€‚
+
+   </para>
+   <itemizedlist>
+    <listitem>
+     <para>
+      <!--
+      Manages and coordinates the local node watchdog state.
+      -->
+      ใƒญใƒผใ‚ซใƒซใƒŽใƒผใƒ‰ใฎwatchdog็Šถๆ…‹ใฎ็ฎก็†ใจ่ชฟๅœ
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      <!--
+      Interacts with built-in or external lifecheck system
+      for the of local and remote <productname>Pgpool-II</productname>
+      node health checking.
+      -->
+      ใƒญใƒผใ‚ซใƒซใ‚ใ‚‹ใ„ใฏใƒชใƒขใƒผใƒˆใฎ<productname>Pgpool-II</productname>ใ‚’ๅฏพ่ฑกใจใ™ใ‚‹็ต„ใฟ่พผใฟใ‚ใ‚‹ใ„ใฏๅค–้ƒจๆญปๆดป็›ฃ่ฆ–ใจใฎ้€šไฟก
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      <!--
+      Interacts with <productname>Pgpool-II</productname> main
+      process and provides the mechanism to
+      <productname>Pgpool-II</productname> parent process for
+      executing the cluster commands over the watchdog channel.
+      -->
+      watchdogใƒใƒฃใƒณใƒใƒซใ‚’้€šใ˜ใฆ<productname>Pgpool-II</productname>่ฆชใƒ—ใƒญใ‚ปใ‚นใŒใ‚ฏใƒฉใ‚นใ‚ฟใ‚ณใƒžใƒณใƒ‰ใ‚’ๅฎŸ่กŒใ™ใ‚‹ใŸใ‚ใฎๆฉŸๆง‹ใ‚’ๆไพ›ใ™ใ‚‹ใŸใ‚ใซใ€<productname>Pgpool-II</productname>ใƒกใ‚คใƒณใƒ—ใƒญใ‚ปใ‚นใจ้€šไฟกใ™ใ‚‹
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      <!--
+      Communicates with all the participating <productname>Pgpool-II
+     </productname> nodes to coordinate the selection of
+      master/coordinator node and to ensure the quorum in the cluster.
+      -->
+      ๅ‚ๅŠ ใ—ใฆใ„ใ‚‹ใ™ในใฆใฎ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใจ้€šไฟกใ—ใ€ใƒžใ‚นใ‚ฟใƒผ/ใ‚ณใƒผใƒ‡ใ‚ฃใƒใƒผใ‚ฟใƒผใƒŽใƒผใƒ‰ใฎ้ธๆŠžใ‚’่ชฟๅœใ—ใ€ใ‚ฏใƒฉใ‚นใ‚ฟใฎใ‚ฏใ‚ฉใƒผใƒฉใƒ ใ‚’็ขบๅฎŸใซใ™ใ‚‹
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      <!--
+      Manages the Virtual-IP on the active/coordinator node and
+      allow the users to provide custom scripts for
+      escalation and de-escalation.
+      -->
+      ใƒžใ‚นใ‚ฟใƒผ/ใ‚ณใƒผใƒ‡ใ‚ฃใƒใƒผใ‚ฟใƒผใƒŽใƒผใƒ‰ไธŠใฎไปฎๆƒณIPใ‚’็ฎก็†ใ—ใ€ใƒฆใƒผใ‚ถใŒๆ˜‡ๆ ผใจ้™ๆ ผ็”จใฎใ‚ซใ‚นใ‚ฟใƒ ใ‚นใ‚ฏใƒชใƒ—ใƒˆใ‚’ๆ›ธใ‘ใ‚‹ใ‚ˆใ†ใซใ™ใ‚‹
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      <!--
+      Verifies the consistency of <productname>Pgpool-II</productname>
+      configurations across the participating <productname>Pgpool-II
+     </productname> nodes in the watchdog cluster.
+      -->
+      watchdogใ‚ฏใƒฉใ‚นใ‚ฟไธญใฎ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใฎ่จญๅฎšใฎไธ€่ฒซๆ€งใ‚’ๆคœ่จผใ™ใ‚‹
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      <!--
+      Synchronize the status of all PostgreSQL backends at startup.
+      -->
+      ่ตทๅ‹•ๆ™‚ใซใ™ในใฆใฎPostgreSQLใƒใƒƒใ‚ฏใ‚จใƒณใƒ‰ใฎ็Šถๆ…‹ใ‚’ๅŒๆœŸใ™ใ‚‹
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      <!--
+      Provides the distributed locking facility to
+      <productname>Pgpool-II</productname> main process
+      for synchronizing the different failover commands.
+      -->
+      ่ค‡ๆ•ฐใฎใƒ•ใ‚งใ‚คใƒซใ‚ชใƒผใƒใ‚ณใƒžใƒณใƒ‰ใ‚’็›ดๅˆ—ๅŒ–ใ™ใ‚‹ใŸใ‚ใซ<productname>Pgpool-II</productname>ใƒกใ‚คใƒณใƒ—ใƒญใ‚ปใ‚นใซๅฏพใ—ใฆๅˆ†ๆ•ฃใƒญใƒƒใ‚ฏๆฉŸ่ƒฝใ‚’ๆไพ›ใ™ใ‚‹
+     </para>
+    </listitem>
+
+   </itemizedlist>
+
+   <sect3 id="tutorial-advanced-arch-wd-core-comm">
+    <!--
+    <title>Communication with other nodes in the Cluster</title>
+    -->
+    <title>ใ‚ฏใƒฉใ‚นใ‚ฟใฎไป–ใฎใƒŽใƒผใƒ‰ใจใฎ้€šไฟก</title>
+    <para>
+     <!--
+     Watchdog uses TCP/IP sockets for all the communication with other nodes.
+     Each watchdog node can have two sockets opened with each node. One is the
+     outgoing (client) socket which this node creates and initiate the
+     connection to the remote node and the second socket is the one which
+     is listening socket for inbound connection initiated by remote
+     watchdog node. As soon as the socket connection to remote node succeeds
+     watchdog sends the ADD NODE (<literal>WD_ADD_NODE_MESSAGE</literal>)
+     message on that socket. And upon receiving the ADD NODE message the
+     watchdog node verifies the node information encapsulated in the message
+     with the Pgpool-II configurations for that node, and if the node passes
+     the verification test it is added to the cluster otherwise the connection
+     is dropped.
+     -->
+     watchdogใฏใปใ‹ใฎใ™ในใฆใฎใƒŽใƒผใƒ‰ใจใฎ้€šไฟกใซTCP/IPใ‚ฝใ‚ฑใƒƒใƒˆใ‚’ไฝฟใฃใฆใ„ใพใ™ใ€‚
+     ๅ„ใ€…ใฎwatchdogใƒŽใƒผใƒ‰ใฏใใ‚Œใžใ‚ŒใฎใƒŽใƒผใƒ‰ใซ2ใคใฎใ‚ฝใ‚ฑใƒƒใƒˆใ‚’้–‹ใใ“ใจใŒใงใใพใ™ใ€‚
+     ใฒใจใคใฏใ“ใฎใƒŽใƒผใƒ‰ใŒไฝœใฃใŸๅ‡บใฆ่กŒใ๏ผˆใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ๏ผ‰ใ‚ฝใ‚ฑใƒƒใƒˆใงใ€ไป–ใฎใƒŽใƒผใƒ‰ใจใฎ้€šไฟกใ‚’้–‹ๅง‹ใ—ใพใ™ใ€‚
+     2ใค็›ฎใฏใ€ใƒชใƒขใƒผใƒˆwatchdogใƒŽใƒผใƒ‰ใŒ้–‹ใ„ใŸ้€šไฟกใ‹ใ‚‰ๅ…ฅใฃใฆใใ‚‹ใฎใ‚’ๅพ…ใกๅ—ใ‘ใ‚‹ใ‚ฝใ‚ฑใƒƒใƒˆใงใ™ใ€‚
+     ใƒชใƒขใƒผใƒˆใƒŽใƒผใƒ‰ใจใฎใ‚ฝใ‚ฑใƒƒใƒˆๆŽฅ็ถšใŒๆˆๅŠŸใ™ใ‚‹ใจใ€็›ดใกใซwatchdogใฏADD NODE (<literal>WD_ADD_NODE_MESSAGE</literal>)ใƒกใƒƒใ‚ปใƒผใ‚ธใ‚’ใใฎใ‚ฝใ‚ฑใƒƒใƒˆใซ้€ใ‚Šใพใ™ใ€‚
+     ADD NODEใƒกใƒƒใ‚ปใƒผใ‚ธใ‚’ๅ—ไฟกใ—ใŸwatchdogใƒŽใƒผใƒ‰ใฏใ€ใƒกใƒƒใ‚ปใƒผใ‚ธใซใ‚ซใƒ—ใ‚ปใƒซๅŒ–ใ•ใ‚ŒใŸใƒŽใƒผใƒ‰ๆƒ…ๅ ฑใ‚’ใใฎใƒŽใƒผใƒ‰ใฎPgpool-II่จญๅฎšใจ็…งๅˆใ—ใ€็…งๅˆใƒ†ใ‚นใƒˆใŒๆˆๅŠŸใ™ใ‚ŒใฐใƒŽใƒผใƒ‰ใ‚’ใ‚ฏใƒฉใ‚นใ‚ฟใซ่ฟฝๅŠ ใ—ใพใ™ใ€‚
+     ็…งๅˆใƒ†ใ‚นใƒˆใŒๅคฑๆ•—ใ™ใ‚‹ใจใ€ๆŽฅ็ถšใฏๅˆ‡ๆ–ญใ•ใ‚Œใพใ™ใ€‚
+    </para>
+   </sect3>
+
+   <sect3 id="tutorial-advanced-arch-wd-ipc-data">
+    <!--
+    <title>IPC and data format</title>
+    -->
+    <title>IPCใจใƒ‡ใƒผใ‚ฟใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆ</title>
     <para>
-<!--
-      Watchdog is a sub process of <productname>Pgpool-II</productname>,
-      which adds the high availability and resolves the single point of
-      failure by coordinating multiple <productname>Pgpool-II</productname>.
-      The watchdog process automatically starts (if enabled) when the
-      <productname>Pgpool-II</productname> starts up and consists of two
-      main components, Watchdog core and the lifecheck system.
--->
-watchdogใฏ<productname>Pgpool-II</productname>ใฎไธ‹ไฝใƒ—ใƒญใ‚ปใ‚นใงใ€่ค‡ๆ•ฐใฎ<productname>Pgpool-II</productname>ใ‚’่ชฟๆ•ดใ—ใฆใ€้ซ˜ๅฏ็”จๆ€งใ‚’่ฟฝๅŠ ใ—ใ€ๅ˜ไธ€้šœๅฎณ็‚นใ‚’้™คใใพใ™ใ€‚
-๏ผˆใ‚‚ใ—ๆœ‰ๅŠนใชใ‚‰๏ผ‰watchdogใƒ—ใƒญใ‚ปใ‚นใฏ<productname>Pgpool-II</productname>ใŒ่ตทๅ‹•ใ—ใŸ้š›ใซ่‡ชๅ‹•็š„ใซ่ตทๅ‹•ใ•ใ‚Œใพใ™ใ€‚
-watchdogใฏใ€ใ‚ณใ‚ขใ‚ทใ‚นใƒ†ใƒ ใจๆญปๆดป็›ฃ่ฆ–ใ‚ทใ‚นใƒ†ใƒ ใฎ2ใคใฎไธปใชใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใ‹ใ‚‰ๆง‹ๆˆใ•ใ‚Œใพใ™ใ€‚
+     <!--
+     Watchdog process exposes a <acronym>UNIX</acronym> domain socket
+     for IPC communications, which accepts and provides the data in
+     <acronym>JSON</acronym> format. All the internal <productname>Pgpool-II
+    </productname> processes, including <productname>Pgpool-II's</productname>
+     built-in lifecheck and <productname>Pgpool-II</productname> main process
+     uses this IPC socket interface to interact with the watchdog.
+     This IPC socket can also be used by any external/3rd party system
+     to interact with watchdog.
+     -->
+     watchdogใƒ—ใƒญใ‚ปใ‚นใฏIPC้€šไฟกใฎใŸใ‚ใซ<acronym>UNIX</acronym>ใƒ‰ใƒกใ‚คใƒณใ‚ฝใ‚ฑใƒƒใƒˆใ‚’ๅ…ฌ้–‹ใ—ใ€<acronym>JSON</acronym>ๅฝขๅผใฎใƒ‡ใƒผใ‚ฟใ‚’ๅ—ไป˜ใ€ใพใŸๆไพ›ใ—ใพใ™ใ€‚
+     <productname>Pgpool-II</productname>ใฎ็ต„ใฟ่พผใฟๆญปๆดป็›ฃ่ฆ–ใจใƒกใ‚คใƒณใƒ—ใƒญใ‚ปใ‚นใ‚‚ๅซใ‚ใฆใ€ใ™ในใฆใฎ<productname>Pgpool-II</productname>ใฎๅ†…้ƒจใƒ—ใƒญใ‚ปใ‚นใฏใ€ใ“ใฎIPCใ‚ฝใ‚ฑใƒƒใƒˆใ‚’ไฝฟใฃใฆwatchdogใจ้€šไฟกใ—ใพใ™ใ€‚
+     IPCใ‚ฝใ‚ฑใƒƒใƒˆใฏใ€watchdogใจ้€šไฟกใ™ใ‚‹ๅค–้ƒจ/ใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃใ‚ทใ‚นใƒ†ใƒ ใ‚‚ๅˆฉ็”จใ™ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚
     </para>
+    <para>
+     <!--
+     See <xref linkend="tutorial-watchdog-integrating-external-lifecheck"> for details
+     on how to use watchdog IPC interface for integrating external/3rd party systems.
+     -->
+     ๅค–้ƒจ/ใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃใ‚ทใ‚นใƒ†ใƒ ใจ็ตฑๅˆใ™ใ‚‹ใŸใ‚ใฎใ€watchdog IPCใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใ‚คใ‚นใฎไฝฟใ„ๆ–นใฎ่ฉณ็ดฐใฏ<xref linkend="tutorial-watchdog-integrating-external-lifecheck">ใ‚’ใ”่ฆงใใ ใ•ใ„ใ€‚
+    </para>
+   </sect3>
+  </sect2>
+
+  <sect2 id="tutorial-advanced-arch-wd-lifecheck">
+   <!--
+   <title>Watchdog Lifecheck</title>
+   -->
+   <title>WatchdogใซใŠใ‘ใ‚‹ๆญปๆดป็›ฃ่ฆ–</title>
+   <para>
+    <!--
+    Watchdog lifecheck is the sub-component of watchdog that monitors the health
+    of <productname>Pgpool-II</productname> nodes participating in the watchdog
+    cluster. <productname>Pgpool-II</productname> watchdog provides three built-in
+    methods of remote node health checking, "heartbeat", "query" and "external" mode.
+    -->
+    WatchdogใซใŠใ‘ใ‚‹ๆญปๆดป็›ฃ่ฆ–ใฏใ€watchdogใ‚ฏใƒฉใ‚นใ‚ฟใซๅ‚ๅŠ ใ—ใฆใ„ใ‚‹<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใฎๅฅๅ…จๆ€งใ‚’็›ฃ่ฆ–ใ™ใ‚‹watchdogใฎไธ‹ไฝใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใงใ™ใ€‚
+    <productname>Pgpool-II</productname> watchdogใฏใ€ใƒชใƒขใƒผใƒˆใƒŽใƒผใƒ‰ใฎๅฅๅ…จๆ€งใ‚’ใƒใ‚งใƒƒใ‚ฏใ™ใ‚‹3ใคใฎๆ–นๆณ•ใ€"heartbeat"ใจ"query"ใจexternal"ใƒขใƒผใƒ‰ใ‚’ๆไพ›ใ—ใพใ™ใ€‚
+   </para>
+   <para>
+    <!--
+    In "heartbeat" mode, The lifecheck process sends and receives the data over
+    <acronym>UDP</acronym> socket to check the availability of remote nodes and
+    for each node the parent lifecheck process spawns two child process one for
+    sending the heartbeat signal and another for receiving the heartbeat.
+    While in "query" mode, The lifecheck process uses the PostgreSQL libpq
+    interface for querying the remote <productname>Pgpool-II</productname>.
+    And in this mode the lifecheck process creates a new thread for each health
+    check query which gets destroyed as soon as the query finishes.
+    While in "external" mode, this mode disables the built in lifecheck of
+    <productname>Pgpool-II</productname>, and expects that the external system will monitor local and remote node instead.
+    -->
+    "heartbeat"ใƒขใƒผใƒ‰ใงใฏใ€ๆญปๆดป็›ฃ่ฆ–ใƒ—ใƒญใ‚ปใ‚นใฏ<acronym>UDP</acronym>ใ‚’ไฝฟใฃใฆใƒชใƒขใƒผใƒˆใƒŽใƒผใƒ‰ใซใ‚ขใ‚ฏใ‚ปใ‚นใงใใ‚‹ใ‹ใฉใ†ใ‹็ขบ่ชใ—ใพใ™ใ€‚
+    ๅ„ใƒŽใƒผใƒ‰ๆฏŽใซๆญปๆดป็›ฃ่ฆ–ใฎ่ฆชใƒ—ใƒญใ‚ปใ‚นใฏ2ใคใฎๅญใƒ—ใƒญใ‚ปใ‚นใ‚’่ตทๅ‹•ใ—ใพใ™ใ€‚
+    ใฒใจใคใฏใƒใƒผใƒˆใƒ“ใƒผใƒˆไฟกๅทใฎ้€ไฟกใฎใŸใ‚ใ€ใ‚‚ใ†ใฒใจใคใฏใƒใƒผใƒˆใƒ“ใƒผใƒˆใฎๅ—ไฟกใฎใŸใ‚ใงใ™ใ€‚
+    "query"ใƒขใƒผใƒ‰ใงใฏใ€ๆญปๆดป็›ฃ่ฆ–ใƒ—ใƒญใ‚ปใ‚นใฏPostgreSQLใฎlibpqใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใ‚คใ‚นใ‚’ไฝฟใฃใฆใƒชใƒขใƒผใƒˆใฎ<productname>Pgpool-II</productname>ใซๅ•ใ„ๅˆใ‚ใ›ใ‚’้€ใ‚Šใพใ™ใ€‚
+    ใ“ใฎใƒขใƒผใƒ‰ใงใฏใ€ๅ„ๆญปๆดป็›ฃ่ฆ–ใƒ—ใƒญใ‚ปใ‚นใฏใ€ๆญปๆดป็›ฃ่ฆ–ใฎใŸใ‚ใซๆ–ฐใ—ใใ‚นใƒฌใƒƒใƒ‰ใ‚’ไฝœๆˆใ—ใพใ™ใ€‚
+    ใ‚ฏใ‚จใƒชใŒ็ต‚ไบ†ใ™ใ‚‹ใจใ€็›ดใกใซใใฎใ‚นใƒฌใƒƒใƒ‰ใฏ็ ดๆฃ„ใ•ใ‚Œใพใ™ใ€‚
+    "external"ใƒขใƒผใƒ‰ใงใฏใ€<productname>Pgpool-II</productname>ใฎๆญปๆดป็›ฃ่ฆ–ใฏ็„กๅŠนใซใชใ‚Šใ€ไปฃใ‚ใ‚Šใซๅค–้ƒจใ‚ทใ‚นใƒ†ใƒ ใŒใƒญใƒผใ‚ซใƒซใƒŽใƒผใƒ‰ใจใƒชใƒขใƒผใƒˆใƒŽใƒผใƒ‰ใ‚’็›ฃ่ฆ–ใ™ใ‚‹ใ“ใจใ‚’ๆœŸๅพ…ใ—ใพใ™ใ€‚
+   </para>
+   <para>
+    <!--
+    Apart from remote node health checking watchdog lifecheck can also check the
+    health of node it is installed on by monitoring the connection to upstream servers.
+    For monitoring the connectivity to the upstream server <productname>Pgpool-II
+   </productname> lifecheck uses <literal>execv()</literal> function to executes
+    <command>'ping -q -c3 hostname'</command> command.
+    So a new child process gets spawned for executing each ping command.
+    This means for each health check cycle a child process gets created and
+    destroyed for each configured upstream server.
+    For example, if two upstream servers are configured in the lifecheck and it is
+    asked to health check at ten second intervals, then after each ten second
+    lifecheck will spawn two child processes, one for each upstream server,
+    and each process will live until the ping command is finished.
+    -->
+    ใƒชใƒขใƒผใƒˆใƒŽใƒผใƒ‰ใฎๆญปๆดป็›ฃ่ฆ–ไปฅๅค–ใซใ‚‚ใ€watchdogใฎๆญปๆดป็›ฃ่ฆ–ใฏใ€ไธŠไฝใ‚ตใƒผใƒใธใฎๆŽฅ็ถšใ‚’็›ฃ่ฆ–ใ™ใ‚‹ใ“ใจใซใ‚ˆใ‚Šใ€ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ•ใ‚ŒใŸใƒŽใƒผใƒ‰ใฎๅฅๅ…จๆ€งใ‚’ใƒใ‚งใƒƒใ‚ฏใงใใพใ™ใ€‚
+    ไธŠไฝใ‚ตใƒผใƒใธใฎๆŽฅ็ถšใ‚’็›ฃ่ฆ–ใ™ใ‚‹ใŸใ‚ใซใ€<productname>Pgpool-II</productname>ใฎๆญปๆดป็›ฃ่ฆ–ใฏ<literal>execv()</literal>ใ‚’ไฝฟใฃใฆ<command>'ping -q -c3 hostname'</command>ใ‚ณใƒžใƒณใƒ‰ใ‚’ๅฎŸ่กŒใ—ใพใ™ใ€‚
+    ใคใพใ‚Šใ€ๅ„ใ€…ใฎๆญปๆดป็›ฃ่ฆ–ใฎใ‚ตใ‚คใ‚ฏใƒซใ”ใจใซใ€ใใ‚Œใžใ‚ŒใฎไธŠไฝใ‚ตใƒผใƒใฎใŸใ‚ใซๅญใƒ—ใƒญใ‚ปใ‚นใŒไฝœใ‚‰ใ‚Œใ€็ ดๆฃ„ใ•ใ‚Œใพใ™ใ€‚
+    ใŸใจใˆใฐใ€ๆญปๆดป็›ฃ่ฆ–ใฎ่จญๅฎšใง2ใคใฎไธŠไฝใ‚ตใƒผใƒใŒใ‚ใ‚Šใ€10็ง’ใ”ใจใซๆญปๆดป็›ฃ่ฆ–ใ‚’่กŒใ†ใจใ™ใ‚‹ใจใ€ๆญปๆดป็›ฃ่ฆ–ใฏ10็ง’ใ”ใจใซ2ใคใฎๅญใƒ—ใƒญใ‚ปใ‚นใ‚’่ตทๅ‹•ใ—ใ€ๅ„ไธŠไฝใ‚ตใƒผใƒ็”จใซ1ๅ€‹ใšใคใƒ—ใƒญใ‚ปใ‚นใŒๅ‰ฒใ‚Šๅฝ“ใฆใ‚‰ใ‚Œใพใ™ใ€‚
+    ใใ‚Œใžใ‚Œใฎใƒ—ใƒญใ‚ปใ‚นใฏใ€pingใ‚ณใƒžใƒณใƒ‰ใŒๅฎŒไบ†ใ™ใ‚‹ใพใง็”Ÿๅญ˜ใ—ใพใ™ใ€‚
+   </para>
+  </sect2>
 
-    <sect2 id="tutorial-advanced-arch-wd-core">
-<!--
-      <title>Watchdog Core</title>
--->
-      <title>watchdogใ‚ณใ‚ข</title>
-        <para>
-<!--
-          Watchdog core referred as a "watchdog" is a
-          <productname>Pgpool-II</productname> child process that
-          manages all the watchdog related communications with the
-          <productname>Pgpool-II</productname> nodes present in the
-          cluster and also communicates with the <productname>Pgpool-II</productname>
-          parent and lifecheck processes.
--->
-"watchdog"ใจใ—ใฆๅ‚็…งใ•ใ‚Œใ‚‹watchdogใ‚ณใ‚ขใฏใ€ใ‚ฏใƒฉใ‚นใ‚ฟใซๅญ˜ๅœจใ™ใ‚‹<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใจใฎwatchdog้–ข้€ฃใฎ้€šไฟกใ‚’็ฎก็†ใ—ใพใ™ใ€‚
-ใพใŸใ€<productname>Pgpool-II</productname>่ฆชใƒ—ใƒญใ‚ปใ‚นใจๆญปๆดป็›ฃ่ฆ–ใƒ—ใƒญใ‚ปใ‚นใจใ‚‚้€šไฟกใ—ใพใ™ใ€‚
-        </para>
-        <para>
-<!--
-          The heart of a watchdog process is a state machine that starts
-          from its initial state (<literal>WD_LOADING</literal>) and transit
-          towards either standby (<literal>WD_STANDBY</literal>) or
-          master/coordinator (<literal>WD_COORDINATOR</literal>) state.
-          Both standby and master/coordinator states are stable states of the
-          watchdog state machine and the node stays in standby or
-          master/coordinator state until some problem in local
-          <productname>Pgpool-II</productname> node is detected or a
-          remote <productname>Pgpool-II</productname> disconnects from the cluster.
--->
-watchdogใƒ—ใƒญใ‚ปใ‚นใฎไธญๅฟƒใฏใ‚นใƒ†ใƒผใƒˆใƒžใ‚ทใƒณใงใ€ๅˆๆœŸ็Šถๆ…‹(<literal>WD_LOADING</literal>)ใ‹ใ‚‰ๅ‡บ็™บใ—ใ€ใ‚นใ‚ฟใƒณใƒใ‚ค็Šถๆ…‹(<literal>WD_STANDBY</literal>)ใ‹ใƒžใ‚นใ‚ฟใƒผ/ใ‚ณใƒผใƒ‡ใ‚ฃใƒใƒผใ‚ฟใƒผ็Šถๆ…‹(<literal>WD_COORDINATOR</literal>)ใธใจ้ท็งปใ—ใพใ™ใ€‚
-ใ‚นใ‚ฟใƒณใƒใ‚ค็Šถๆ…‹ใ‚‚ใƒžใ‚นใ‚ฟใƒผ/ใ‚ณใƒผใƒ‡ใ‚ฃใƒใƒผใ‚ฟใƒผ็Šถๆ…‹ใ‚‚ใ€watchdogใ‚นใƒ†ใƒผใƒˆใƒžใ‚ทใƒณใจใ—ใฆใฏๅฎ‰ๅฎš็Šถๆ…‹ใงใ™ใ€‚
-ใƒญใƒผใ‚ซใƒซใฎ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใซๅ•้กŒใŒ่ตทใใ‚‹ใ‹ใ€ใƒชใƒขใƒผใƒˆใฎ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใŒใ‚ฏใƒฉใ‚นใ‚ฟใ‹ใ‚‰ๅˆ‡ใ‚Š้›ขใ•ใ‚Œใ‚‹ใพใงใใฎ็Šถๆ…‹ใ‚’ไฟใกใพใ™ใ€‚
-        </para>
-        <para>
-<!--
-          The watchdog process performs the following tasks:
--->
-watchdogใƒ—ใƒญใ‚ปใ‚นใฏไปฅไธ‹ใฎใ‚ฟใ‚นใ‚ฏใ‚’ๅฎŸ่กŒใ—ใพใ™ใ€‚
-
-        </para>
-          <itemizedlist>
-            <listitem>
-              <para>
-<!--
-                Manages and coordinates the local node watchdog state.
--->
-ใƒญใƒผใ‚ซใƒซใƒŽใƒผใƒ‰ใฎwatchdog็Šถๆ…‹ใฎ็ฎก็†ใจ่ชฟๅœ
-              </para>
-            </listitem>
-
-            <listitem>
-              <para>
-<!--
-                Interacts with built-in or external lifecheck system
-                for the of local and remote <productname>Pgpool-II</productname>
-                node health checking.
--->
-ใƒญใƒผใ‚ซใƒซใ‚ใ‚‹ใ„ใฏใƒชใƒขใƒผใƒˆใฎ<productname>Pgpool-II</productname>ใ‚’ๅฏพ่ฑกใจใ™ใ‚‹็ต„ใฟ่พผใฟใ‚ใ‚‹ใ„ใฏๅค–้ƒจๆญปๆดป็›ฃ่ฆ–ใจใฎ้€šไฟก
-              </para>
-            </listitem>
-
-            <listitem>
-              <para>
-<!--
-                Interacts with <productname>Pgpool-II</productname> main
-                process and provides the mechanism to
-                <productname>Pgpool-II</productname> parent process for
-                executing the cluster commands over the watchdog channel.
--->
-watchdogใƒใƒฃใƒณใƒใƒซใ‚’้€šใ˜ใฆ<productname>Pgpool-II</productname>่ฆชใƒ—ใƒญใ‚ปใ‚นใŒใ‚ฏใƒฉใ‚นใ‚ฟใ‚ณใƒžใƒณใƒ‰ใ‚’ๅฎŸ่กŒใ™ใ‚‹ใŸใ‚ใฎๆฉŸๆง‹ใ‚’ๆไพ›ใ™ใ‚‹ใŸใ‚ใซใ€<productname>Pgpool-II</productname>ใƒกใ‚คใƒณใƒ—ใƒญใ‚ปใ‚นใจ้€šไฟกใ™ใ‚‹
-              </para>
-            </listitem>
-
-            <listitem>
-              <para>
-<!--
-                Communicates with all the participating <productname>Pgpool-II
-                </productname> nodes to coordinate the selection of
-                master/coordinator node and to ensure the quorum in the cluster.
--->
-ๅ‚ๅŠ ใ—ใฆใ„ใ‚‹ใ™ในใฆใฎ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใจ้€šไฟกใ—ใ€ใƒžใ‚นใ‚ฟใƒผ/ใ‚ณใƒผใƒ‡ใ‚ฃใƒใƒผใ‚ฟใƒผใƒŽใƒผใƒ‰ใฎ้ธๆŠžใ‚’่ชฟๅœใ—ใ€ใ‚ฏใƒฉใ‚นใ‚ฟใฎใ‚ฏใ‚ฉใƒผใƒฉใƒ ใ‚’็ขบๅฎŸใซใ™ใ‚‹
-              </para>
-            </listitem>
-
-            <listitem>
-              <para>
-<!--
-                Manages the Virtual-IP on the active/coordinator node and
-                allow the users to provide custom scripts for
-                escalation and de-escalation.
--->
-ใƒžใ‚นใ‚ฟใƒผ/ใ‚ณใƒผใƒ‡ใ‚ฃใƒใƒผใ‚ฟใƒผใƒŽใƒผใƒ‰ไธŠใฎไปฎๆƒณIPใ‚’็ฎก็†ใ—ใ€ใƒฆใƒผใ‚ถใŒๆ˜‡ๆ ผใจ้™ๆ ผ็”จใฎใ‚ซใ‚นใ‚ฟใƒ ใ‚นใ‚ฏใƒชใƒ—ใƒˆใ‚’ๆ›ธใ‘ใ‚‹ใ‚ˆใ†ใซใ™ใ‚‹
-              </para>
-            </listitem>
-
-            <listitem>
-              <para>
-<!--
-                Verifies the consistency of <productname>Pgpool-II</productname>
-                configurations across the participating <productname>Pgpool-II
-                </productname> nodes in the watchdog cluster.
--->
-watchdogใ‚ฏใƒฉใ‚นใ‚ฟไธญใฎ<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใฎ่จญๅฎšใฎไธ€่ฒซๆ€งใ‚’ๆคœ่จผใ™ใ‚‹
-              </para>
-            </listitem>
-
-            <listitem>
-              <para>
-<!--
-                Synchronize the status of all PostgreSQL backends at startup.
--->
-่ตทๅ‹•ๆ™‚ใซใ™ในใฆใฎPostgreSQLใƒใƒƒใ‚ฏใ‚จใƒณใƒ‰ใฎ็Šถๆ…‹ใ‚’ๅŒๆœŸใ™ใ‚‹
-              </para>
-            </listitem>
-
-            <listitem>
-              <para>
-<!--
-                Provides the distributed locking facility to
-                <productname>Pgpool-II</productname> main process
-                for synchronizing the different failover commands.
--->
-่ค‡ๆ•ฐใฎใƒ•ใ‚งใ‚คใƒซใ‚ชใƒผใƒใ‚ณใƒžใƒณใƒ‰ใ‚’็›ดๅˆ—ๅŒ–ใ™ใ‚‹ใŸใ‚ใซ<productname>Pgpool-II</productname>ใƒกใ‚คใƒณใƒ—ใƒญใ‚ปใ‚นใซๅฏพใ—ใฆๅˆ†ๆ•ฃใƒญใƒƒใ‚ฏๆฉŸ่ƒฝใ‚’ๆไพ›ใ™ใ‚‹
-              </para>
-            </listitem>
-
-          </itemizedlist>
-
-      <sect3 id="tutorial-advanced-arch-wd-core-comm">
-<!--
-        <title>Communication with other nodes in the Cluster</title>
--->
-        <title>ใ‚ฏใƒฉใ‚นใ‚ฟใฎไป–ใฎใƒŽใƒผใƒ‰ใจใฎ้€šไฟก</title>
-        <para>
-<!--
-          Watchdog uses TCP/IP sockets for all the communication with other nodes.
-          Each watchdog node can have two sockets opened with each node. One is the
-          outgoing (client) socket which this node creates and initiate the
-          connection to the remote node and the second socket is the one which
-          is listening socket for inbound connection initiated by remote
-          watchdog node. As soon as the socket connection to remote node succeeds
-          watchdog sends the ADD NODE (<literal>WD_ADD_NODE_MESSAGE</literal>)
-          message on that socket. And upon receiving the ADD NODE message the
-          watchdog node verifies the node information encapsulated in the message
-          with the Pgpool-II configurations for that node, and if the node passes
-          the verification test it is added to the cluster otherwise the connection
-          is dropped.
--->
-watchdogใฏใปใ‹ใฎใ™ในใฆใฎใƒŽใƒผใƒ‰ใจใฎ้€šไฟกใซTCP/IPใ‚ฝใ‚ฑใƒƒใƒˆใ‚’ไฝฟใฃใฆใ„ใพใ™ใ€‚
-ๅ„ใ€…ใฎwatchdogใƒŽใƒผใƒ‰ใฏใใ‚Œใžใ‚ŒใฎใƒŽใƒผใƒ‰ใซ2ใคใฎใ‚ฝใ‚ฑใƒƒใƒˆใ‚’้–‹ใใ“ใจใŒใงใใพใ™ใ€‚
-ใฒใจใคใฏใ“ใฎใƒŽใƒผใƒ‰ใŒไฝœใฃใŸๅ‡บใฆ่กŒใ๏ผˆใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ๏ผ‰ใ‚ฝใ‚ฑใƒƒใƒˆใงใ€ไป–ใฎใƒŽใƒผใƒ‰ใจใฎ้€šไฟกใ‚’้–‹ๅง‹ใ—ใพใ™ใ€‚
-2ใค็›ฎใฏใ€ใƒชใƒขใƒผใƒˆwatchdogใƒŽใƒผใƒ‰ใŒ้–‹ใ„ใŸ้€šไฟกใ‹ใ‚‰ๅ…ฅใฃใฆใใ‚‹ใฎใ‚’ๅพ…ใกๅ—ใ‘ใ‚‹ใ‚ฝใ‚ฑใƒƒใƒˆใงใ™ใ€‚
-ใƒชใƒขใƒผใƒˆใƒŽใƒผใƒ‰ใจใฎใ‚ฝใ‚ฑใƒƒใƒˆๆŽฅ็ถšใŒๆˆๅŠŸใ™ใ‚‹ใจใ€็›ดใกใซwatchdogใฏADD NODE (<literal>WD_ADD_NODE_MESSAGE</literal>)ใƒกใƒƒใ‚ปใƒผใ‚ธใ‚’ใใฎใ‚ฝใ‚ฑใƒƒใƒˆใซ้€ใ‚Šใพใ™ใ€‚
-ADD NODEใƒกใƒƒใ‚ปใƒผใ‚ธใ‚’ๅ—ไฟกใ—ใŸwatchdogใƒŽใƒผใƒ‰ใฏใ€ใƒกใƒƒใ‚ปใƒผใ‚ธใซใ‚ซใƒ—ใ‚ปใƒซๅŒ–ใ•ใ‚ŒใŸใƒŽใƒผใƒ‰ๆƒ…ๅ ฑใ‚’ใใฎใƒŽใƒผใƒ‰ใฎPgpool-II่จญๅฎšใจ็…งๅˆใ—ใ€็…งๅˆใƒ†ใ‚นใƒˆใŒๆˆๅŠŸใ™ใ‚ŒใฐใƒŽใƒผใƒ‰ใ‚’ใ‚ฏใƒฉใ‚นใ‚ฟใซ่ฟฝๅŠ ใ—ใพใ™ใ€‚
-็…งๅˆใƒ†ใ‚นใƒˆใŒๅคฑๆ•—ใ™ใ‚‹ใจใ€ๆŽฅ็ถšใฏๅˆ‡ๆ–ญใ•ใ‚Œใพใ™ใ€‚
-        </para>
-      </sect3>
-
-      <sect3 id="tutorial-advanced-arch-wd-ipc-data">
-<!--
-        <title>IPC and data format</title>
--->
-        <title>IPCใจใƒ‡ใƒผใ‚ฟใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆ</title>
-        <para>
-<!--
-          Watchdog process exposes a <acronym>UNIX</acronym> domain socket
-          for IPC communications, which accepts and provides the data in
-          <acronym>JSON</acronym> format. All the internal <productname>Pgpool-II
-          </productname> processes, including <productname>Pgpool-II's</productname>
-          built-in lifecheck and <productname>Pgpool-II</productname> main process
-          uses this IPC socket interface to interact with the watchdog.
-          This IPC socket can also be used by any external/3rd party system
-          to interact with watchdog.
--->
-watchdogใƒ—ใƒญใ‚ปใ‚นใฏIPC้€šไฟกใฎใŸใ‚ใซ<acronym>UNIX</acronym>ใƒ‰ใƒกใ‚คใƒณใ‚ฝใ‚ฑใƒƒใƒˆใ‚’ๅ…ฌ้–‹ใ—ใ€<acronym>JSON</acronym>ๅฝขๅผใฎใƒ‡ใƒผใ‚ฟใ‚’ๅ—ไป˜ใ€ใพใŸๆไพ›ใ—ใพใ™ใ€‚
-<productname>Pgpool-II</productname>ใฎ็ต„ใฟ่พผใฟๆญปๆดป็›ฃ่ฆ–ใจใƒกใ‚คใƒณใƒ—ใƒญใ‚ปใ‚นใ‚‚ๅซใ‚ใฆใ€ใ™ในใฆใฎ<productname>Pgpool-II</productname>ใฎๅ†…้ƒจใƒ—ใƒญใ‚ปใ‚นใฏใ€ใ“ใฎIPCใ‚ฝใ‚ฑใƒƒใƒˆใ‚’ไฝฟใฃใฆwatchdogใจ้€šไฟกใ—ใพใ™ใ€‚
-IPCใ‚ฝใ‚ฑใƒƒใƒˆใฏใ€watchdogใจ้€šไฟกใ™ใ‚‹ๅค–้ƒจ/ใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃใ‚ทใ‚นใƒ†ใƒ ใ‚‚ๅˆฉ็”จใ™ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚
-        </para>
-        <para>
-<!--
-          See <xref linkend="tutorial-watchdog-integrating-external-lifecheck"> for details
-          on how to use watchdog IPC interface for integrating external/3rd party systems.
--->
-ๅค–้ƒจ/ใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃใ‚ทใ‚นใƒ†ใƒ ใจ็ตฑๅˆใ™ใ‚‹ใŸใ‚ใฎใ€watchdog IPCใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใ‚คใ‚นใฎไฝฟใ„ๆ–นใฎ่ฉณ็ดฐใฏ<xref linkend="tutorial-watchdog-integrating-external-lifecheck">ใ‚’ใ”่ฆงใใ ใ•ใ„ใ€‚
-        </para>
-      </sect3>
-    </sect2>
-
-    <sect2 id="tutorial-advanced-arch-wd-lifecheck">
-<!--
-      <title>Watchdog Lifecheck</title>
--->
-      <title>WatchdogใซใŠใ‘ใ‚‹ๆญปๆดป็›ฃ่ฆ–</title>
-      <para>
-<!--
-        Watchdog lifecheck is the sub-component of watchdog that monitors the health
-        of <productname>Pgpool-II</productname> nodes participating in the watchdog
-        cluster. <productname>Pgpool-II</productname> watchdog provides three built-in
-        methods of remote node health checking, "heartbeat", "query" and "external" mode.
--->
-WatchdogใซใŠใ‘ใ‚‹ๆญปๆดป็›ฃ่ฆ–ใฏใ€watchdogใ‚ฏใƒฉใ‚นใ‚ฟใซๅ‚ๅŠ ใ—ใฆใ„ใ‚‹<productname>Pgpool-II</productname>ใƒŽใƒผใƒ‰ใฎๅฅๅ…จๆ€งใ‚’็›ฃ่ฆ–ใ™ใ‚‹watchdogใฎไธ‹ไฝใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใงใ™ใ€‚
-<productname>Pgpool-II</productname> watchdogใฏใ€ใƒชใƒขใƒผใƒˆใƒŽใƒผใƒ‰ใฎๅฅๅ…จๆ€งใ‚’ใƒใ‚งใƒƒใ‚ฏใ™ใ‚‹3ใคใฎๆ–นๆณ•ใ€"heartbeat"ใจ"query"ใจexternal"ใƒขใƒผใƒ‰ใ‚’ๆไพ›ใ—ใพใ™ใ€‚
-      </para>
-      <para>
-<!--
-        In "heartbeat" mode, The lifecheck process sends and receives the data over
-        <acronym>UDP</acronym> socket to check the availability of remote nodes and
-        for each node the parent lifecheck process spawns two child process one for
-        sending the heartbeat signal and another for receiving the heartbeat.
-        While in "query" mode, The lifecheck process uses the PostgreSQL libpq
-        interface for querying the remote <productname>Pgpool-II</productname>.
-        And in this mode the lifecheck process creates a new thread for each health
-        check query which gets destroyed as soon as the query finishes.
-        While in "external" mode, this mode disables the built in lifecheck of
-        <productname>Pgpool-II</productname>, and expects that the external system will monitor local and remote node instead.
--->
-"heartbeat"ใƒขใƒผใƒ‰ใงใฏใ€ๆญปๆดป็›ฃ่ฆ–ใƒ—ใƒญใ‚ปใ‚นใฏ<acronym>UDP</acronym>ใ‚’ไฝฟใฃใฆใƒชใƒขใƒผใƒˆใƒŽใƒผใƒ‰ใซใ‚ขใ‚ฏใ‚ปใ‚นใงใใ‚‹ใ‹ใฉใ†ใ‹็ขบ่ชใ—ใพใ™ใ€‚
-ๅ„ใƒŽใƒผใƒ‰ๆฏŽใซๆญปๆดป็›ฃ่ฆ–ใฎ่ฆชใƒ—ใƒญใ‚ปใ‚นใฏ2ใคใฎๅญใƒ—ใƒญใ‚ปใ‚นใ‚’่ตทๅ‹•ใ—ใพใ™ใ€‚
-ใฒใจใคใฏใƒใƒผใƒˆใƒ“ใƒผใƒˆไฟกๅทใฎ้€ไฟกใฎใŸใ‚ใ€ใ‚‚ใ†ใฒใจใคใฏใƒใƒผใƒˆใƒ“ใƒผใƒˆใฎๅ—ไฟกใฎใŸใ‚ใงใ™ใ€‚
-"query"ใƒขใƒผใƒ‰ใงใฏใ€ๆญปๆดป็›ฃ่ฆ–ใƒ—ใƒญใ‚ปใ‚นใฏPostgreSQLใฎlibpqใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใ‚คใ‚นใ‚’ไฝฟใฃใฆใƒชใƒขใƒผใƒˆใฎ<productname>Pgpool-II</productname>ใซๅ•ใ„ๅˆใ‚ใ›ใ‚’้€ใ‚Šใพใ™ใ€‚
-ใ“ใฎใƒขใƒผใƒ‰ใงใฏใ€ๅ„ๆญปๆดป็›ฃ่ฆ–ใƒ—ใƒญใ‚ปใ‚นใฏใ€ๆญปๆดป็›ฃ่ฆ–ใฎใŸใ‚ใซๆ–ฐใ—ใใ‚นใƒฌใƒƒใƒ‰ใ‚’ไฝœๆˆใ—ใพใ™ใ€‚
-ใ‚ฏใ‚จใƒชใŒ็ต‚ไบ†ใ™ใ‚‹ใจใ€็›ดใกใซใใฎใ‚นใƒฌใƒƒใƒ‰ใฏ็ ดๆฃ„ใ•ใ‚Œใพใ™ใ€‚
-"external"ใƒขใƒผใƒ‰ใงใฏใ€<productname>Pgpool-II</productname>ใฎๆญปๆดป็›ฃ่ฆ–ใฏ็„กๅŠนใซใชใ‚Šใ€ไปฃใ‚ใ‚Šใซๅค–้ƒจใ‚ทใ‚นใƒ†ใƒ ใŒใƒญใƒผใ‚ซใƒซใƒŽใƒผใƒ‰ใจใƒชใƒขใƒผใƒˆใƒŽใƒผใƒ‰ใ‚’็›ฃ่ฆ–ใ™ใ‚‹ใ“ใจใ‚’ๆœŸๅพ…ใ—ใพใ™ใ€‚
-      </para>
-      <para>
-<!--
-        Apart from remote node health checking watchdog lifecheck can also check the
-        health of node it is installed on by monitoring the connection to upstream servers.
-        For monitoring the connectivity to the upstream server <productname>Pgpool-II
-        </productname> lifecheck uses <literal>execv()</literal> function to executes
-        <command>'ping -q -c3 hostname'</command> command.
-        So a new child process gets spawned for executing each ping command.
-        This means for each health check cycle a child process gets created and
-        destroyed for each configured upstream server.
-        For example, if two upstream servers are configured in the lifecheck and it is
-        asked to health check at ten second intervals, then after each ten second
-        lifecheck will spawn two child processes, one for each upstream server,
-        and each process will live until the ping command is finished.
--->
-ใƒชใƒขใƒผใƒˆใƒŽใƒผใƒ‰ใฎๆญปๆดป็›ฃ่ฆ–ไปฅๅค–ใซใ‚‚ใ€watchdogใฎๆญปๆดป็›ฃ่ฆ–ใฏใ€ไธŠไฝใ‚ตใƒผใƒใธใฎๆŽฅ็ถšใ‚’็›ฃ่ฆ–ใ™ใ‚‹ใ“ใจใซใ‚ˆใ‚Šใ€ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ•ใ‚ŒใŸใƒŽใƒผใƒ‰ใฎๅฅๅ…จๆ€งใ‚’ใƒใ‚งใƒƒใ‚ฏใงใใพใ™ใ€‚
-ไธŠไฝใ‚ตใƒผใƒใธใฎๆŽฅ็ถšใ‚’็›ฃ่ฆ–ใ™ใ‚‹ใŸใ‚ใซใ€<productname>Pgpool-II</productname>ใฎๆญปๆดป็›ฃ่ฆ–ใฏ<literal>execv()</literal>ใ‚’ไฝฟใฃใฆ<command>'ping -q -c3 hostname'</command>ใ‚ณใƒžใƒณใƒ‰ใ‚’ๅฎŸ่กŒใ—ใพใ™ใ€‚
-ใคใพใ‚Šใ€ๅ„ใ€…ใฎๆญปๆดป็›ฃ่ฆ–ใฎใ‚ตใ‚คใ‚ฏใƒซใ”ใจใซใ€ใใ‚Œใžใ‚ŒใฎไธŠไฝใ‚ตใƒผใƒใฎใŸใ‚ใซๅญใƒ—ใƒญใ‚ปใ‚นใŒไฝœใ‚‰ใ‚Œใ€็ ดๆฃ„ใ•ใ‚Œใพใ™ใ€‚
-ใŸใจใˆใฐใ€ๆญปๆดป็›ฃ่ฆ–ใฎ่จญๅฎšใง2ใคใฎไธŠไฝใ‚ตใƒผใƒใŒใ‚ใ‚Šใ€10็ง’ใ”ใจใซๆญปๆดป็›ฃ่ฆ–ใ‚’่กŒใ†ใจใ™ใ‚‹ใจใ€ๆญปๆดป็›ฃ่ฆ–ใฏ10็ง’ใ”ใจใซ2ใคใฎๅญใƒ—ใƒญใ‚ปใ‚นใ‚’่ตทๅ‹•ใ—ใ€ๅ„ไธŠไฝใ‚ตใƒผใƒ็”จใซ1ๅ€‹ใšใคใƒ—ใƒญใ‚ปใ‚นใŒๅ‰ฒใ‚Šๅฝ“ใฆใ‚‰ใ‚Œใพใ™ใ€‚
-ใใ‚Œใžใ‚Œใฎใƒ—ใƒญใ‚ปใ‚นใฏใ€pingใ‚ณใƒžใƒณใƒ‰ใŒๅฎŒไบ†ใ™ใ‚‹ใพใง็”Ÿๅญ˜ใ—ใพใ™ใ€‚
-      </para>
-    </sect2>
-
-  </sect1>
+ </sect1>
 
 </chapter>
index 199774d5542e570011b360fd3e15938e82cc5636..257b1b8eb40df0b83709ec569c13c4fd2633a5a3 100644 (file)
@@ -1,23 +1,30 @@
 <!-- doc/src/sgml/advanced.sgml -->
 
 <chapter id="tutorial-watchdog">
 <title>Watchdog</title>
+ <title>Watchdog</title>
 
 <sect1 id="tutorial-watchdog-intro">
-    <title>Introduction</title>
+ <sect1 id="tutorial-watchdog-intro">
+  <title>Introduction</title>
 
   <para>
-    <firstterm>Watchdog</firstterm> is a sub process of <productname>Pgpool-II</productname>
-    to add high availability. Watchdog is used to resolve the single
-    point of failure by coordinating multiple <productname>pgpool-II</productname>
-    nodes. The watchdog was first introduced in <productname>pgpool-II</productname>
-    <emphasis>V3.2</emphasis> and is significantly enhanced in
-    <productname>pgpool-II</productname> <emphasis>V3.5</emphasis>, to ensure the presence of a
-    quorum at all time. This new addition to watchdog makes it more fault tolerant
-    and robust in handling and guarding against the split-brain syndrome
-    and network partitioning. However to ensure the quorum mechanism properly
-    works, the number of pgpool-II nodes must be odd in number and greater than or
-    equal to 3.
+   <firstterm>Watchdog</firstterm> is a sub process of
+   <productname>Pgpool-II</productname> to add high
+   availability. Watchdog is used to resolve the single point of
+   failure by coordinating multiple
+   <productname>pgpool-II</productname> nodes. The watchdog was first
+   introduced in <productname>pgpool-II</productname>
+   <emphasis>V3.2</emphasis> and is significantly enhanced in
+   <productname>pgpool-II</productname> <emphasis>V3.5</emphasis>, to
+   ensure the presence of a quorum at all time. This new addition to
+   watchdog makes it more fault tolerant and robust in handling and
+   guarding against the split-brain syndrome and network
+   partitioning. In addition, <emphasis>V3.7</emphasis> introduced
+   quorum failover (see <xref
+   linkend="config-watchdog-failover-behavior">) to reduce the false
+   positives of <productname>PostgreSQL</productname> server
+   failures. To ensure the quorum mechanism properly works, the number
+   of <productname>pgpool-II</productname> nodes must be odd in number
+   and greater than or equal to 3.
   </para>
 
   <sect2 id="tutorial-watchdog-coordinating-nodes">
    <indexterm zone="tutorial-watchdog-coordinating-nodes">
     <primary>WATCHDOG</primary>
    </indexterm>
-    <para>
-      Watchdog coordinates multiple <productname>Pgpool-II</productname> nodes
-      by exchanging information with each other.
-    </para>
-    <para>
-      At the startup, if the watchdog is enabled, <productname>Pgpool-II</productname> node
-      sync the status of all configured backend nodes from the master watchdog node.
-      And if the node goes on to become a master node itself it initializes the backend
-      status locally. When a backend node status changes by failover etc..,
-      watchdog notifies the information to other <productname>Pgpool-II</productname>
-      nodes and synchronizes them. When online recovery occurs, watchdog restricts
-      client connections to other <productname>Pgpool-II</productname>
-      nodes for avoiding inconsistency between backends.
-    </para>
-
-    <para>
-      Watchdog also coordinates with all connected <productname>Pgpool-II</productname> nodes to ensure
-      that failback, failover and follow_master commands must be executed only on one <productname>pgpool-II</productname> node.
-    </para>
+   <para>
+    Watchdog coordinates multiple <productname>Pgpool-II</productname> nodes
+    by exchanging information with each other.
+   </para>
+   <para>
+    At the startup, if the watchdog is enabled, <productname>Pgpool-II</productname> node
+    sync the status of all configured backend nodes from the master watchdog node.
+    And if the node goes on to become a master node itself it initializes the backend
+    status locally. When a backend node status changes by failover etc..,
+    watchdog notifies the information to other <productname>Pgpool-II</productname>
+    nodes and synchronizes them. When online recovery occurs, watchdog restricts
+    client connections to other <productname>Pgpool-II</productname>
+    nodes for avoiding inconsistency between backends.
+   </para>
+
+   <para>
+    Watchdog also coordinates with all connected <productname>Pgpool-II</productname> nodes to ensure
+    that failback, failover and follow_master commands must be executed only on one <productname>pgpool-II</productname> node.
+   </para>
 
   </sect2>
 
    <indexterm zone="tutorial-watchdog-lifechecking">
     <primary>WATCHDOG</primary>
    </indexterm>
-    <para>
-      Watchdog lifecheck is the sub-component of watchdog to monitor
-      the health of <productname>Pgpool-II</productname> nodes participating
-      in the watchdog cluster to provide the high availability.
-      Traditionally <productname>Pgpool-II</productname> watchdog provides
-      two methods of remote node health checking. <literal>"heartbeat"</literal>
-      and <literal>"query"</literal> mode.
-      The watchdog in <productname>Pgpool-II</productname> <emphasis>V3.5</emphasis>
-      adds a new <literal>"external"</literal> to <xref linkend="guc-wd-lifecheck-method">,
-      which enables to hook an external third party health checking
-      system with <productname>Pgpool-II</productname> watchdog.
-    </para>
-    <para>
-      Apart from remote node health checking watchdog lifecheck can also check
-      the health of node it is installed on by monitoring the connection to upstream servers.
-      If the monitoring fails, watchdog treats it as the local <productname>Pgpool-II</productname>
-      node failure.
-    </para>
-
-    <para>
-      In <literal>heartbeat</literal> mode, watchdog monitors other <productname>Pgpool-II</productname>
-      processes by using <literal>heartbeat</literal> signal.
-      Watchdog receives heartbeat signals sent by other <productname>Pgpool-II</productname>
-      periodically. If there is no signal for a certain period,
-      watchdog regards this as the failure of the <productname>Pgpool-II</productname>.
-      For redundancy you can use multiple network connections for heartbeat
-      exchange between <productname>Pgpool-II</productname> nodes.
-      This is the default and recommended mode to be used for health checking.
-    </para>
-
-    <para>
-      In <literal>query</literal> mode, watchdog monitors <productname>Pgpool-II</productname>
-      service rather than process. In this mode watchdog sends queries to other
-      <productname>Pgpool-II</productname> and checks the response.
-       <note>
-       <para>
-         Note that this method requires connections from other <productname>Pgpool-II</productname>,
-         so it would fail monitoring if the <xref linkend="guc-num-init-children"> parameter isn't large enough.
-         This mode is deprecated and left for backward compatibility.
-       </para>
-       </note>
-      </para>
-
-      <para>
-       <literal>external</literal> mode is introduced by <productname>Pgpool-II</productname>
-       <emphasis>V3.5</emphasis>. This mode basically disables the built in lifecheck
-       of <productname>Pgpool-II</productname> watchdog and expects that the external system
-       will inform the watchdog about health of local and all remote nodes participating in the watchdog cluster.
-      </para>
+   <para>
+    Watchdog lifecheck is the sub-component of watchdog to monitor
+    the health of <productname>Pgpool-II</productname> nodes participating
+    in the watchdog cluster to provide the high availability.
+    Traditionally <productname>Pgpool-II</productname> watchdog provides
+    two methods of remote node health checking. <literal>"heartbeat"</literal>
+    and <literal>"query"</literal> mode.
+    The watchdog in <productname>Pgpool-II</productname> <emphasis>V3.5</emphasis>
+    adds a new <literal>"external"</literal> to <xref linkend="guc-wd-lifecheck-method">,
+     which enables to hook an external third party health checking
+     system with <productname>Pgpool-II</productname> watchdog.
+   </para>
+   <para>
+    Apart from remote node health checking watchdog lifecheck can also check
+    the health of node it is installed on by monitoring the connection to upstream servers.
+    If the monitoring fails, watchdog treats it as the local <productname>Pgpool-II</productname>
+    node failure.
+   </para>
+
+   <para>
+    In <literal>heartbeat</literal> mode, watchdog monitors other <productname>Pgpool-II</productname>
+    processes by using <literal>heartbeat</literal> signal.
+    Watchdog receives heartbeat signals sent by other <productname>Pgpool-II</productname>
+    periodically. If there is no signal for a certain period,
+    watchdog regards this as the failure of the <productname>Pgpool-II</productname>.
+    For redundancy you can use multiple network connections for heartbeat
+    exchange between <productname>Pgpool-II</productname> nodes.
+    This is the default and recommended mode to be used for health checking.
+   </para>
+
+   <para>
+    In <literal>query</literal> mode, watchdog monitors <productname>Pgpool-II</productname>
+    service rather than process. In this mode watchdog sends queries to other
+    <productname>Pgpool-II</productname> and checks the response.
+    <note>
+     <para>
+      Note that this method requires connections from other <productname>Pgpool-II</productname>,
+      so it would fail monitoring if the <xref linkend="guc-num-init-children"> parameter isn't large enough.
+       This mode is deprecated and left for backward compatibility.
+     </para>
+    </note>
+   </para>
+
+   <para>
+    <literal>external</literal> mode is introduced by <productname>Pgpool-II</productname>
+    <emphasis>V3.5</emphasis>. This mode basically disables the built in lifecheck
+    of <productname>Pgpool-II</productname> watchdog and expects that the external system
+    will inform the watchdog about health of local and all remote nodes participating in the watchdog cluster.
+   </para>
 
   </sect2>
 
    <indexterm zone="tutorial-watchdog-consistency-of-config">
     <primary>WATCHDOG</primary>
    </indexterm>
-    <para>
-      At startup watchdog verifies the <productname>Pgpool-II</productname>
-      configuration of the local node for      the consistency with the configurations
-      on the master watchdog node and warns the user of any differences.
-      This eliminates the likelihood of undesired behavior that can happen
-      because of different configuration on different <productname>Pgpool-II</productname> nodes.
-    </para>
+   <para>
+    At startup watchdog verifies the <productname>Pgpool-II</productname>
+    configuration of the local node for        the consistency with the configurations
+    on the master watchdog node and warns the user of any differences.
+    This eliminates the likelihood of undesired behavior that can happen
+    because of different configuration on different <productname>Pgpool-II</productname> nodes.
+   </para>
   </sect2>
 
   <sect2 id="tutorial-watchdog-changing-active">
    <indexterm zone="tutorial-watchdog-changing-active">
     <primary>WATCHDOG</primary>
    </indexterm>
-    <para>
-      When a fault of <productname>Pgpool-II</productname> is detected,
-      watchdog notifies the other watchdogs of it.
-      If this is the active <productname>Pgpool-II</productname>,
-      watchdogs decide the new active <productname>Pgpool-II</productname>
-      by voting and change active/standby state.
-    </para>
+   <para>
+    When a fault of <productname>Pgpool-II</productname> is detected,
+    watchdog notifies the other watchdogs of it.
+    If this is the active <productname>Pgpool-II</productname>,
+    watchdogs decide the new active <productname>Pgpool-II</productname>
+    by voting and change active/standby state.
+   </para>
   </sect2>
 
   <sect2 id="tutorial-watchdog-automatic-vip">
    <indexterm zone="tutorial-watchdog-automatic-vip">
     <primary>WATCHDOG</primary>
    </indexterm>
-    <para>
-      When a standby <productname>Pgpool-II</productname> server promotes to active,
-      the new active server brings up virtual IP interface. Meanwhile, the previous
-      active server brings down the virtual IP interface. This enables the active
-      <productname>Pgpool-II</productname> to work using the same
-      IP address even when servers are switched.
-    </para>
+   <para>
+    When a standby <productname>Pgpool-II</productname> server promotes to active,
+    the new active server brings up virtual IP interface. Meanwhile, the previous
+    active server brings down the virtual IP interface. This enables the active
+    <productname>Pgpool-II</productname> to work using the same
+    IP address even when servers are switched.
+   </para>
   </sect2>
 
   <sect2 id="tutorial-watchdog-changing-automatic-register-in-recovery">
    <indexterm zone="tutorial-watchdog-changing-automatic-register-in-recovery">
     <primary>WATCHDOG</primary>
    </indexterm>
-    <para>
-      When the broken server recovers or new server is attached, the watchdog process
-      notifies this to the other watchdogs in the cluster along with the information of the new server,
-      and the watchdog process receives information on the active server and
-      other servers. Then, the attached server is registered as a standby.
-    </para>
+   <para>
+    When the broken server recovers or new server is attached, the watchdog process
+    notifies this to the other watchdogs in the cluster along with the information of the new server,
+    and the watchdog process receives information on the active server and
+    other servers. Then, the attached server is registered as a standby.
+   </para>
   </sect2>
 
   <sect2 id="tutorial-watchdog-start-stop">
    <indexterm zone="tutorial-watchdog-start-stop">
     <primary>WATCHDOG</primary>
    </indexterm>
-    <para>
-      The watchdog process starts and stops automatically as sub-processes
-      of the <productname>Pgpool-II</productname>, therefore there is no
-      dedicated command to start and stop watchdog.
-    </para>
-    <para>
-      Watchdog controls the virtual IP interface, the commands executed by
-      the watchdog for bringing up and bringing down the VIP require the
-      root privileges. <productname>Pgpool-II</productname> requires the
-      user running <productname>Pgpool-II</productname> to have root
-      privileges when the watchdog is enabled along with virtual IP.
-      This is however not good security practice to run the
-      <productname>Pgpool-II</productname> as root user, the alternative
-      and preferred way is to run the <productname>Pgpool-II</productname>
-      as normal user and use either the custom commands for
-      <xref linkend="guc-if-up-cmd">, <xref linkend="guc-if-down-cmd">,
+   <para>
+    The watchdog process starts and stops automatically as sub-processes
+    of the <productname>Pgpool-II</productname>, therefore there is no
+    dedicated command to start and stop watchdog.
+   </para>
+   <para>
+    Watchdog controls the virtual IP interface, the commands executed by
+    the watchdog for bringing up and bringing down the VIP require the
+    root privileges. <productname>Pgpool-II</productname> requires the
+    user running <productname>Pgpool-II</productname> to have root
+    privileges when the watchdog is enabled along with virtual IP.
+    This is however not good security practice to run the
+    <productname>Pgpool-II</productname> as root user, the alternative
+    and preferred way is to run the <productname>Pgpool-II</productname>
+    as normal user and use either the custom commands for
+    <xref linkend="guc-if-up-cmd">, <xref linkend="guc-if-down-cmd">,
       and <xref linkend="guc-arping-cmd"> using <command>sudo</command>
-      or use <command>setuid</command> ("set user ID upon execution")
-      on <literal>if_*</literal> commands
-    </para>
-    <para>
-      Lifecheck process is a sub-component of watchdog, its job is to monitor the
-      health of <productname>Pgpool-II</productname> nodes participating in
-      the watchdog cluster. The Lifecheck process is started automatically
-      when the watchdog is configured to use the built-in life-checking,
-      it starts after the watchdog main process initialization is complete.
-      However lifecheck process only kicks in when all configured watchdog
-      nodes join the cluster and becomes active. If some remote node fails
-      before the Lifecheck become active that failure will not get caught by the lifecheck.
-    </para>
+       or use <command>setuid</command> ("set user ID upon execution")
+       on <literal>if_*</literal> commands
+   </para>
+   <para>
+    Lifecheck process is a sub-component of watchdog, its job is to monitor the
+    health of <productname>Pgpool-II</productname> nodes participating in
+    the watchdog cluster. The Lifecheck process is started automatically
+    when the watchdog is configured to use the built-in life-checking,
+    it starts after the watchdog main process initialization is complete.
+    However lifecheck process only kicks in when all configured watchdog
+    nodes join the cluster and becomes active. If some remote node fails
+    before the Lifecheck become active that failure will not get caught by the lifecheck.
+   </para>
   </sect2>
 </sect1>
+ </sect1>
 
 <sect1 id="tutorial-watchdog-integrating-external-lifecheck">
-    <title>Integrating external lifecheck with watchdog</title>
+ <sect1 id="tutorial-watchdog-integrating-external-lifecheck">
+  <title>Integrating external lifecheck with watchdog</title>
 
-    <para>
-      <productname>Pgpool-II</productname> watchdog process uses the
-      <acronym>BSD</acronym> sockets for communicating with
-      all the <productname>Pgpool-II</productname> processes and the
-      same <acronym>BSD</acronym> socket can also be used by any third
-      party system to provide the lifecheck function for local and remote
-      <productname>Pgpool-II</productname> watchdog nodes.
-      The <acronym>BSD</acronym> socket file name for IPC is constructed
-      by appending <productname>Pgpool-II</productname> wd_port after
-      <literal>"s.PGPOOLWD_CMD."</literal> string and the socket file is
-      placed in the <xref linkend="guc-wd-ipc-socket-dir"> directory.
-    </para>
+  <para>
+   <productname>Pgpool-II</productname> watchdog process uses the
+   <acronym>BSD</acronym> sockets for communicating with
+   all the <productname>Pgpool-II</productname> processes and the
+   same <acronym>BSD</acronym> socket can also be used by any third
+   party system to provide the lifecheck function for local and remote
+   <productname>Pgpool-II</productname> watchdog nodes.
+   The <acronym>BSD</acronym> socket file name for IPC is constructed
+   by appending <productname>Pgpool-II</productname> wd_port after
+   <literal>"s.PGPOOLWD_CMD."</literal> string and the socket file is
+   placed in the <xref linkend="guc-wd-ipc-socket-dir"> directory.
+  </para>
 
   <sect2 id="tutorial-watchdog-ipc-command-packet">
    <title>Watchdog IPC command packet format</title>
    <indexterm zone="tutorial-watchdog-ipc-command-packet">
     <primary>WATCHDOG</primary>
    </indexterm>
-    <para>
-      The watchdog IPC command packet consists of three fields.
-      Below table details the message fields and description.
-    </para>
-
-    <table id="wd-ipc-command-format-table">
-      <title>Watchdog IPC command packet format</title>
-      <tgroup cols="3">
-        <thead>
-          <row>
-            <entry>Field</entry>
-            <entry>Type</entry>
-            <entry>Description</entry>
-          </row>
-        </thead>
-
-        <tbody>
-          <row>
-            <entry>TYPE</entry>
-            <entry>BYTE1</entry>
-            <entry>Command Type</entry>
-          </row>
-          <row>
-            <entry>LENGTH</entry>
-            <entry>INT32 in network byte order</entry>
-            <entry>The length of data to follow</entry>
-          </row>
-          <row>
-            <entry>DATA</entry>
-            <entry>DATA in <acronym>JSON</acronym> format</entry>
-            <entry>Command data in <acronym>JSON</acronym> format</entry>
-          </row>
-
-        </tbody>
-      </tgroup>
-    </table>
+   <para>
+    The watchdog IPC command packet consists of three fields.
+    Below table details the message fields and description.
+   </para>
+
+   <table id="wd-ipc-command-format-table">
+    <title>Watchdog IPC command packet format</title>
+    <tgroup cols="3">
+     <thead>
+      <row>
+       <entry>Field</entry>
+       <entry>Type</entry>
+       <entry>Description</entry>
+      </row>
+     </thead>
+
+     <tbody>
+      <row>
+       <entry>TYPE</entry>
+       <entry>BYTE1</entry>
+       <entry>Command Type</entry>
+      </row>
+      <row>
+       <entry>LENGTH</entry>
+       <entry>INT32 in network byte order</entry>
+       <entry>The length of data to follow</entry>
+      </row>
+      <row>
+       <entry>DATA</entry>
+       <entry>DATA in <acronym>JSON</acronym> format</entry>
+       <entry>Command data in <acronym>JSON</acronym> format</entry>
+      </row>
+
+     </tbody>
+    </tgroup>
+   </table>
   </sect2>
 
   <sect2 id="tutorial-watchdog-ipc-result-packet">
    <indexterm zone="tutorial-watchdog-ipc-result-packet">
     <primary>WATCHDOG</primary>
    </indexterm>
-    <para>
-      The watchdog IPC command result packet consists of three fields.
-      Below table details the message fields and description.
-    </para>
-
-    <table id="wd-ipc-resutl-format-table">
-      <title>Watchdog IPC result packet format</title>
-      <tgroup cols="3">
-        <thead>
-          <row>
-            <entry>Field</entry>
-            <entry>Type</entry>
-            <entry>Description</entry>
-          </row>
-        </thead>
-
-        <tbody>
-          <row>
-            <entry>TYPE</entry>
-            <entry>BYTE1</entry>
-            <entry>Command Type</entry>
-          </row>
-          <row>
-            <entry>LENGTH</entry>
-            <entry>INT32 in network byte order</entry>
-            <entry>The length of data to follow</entry>
-          </row>
-          <row>
-            <entry>DATA</entry>
-            <entry>DATA in <acronym>JSON</acronym> format</entry>
-            <entry>Command result data in <acronym>JSON</acronym> format</entry>
-          </row>
-
-        </tbody>
-      </tgroup>
-    </table>
+   <para>
+    The watchdog IPC command result packet consists of three fields.
+    Below table details the message fields and description.
+   </para>
+
+   <table id="wd-ipc-resutl-format-table">
+    <title>Watchdog IPC result packet format</title>
+    <tgroup cols="3">
+     <thead>
+      <row>
+       <entry>Field</entry>
+       <entry>Type</entry>
+       <entry>Description</entry>
+      </row>
+     </thead>
+
+     <tbody>
+      <row>
+       <entry>TYPE</entry>
+       <entry>BYTE1</entry>
+       <entry>Command Type</entry>
+      </row>
+      <row>
+       <entry>LENGTH</entry>
+       <entry>INT32 in network byte order</entry>
+       <entry>The length of data to follow</entry>
+      </row>
+      <row>
+       <entry>DATA</entry>
+       <entry>DATA in <acronym>JSON</acronym> format</entry>
+       <entry>Command result data in <acronym>JSON</acronym> format</entry>
+      </row>
+
+     </tbody>
+    </tgroup>
+   </table>
   </sect2>
 
   <sect2 id="tutorial-watchdog-ipc-command-packet-types">
    <indexterm zone="tutorial-watchdog-ipc-command-packet-types">
     <primary>WATCHDOG</primary>
    </indexterm>
-    <para>
-      The first byte of the IPC command packet sent to watchdog process
-      and the result returned by watchdog process is identified as the
-      command or command result type.
-      The below table lists all valid types and their meanings
-    </para>
-
-    <table id="wd-ipc-command-packet--types-table">
-      <title>Watchdog IPC command packet types</title>
-      <tgroup cols="4">
-        <thead>
-          <row>
-            <entry>Name</entry>
-            <entry>Byte Value</entry>
-            <entry>Type</entry>
-            <entry>Description</entry>
-          </row>
-        </thead>
-
-        <tbody>
-          <row>
-            <entry>REGISTER FOR NOTIFICATIONS</entry>
-            <entry>'0'</entry>
-            <entry>Command packet</entry>
-            <entry>Command to register the current connection to receive watchdog notifications</entry>
-          </row>
-          <row>
-            <entry>NODE STATUS CHANGE</entry>
-            <entry>'2'</entry>
-            <entry>Command packet</entry>
-            <entry>Command to inform watchdog about node status change of watchddog node</entry>
-          </row>
-          <row>
-            <entry>GET NODES LIST</entry>
-            <entry>'3'</entry>
-            <entry>Command packet</entry>
-            <entry>Command to get the list of all configured watchdog nodes</entry>
-          </row>
-          <row>
-            <entry>NODES LIST DATA</entry>
-            <entry>'4'</entry>
-            <entry>Result packet</entry>
-            <entry>The <acronym>JSON</acronym> data in packet contains the list of all configured watchdog nodes</entry>
-          </row>
-          <row>
-            <entry>CLUSTER IN TRANSITION</entry>
-            <entry>'7'</entry>
-            <entry>Result packet</entry>
-            <entry>Watchdog returns this packet type when it is not possible to process the command because the cluster is transitioning.</entry>
-          </row>
-          <row>
-            <entry>RESULT BAD</entry>
-            <entry>'8'</entry>
-            <entry>Result packet</entry>
-            <entry>Watchdog returns this packet type when the IPC command fails</entry>
-          </row>
-          <row>
-            <entry>RESULT OK</entry>
-            <entry>'9'</entry>
-            <entry>Result packet</entry>
-            <entry>Watchdog returns this packet type when IPC command succeeds</entry>
-          </row>
-
-        </tbody>
-      </tgroup>
-    </table>
+   <para>
+    The first byte of the IPC command packet sent to watchdog process
+    and the result returned by watchdog process is identified as the
+    command or command result type.
+    The below table lists all valid types and their meanings
+   </para>
+
+   <table id="wd-ipc-command-packet--types-table">
+    <title>Watchdog IPC command packet types</title>
+    <tgroup cols="4">
+     <thead>
+      <row>
+       <entry>Name</entry>
+       <entry>Byte Value</entry>
+       <entry>Type</entry>
+       <entry>Description</entry>
+      </row>
+     </thead>
+
+     <tbody>
+      <row>
+       <entry>REGISTER FOR NOTIFICATIONS</entry>
+       <entry>'0'</entry>
+       <entry>Command packet</entry>
+       <entry>Command to register the current connection to receive watchdog notifications</entry>
+      </row>
+      <row>
+       <entry>NODE STATUS CHANGE</entry>
+       <entry>'2'</entry>
+       <entry>Command packet</entry>
+       <entry>Command to inform watchdog about node status change of watchddog node</entry>
+      </row>
+      <row>
+       <entry>GET NODES LIST</entry>
+       <entry>'3'</entry>
+       <entry>Command packet</entry>
+       <entry>Command to get the list of all configured watchdog nodes</entry>
+      </row>
+      <row>
+       <entry>NODES LIST DATA</entry>
+       <entry>'4'</entry>
+       <entry>Result packet</entry>
+       <entry>The <acronym>JSON</acronym> data in packet contains the list of all configured watchdog nodes</entry>
+      </row>
+      <row>
+       <entry>CLUSTER IN TRANSITION</entry>
+       <entry>'7'</entry>
+       <entry>Result packet</entry>
+       <entry>Watchdog returns this packet type when it is not possible to process the command because the cluster is transitioning.</entry>
+      </row>
+      <row>
+       <entry>RESULT BAD</entry>
+       <entry>'8'</entry>
+       <entry>Result packet</entry>
+       <entry>Watchdog returns this packet type when the IPC command fails</entry>
+      </row>
+      <row>
+       <entry>RESULT OK</entry>
+       <entry>'9'</entry>
+       <entry>Result packet</entry>
+       <entry>Watchdog returns this packet type when IPC command succeeds</entry>
+      </row>
+
+     </tbody>
+    </tgroup>
+   </table>
   </sect2>
 
   <sect2 id="tutorial-watchdog-external-lifecheck-ipc">
    <indexterm zone="tutorial-watchdog-external-lifecheck-ipc">
     <primary>WATCHDOG</primary>
    </indexterm>
-    <para>
-      "GET NODES LIST" ,"NODES LIST DATA" and "NODE STATUS CHANGE"
-      IPC messages of watchdog can be used to integration an external
-      lifecheck systems. Note that the built-in lifecheck of pgpool
-      also uses the same channel and technique.
-    </para>
+   <para>
+    "GET NODES LIST" ,"NODES LIST DATA" and "NODE STATUS CHANGE"
+    IPC messages of watchdog can be used to integration an external
+    lifecheck systems. Note that the built-in lifecheck of pgpool
+    also uses the same channel and technique.
+   </para>
 
-    <sect3 id="tutorial-watchdog-external-lifecheck-get-nodes">
-      <title>Getting list of configured watchdog nodes</title>
+   <sect3 id="tutorial-watchdog-external-lifecheck-get-nodes">
+    <title>Getting list of configured watchdog nodes</title>
 
     <indexterm zone="tutorial-watchdog-external-lifecheck-get-nodes">
-      <primary>WATCHDOG</primary>
+     <primary>WATCHDOG</primary>
     </indexterm>
-      <para>
-        Any third party lifecheck system can send the "GET NODES LIST"
-        packet on watchdog IPC socket with a <acronym>JSON</acronym>
-        data containing the authorization key and value if
-        <xref linkend="guc-wd-authkey"> is set or empty packet data
-        when <xref linkend="guc-wd-authkey"> is not configured to get
-        the "NODES LIST DATA" result packet.
-      </para>
-      <para>
-        The result packet returnd by watchdog for the "GET NODES LIST"
-        will contains the list of all configured watchdog nodes to do
-        health check on in the <acronym>JSON</acronym> format.
-        The <acronym>JSON</acronym> of the watchdog nodes contains the
-        <literal>"WatchdogNodes"</literal> Array of all watchdog nodes.
-        Each watchdog <acronym>JSON</acronym> node contains the
-        <literal>"ID"</literal>, <literal>"NodeName"</literal>,
-        <literal>"HostName"</literal>, <literal>"DelegateIP"</literal>,
-        <literal>"WdPort"</literal> and <literal>"PgpoolPort"</literal>
-        for each node.
-      </para>
-      <para>
-        <programlisting>
-    -- The example JSON data contained in "NODES LIST DATA"
+    <para>
+     Any third party lifecheck system can send the "GET NODES LIST"
+     packet on watchdog IPC socket with a <acronym>JSON</acronym>
+     data containing the authorization key and value if
+     <xref linkend="guc-wd-authkey"> is set or empty packet data
+      when <xref linkend="guc-wd-authkey"> is not configured to get
+       the "NODES LIST DATA" result packet.
+    </para>
+    <para>
+     The result packet returnd by watchdog for the "GET NODES LIST"
+     will contains the list of all configured watchdog nodes to do
+     health check on in the <acronym>JSON</acronym> format.
+     The <acronym>JSON</acronym> of the watchdog nodes contains the
+     <literal>"WatchdogNodes"</literal> Array of all watchdog nodes.
+     Each watchdog <acronym>JSON</acronym> node contains the
+     <literal>"ID"</literal>, <literal>"NodeName"</literal>,
+     <literal>"HostName"</literal>, <literal>"DelegateIP"</literal>,
+     <literal>"WdPort"</literal> and <literal>"PgpoolPort"</literal>
+     for each node.
+    </para>
+    <para>
+     <programlisting>
+      -- The example JSON data contained in "NODES LIST DATA"
 
       {
       "NodeCount":3,
       "WatchdogNodes":
-        [
-          {
-            "ID":0,
-            "State":1,
-            "NodeName":"Linux_ubuntu_9999",
-            "HostName":"watchdog-host1",
-            "DelegateIP":"172.16.5.133",
-            "WdPort":9000,
-            "PgpoolPort":9999
-          },
-          {
-            "ID":1,
-            "State":1,
-            "NodeName":"Linux_ubuntu_9991",
-            "HostName":"watchdog-host2",
-            "DelegateIP":"172.16.5.133",
-            "WdPort":9000,
-            "PgpoolPort":9991
-          },
-          {
-            "ID":2,
-            "State":1,
-            "NodeName":"Linux_ubuntu_9992",
-            "HostName":"watchdog-host3",
-            "DelegateIP":"172.16.5.133",
-            "WdPort":9000,
-            "PgpoolPort":9992
-          }
-        ]
+      [
+      {
+      "ID":0,
+      "State":1,
+      "NodeName":"Linux_ubuntu_9999",
+      "HostName":"watchdog-host1",
+      "DelegateIP":"172.16.5.133",
+      "WdPort":9000,
+      "PgpoolPort":9999
+      },
+      {
+      "ID":1,
+      "State":1,
+      "NodeName":"Linux_ubuntu_9991",
+      "HostName":"watchdog-host2",
+      "DelegateIP":"172.16.5.133",
+      "WdPort":9000,
+      "PgpoolPort":9991
+      },
+      {
+      "ID":2,
+      "State":1,
+      "NodeName":"Linux_ubuntu_9992",
+      "HostName":"watchdog-host3",
+      "DelegateIP":"172.16.5.133",
+      "WdPort":9000,
+      "PgpoolPort":9992
+      }
+      ]
       }
 
-    -- Note that ID 0 is always reserved for local watchdog node
-
-        </programlisting>
-      </para>
-      <para>
-        After getting the configured watchdog nodes information from the
-        watchdog the external lifecheck system can proceed with the
-        health checking of watchdog nodes, and when it detects some status
-        change of any node it can inform that to watchdog using the
-        "NODE STATUS CHANGE" IPC messages of watchdog.
-        The data in the message should contain the <acronym>JSON</acronym>
-        with the node ID of the node whose status is changed
-        (The node ID must be same as returned by watchdog for that node
-        in WatchdogNodes list) and the new status of node.
-      </para>
-      <para>
-        <programlisting>
-  -- The example JSON to inform pgpool-II watchdog about health check
-  failed on node with ID 1 will look like
-
-    {
-    "NodeID":1,
-    "NodeStatus":1,
-    "Message":"optional message string to log by watchdog for this event"
-    "IPCAuthKey":"wd_authkey configuration parameter value"
-    }
-
-  -- NodeStatus values meanings are as follows
-  NODE STATUS DEAD  =  1
-  NODE STATUS ALIVE =  2
-
-        </programlisting>
-      </para>
-    </sect3>
+      -- Note that ID 0 is always reserved for local watchdog node
+
+     </programlisting>
+    </para>
+    <para>
+     After getting the configured watchdog nodes information from the
+     watchdog the external lifecheck system can proceed with the
+     health checking of watchdog nodes, and when it detects some status
+     change of any node it can inform that to watchdog using the
+     "NODE STATUS CHANGE" IPC messages of watchdog.
+     The data in the message should contain the <acronym>JSON</acronym>
+     with the node ID of the node whose status is changed
+     (The node ID must be same as returned by watchdog for that node
+     in WatchdogNodes list) and the new status of node.
+    </para>
+    <para>
+     <programlisting>
+      -- The example JSON to inform pgpool-II watchdog about health check
+      failed on node with ID 1 will look like
+
+      {
+      "NodeID":1,
+      "NodeStatus":1,
+      "Message":"optional message string to log by watchdog for this event"
+      "IPCAuthKey":"wd_authkey configuration parameter value"
+      }
+
+      -- NodeStatus values meanings are as follows
+      NODE STATUS DEAD  =  1
+      NODE STATUS ALIVE =  2
+
+     </programlisting>
+    </para>
+   </sect3>
   </sect2>
-</sect1>
-  <sect1 id="tutorial-watchdog-restrictions">
-   <title>Restrictions on watchdog</title>
+ </sect1>
+ <sect1 id="tutorial-watchdog-restrictions">
+  <title>Restrictions on watchdog</title>
+
+  <indexterm zone="tutorial-watchdog-restrictions">
+   <primary>WATCHDOG</primary>
+  </indexterm>
 
-   <indexterm zone="tutorial-watchdog-restrictions">
+  <sect2 id="tutorial-watchdog-restrictions-query-mode">
+   <title>Watchdog restriction with query mode lifecheck</title>
+   <indexterm zone="tutorial-watchdog-restrictions-query-mode">
     <primary>WATCHDOG</primary>
    </indexterm>
 
-    <sect2 id="tutorial-watchdog-restrictions-query-mode">
-      <title>Watchdog restriction with query mode lifecheck</title>
-      <indexterm zone="tutorial-watchdog-restrictions-query-mode">
-        <primary>WATCHDOG</primary>
-      </indexterm>
-
-      <para>
-        In query mode, when all the DB nodes are detached from a
-        <productname>Pgpool-II</productname> due to PostgreSQL server
-        failure or pcp_detach_node issued, watchdog regards that the
-        <productname>Pgpool-II</productname> service is in the down
-        status and brings the virtual IP assigned to watchdog down.
-        Thus clients of <productname>Pgpool-II</productname> cannot
-        connect to <productname>Pgpool-II</productname> using the
-        virtual IP any more. This is neccessary to avoid split-brain,
-        that is, situations where there are multiple active
-        <productname>Pgpool-II</productname>.
-      </para>
-    </sect2>
-
-    <sect2 id="tutorial-watchdog-restrictions-down-watchdog-mode">
-      <title>Connecting to <productname>Pgpool-II</productname> whose watchdog status is down</title>
-      <indexterm zone="tutorial-watchdog-restrictions-down-watchdog-mode">
-        <primary>WATCHDOG</primary>
-      </indexterm>
-      <para>
-        Don't connect to <productname>Pgpool-II</productname> in down
-        status using the real IP. Because a <productname>Pgpool-II</productname>
-        in down status can't receive information from other
-        <productname>Pgpool-II</productname> watchdogs so it's backend status
-        may be different from other the <productname>Pgpool-II</productname>.
-      </para>
-    </sect2>
-
-    <sect2 id="tutorial-watchdog-restrictions-down-watchdog-require-restart">
-      <title><productname>Pgpool-II</productname> whose watchdog status is down requires restart</title>
-      <indexterm zone="tutorial-watchdog-restrictions-down-watchdog-require-restart">
-        <primary>WATCHDOG</primary>
-      </indexterm>
-      <para>
-        <productname>Pgpool-II</productname> in down status can't become active
-        nor the standby <productname>Pgpool-II</productname>.
-        Recovery from down status requires the restart of <productname>Pgpool-II</productname>.
-      </para>
-    </sect2>
-
-    <sect2 id="tutorial-watchdog-restrictions-active-take-time">
-      <title>Watchdog promotion to active takes few seconds</title>
-      <indexterm zone="tutorial-watchdog-restrictions-active-take-time">
-        <primary>WATCHDOG</primary>
-      </indexterm>
-      <para>
-        After the active <productname>Pgpool-II</productname> stops,
-        it will take a few seconds until the standby <productname>Pgpool-II</productname>
-        promote to new active, to make sure that the former virtual IP is
-        brought down before a down notification packet is sent to other
-        <productname>Pgpool-II</productname>.
-      </para>
-    </sect2>
-  </sect1>
-
-  <sect1 id="tutorial-advanced-arch">
-    <title>Architecure of the watchdog</title>
+   <para>
+    In query mode, when all the DB nodes are detached from a
+    <productname>Pgpool-II</productname> due to PostgreSQL server
+    failure or pcp_detach_node issued, watchdog regards that the
+    <productname>Pgpool-II</productname> service is in the down
+    status and brings the virtual IP assigned to watchdog down.
+    Thus clients of <productname>Pgpool-II</productname> cannot
+    connect to <productname>Pgpool-II</productname> using the
+    virtual IP any more. This is neccessary to avoid split-brain,
+    that is, situations where there are multiple active
+    <productname>Pgpool-II</productname>.
+   </para>
+  </sect2>
 
+  <sect2 id="tutorial-watchdog-restrictions-down-watchdog-mode">
+   <title>Connecting to <productname>Pgpool-II</productname> whose watchdog status is down</title>
+   <indexterm zone="tutorial-watchdog-restrictions-down-watchdog-mode">
+    <primary>WATCHDOG</primary>
+   </indexterm>
+   <para>
+    Don't connect to <productname>Pgpool-II</productname> in down
+    status using the real IP. Because a <productname>Pgpool-II</productname>
+    in down status can't receive information from other
+    <productname>Pgpool-II</productname> watchdogs so it's backend status
+    may be different from other the <productname>Pgpool-II</productname>.
+   </para>
+  </sect2>
+
+  <sect2 id="tutorial-watchdog-restrictions-down-watchdog-require-restart">
+   <title><productname>Pgpool-II</productname> whose watchdog status is down requires restart</title>
+   <indexterm zone="tutorial-watchdog-restrictions-down-watchdog-require-restart">
+    <primary>WATCHDOG</primary>
+   </indexterm>
+   <para>
+    <productname>Pgpool-II</productname> in down status can't become active
+    nor the standby <productname>Pgpool-II</productname>.
+    Recovery from down status requires the restart of <productname>Pgpool-II</productname>.
+   </para>
+  </sect2>
+
+  <sect2 id="tutorial-watchdog-restrictions-active-take-time">
+   <title>Watchdog promotion to active takes few seconds</title>
+   <indexterm zone="tutorial-watchdog-restrictions-active-take-time">
+    <primary>WATCHDOG</primary>
+   </indexterm>
+   <para>
+    After the active <productname>Pgpool-II</productname> stops,
+    it will take a few seconds until the standby <productname>Pgpool-II</productname>
+    promote to new active, to make sure that the former virtual IP is
+    brought down before a down notification packet is sent to other
+    <productname>Pgpool-II</productname>.
+   </para>
+  </sect2>
+ </sect1>
+
+ <sect1 id="tutorial-advanced-arch">
+  <title>Architecure of the watchdog</title>
+
+  <para>
+   Watchdog is a sub process of <productname>Pgpool-II</productname>,
+   which adds the high availability and resolves the single point of
+   failure by coordinating multiple <productname>Pgpool-II</productname>.
+   The watchdog process automatically starts (if enabled) when the
+   <productname>Pgpool-II</productname> starts up and consists of two
+   main components, Watchdog core and the lifecheck system.
+  </para>
+
+  <sect2 id="tutorial-advanced-arch-wd-core">
+   <title>Watchdog Core</title>
+   <para>
+    Watchdog core referred as a "watchdog" is a
+    <productname>Pgpool-II</productname> child process that
+    manages all the watchdog related communications with the
+    <productname>Pgpool-II</productname> nodes present in the
+    cluster and also communicates with the <productname>Pgpool-II</productname>
+    parent and lifecheck processes.
+   </para>
+   <para>
+    The heart of a watchdog process is a state machine that starts
+    from its initial state (<literal>WD_LOADING</literal>) and transit
+    towards either standby (<literal>WD_STANDBY</literal>) or
+    master/coordinator (<literal>WD_COORDINATOR</literal>) state.
+    Both standby and master/coordinator states are stable states of the
+    watchdog state machine and the node stays in standby or
+    master/coordinator state until some problem in local
+    <productname>Pgpool-II</productname> node is detected or a
+    remote <productname>Pgpool-II</productname> disconnects from the cluster.
+   </para>
+   <para>
+    The watchdog process performs the following tasks:
+   </para>
+   <itemizedlist>
+    <listitem>
+     <para>
+      Manages and coordinates the local node watchdog state.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Interacts with built-in or external lifecheck system
+      for the of local and remote <productname>Pgpool-II</productname>
+      node health checking.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Interacts with <productname>Pgpool-II</productname> main
+      process and provides the mechanism to
+      <productname>Pgpool-II</productname> parent process for
+      executing the cluster commands over the watchdog channel.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Communicates with all the participating <productname>Pgpool-II
+      </productname> nodes to coordinate the selection of
+      master/coordinator node and to ensure the quorum in the cluster.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Manages the Virtual-IP on the active/coordinator node and
+      allow the users to provide custom scripts for
+      escalation and de-escalation.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Verifies the consistency of <productname>Pgpool-II</productname>
+      configurations across the participating <productname>Pgpool-II
+      </productname> nodes in the watchdog cluster.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Synchronize the status of all PostgreSQL backends at startup.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Provides the distributed locking facility to
+      <productname>Pgpool-II</productname> main process
+      for synchronizing the different failover commands.
+     </para>
+    </listitem>
+
+   </itemizedlist>
+
+   <sect3 id="tutorial-advanced-arch-wd-core-comm">
+    <title>Communication with other nodes in the Cluster</title>
+    <para>
+     Watchdog uses TCP/IP sockets for all the communication with other nodes.
+     Each watchdog node can have two sockets opened with each node. One is the
+     outgoing (client) socket which this node creates and initiate the
+     connection to the remote node and the second socket is the one which
+     is listening socket for inbound connection initiated by remote
+     watchdog node. As soon as the socket connection to remote node succeeds
+     watchdog sends the ADD NODE (<literal>WD_ADD_NODE_MESSAGE</literal>)
+     message on that socket. And upon receiving the ADD NODE message the
+     watchdog node verifies the node information encapsulated in the message
+     with the Pgpool-II configurations for that node, and if the node passes
+     the verification test it is added to the cluster otherwise the connection
+     is dropped.
+    </para>
+   </sect3>
+
+   <sect3 id="tutorial-advanced-arch-wd-ipc-data">
+    <title>IPC and data format</title>
     <para>
-      Watchdog is a sub process of <productname>Pgpool-II</productname>,
-      which adds the high availability and resolves the single point of
-      failure by coordinating multiple <productname>Pgpool-II</productname>.
-      The watchdog process automatically starts (if enabled) when the
-      <productname>Pgpool-II</productname> starts up and consists of two
-      main components, Watchdog core and the lifecheck system.
+     Watchdog process exposes a <acronym>UNIX</acronym> domain socket
+     for IPC communications, which accepts and provides the data in
+     <acronym>JSON</acronym> format. All the internal <productname>Pgpool-II
+     </productname> processes, including <productname>Pgpool-II's</productname>
+     built-in lifecheck and <productname>Pgpool-II</productname> main process
+     uses this IPC socket interface to interact with the watchdog.
+     This IPC socket can also be used by any external/3rd party system
+     to interact with watchdog.
     </para>
+    <para>
+     See <xref linkend="tutorial-watchdog-integrating-external-lifecheck"> for details
+      on how to use watchdog IPC interface for integrating external/3rd party systems.
+    </para>
+   </sect3>
+  </sect2>
+
+  <sect2 id="tutorial-advanced-arch-wd-lifecheck">
+   <title>Watchdog Lifecheck</title>
+   <para>
+    Watchdog lifecheck is the sub-component of watchdog that monitors the health
+    of <productname>Pgpool-II</productname> nodes participating in the watchdog
+    cluster. <productname>Pgpool-II</productname> watchdog provides three built-in
+    methods of remote node health checking, "heartbeat", "query" and "external" mode.
+   </para>
+   <para>
+    In "heartbeat" mode, The lifecheck process sends and receives the data over
+    <acronym>UDP</acronym> socket to check the availability of remote nodes and
+    for each node the parent lifecheck process spawns two child process one for
+    sending the heartbeat signal and another for receiving the heartbeat.
+    While in "query" mode, The lifecheck process uses the PostgreSQL libpq
+    interface for querying the remote <productname>Pgpool-II</productname>.
+    And in this mode the lifecheck process creates a new thread for each health
+    check query which gets destroyed as soon as the query finishes.
+    While in "external" mode, this mode disables the built in lifecheck of
+    <productname>Pgpool-II</productname>, and expects that the external system
+    will monitor local and remote node instead.
+   </para>
+   <para>
+    Apart from remote node health checking watchdog lifecheck can also check the
+    health of node it is installed on by monitoring the connection to upstream servers.
+    For monitoring the connectivity to the upstream server <productname>Pgpool-II
+    </productname> lifecheck uses <literal>execv()</literal> function to executes
+    <command>'ping -q -c3 hostname'</command> command.
+    So a new child process gets spawned for executing each ping command.
+    This means for each health check cycle a child process gets created and
+    destroyed for each configured upstream server.
+    For example, if two upstream servers are configured in the lifecheck and it is
+    asked to health check at ten second intervals, then after each ten second
+    lifecheck will spawn two child processes, one for each upstream server,
+    and each process will live until the ping command is finished.
+   </para>
+  </sect2>
 
-    <sect2 id="tutorial-advanced-arch-wd-core">
-      <title>Watchdog Core</title>
-        <para>
-          Watchdog core referred as a "watchdog" is a
-          <productname>Pgpool-II</productname> child process that
-          manages all the watchdog related communications with the
-          <productname>Pgpool-II</productname> nodes present in the
-          cluster and also communicates with the <productname>Pgpool-II</productname>
-          parent and lifecheck processes.
-        </para>
-        <para>
-          The heart of a watchdog process is a state machine that starts
-          from its initial state (<literal>WD_LOADING</literal>) and transit
-          towards either standby (<literal>WD_STANDBY</literal>) or
-          master/coordinator (<literal>WD_COORDINATOR</literal>) state.
-          Both standby and master/coordinator states are stable states of the
-          watchdog state machine and the node stays in standby or
-          master/coordinator state until some problem in local
-          <productname>Pgpool-II</productname> node is detected or a
-          remote <productname>Pgpool-II</productname> disconnects from the cluster.
-        </para>
-        <para>
-          The watchdog process performs the following tasks:
-        </para>
-          <itemizedlist>
-            <listitem>
-              <para>
-                Manages and coordinates the local node watchdog state.
-              </para>
-            </listitem>
-
-            <listitem>
-              <para>
-                Interacts with built-in or external lifecheck system
-                for the of local and remote <productname>Pgpool-II</productname>
-                node health checking.
-              </para>
-            </listitem>
-
-            <listitem>
-              <para>
-                Interacts with <productname>Pgpool-II</productname> main
-                process and provides the mechanism to
-                <productname>Pgpool-II</productname> parent process for
-                executing the cluster commands over the watchdog channel.
-              </para>
-            </listitem>
-
-            <listitem>
-              <para>
-                Communicates with all the participating <productname>Pgpool-II
-                </productname> nodes to coordinate the selection of
-                master/coordinator node and to ensure the quorum in the cluster.
-              </para>
-            </listitem>
-
-            <listitem>
-              <para>
-                Manages the Virtual-IP on the active/coordinator node and
-                allow the users to provide custom scripts for
-                escalation and de-escalation.
-              </para>
-            </listitem>
-
-            <listitem>
-              <para>
-                Verifies the consistency of <productname>Pgpool-II</productname>
-                configurations across the participating <productname>Pgpool-II
-                </productname> nodes in the watchdog cluster.
-              </para>
-            </listitem>
-
-            <listitem>
-              <para>
-                Synchronize the status of all PostgreSQL backends at startup.
-              </para>
-            </listitem>
-
-            <listitem>
-              <para>
-                Provides the distributed locking facility to
-                <productname>Pgpool-II</productname> main process
-                for synchronizing the different failover commands.
-              </para>
-            </listitem>
-
-          </itemizedlist>
-
-      <sect3 id="tutorial-advanced-arch-wd-core-comm">
-        <title>Communication with other nodes in the Cluster</title>
-        <para>
-          Watchdog uses TCP/IP sockets for all the communication with other nodes.
-          Each watchdog node can have two sockets opened with each node. One is the
-          outgoing (client) socket which this node creates and initiate the
-          connection to the remote node and the second socket is the one which
-          is listening socket for inbound connection initiated by remote
-          watchdog node. As soon as the socket connection to remote node succeeds
-          watchdog sends the ADD NODE (<literal>WD_ADD_NODE_MESSAGE</literal>)
-          message on that socket. And upon receiving the ADD NODE message the
-          watchdog node verifies the node information encapsulated in the message
-          with the Pgpool-II configurations for that node, and if the node passes
-          the verification test it is added to the cluster otherwise the connection
-          is dropped.
-        </para>
-      </sect3>
-
-      <sect3 id="tutorial-advanced-arch-wd-ipc-data">
-        <title>IPC and data format</title>
-        <para>
-          Watchdog process exposes a <acronym>UNIX</acronym> domain socket
-          for IPC communications, which accepts and provides the data in
-          <acronym>JSON</acronym> format. All the internal <productname>Pgpool-II
-          </productname> processes, including <productname>Pgpool-II's</productname>
-          built-in lifecheck and <productname>Pgpool-II</productname> main process
-          uses this IPC socket interface to interact with the watchdog.
-          This IPC socket can also be used by any external/3rd party system
-          to interact with watchdog.
-        </para>
-        <para>
-          See <xref linkend="tutorial-watchdog-integrating-external-lifecheck"> for details
-          on how to use watchdog IPC interface for integrating external/3rd party systems.
-        </para>
-      </sect3>
-    </sect2>
-
-    <sect2 id="tutorial-advanced-arch-wd-lifecheck">
-      <title>Watchdog Lifecheck</title>
-      <para>
-        Watchdog lifecheck is the sub-component of watchdog that monitors the health
-        of <productname>Pgpool-II</productname> nodes participating in the watchdog
-        cluster. <productname>Pgpool-II</productname> watchdog provides three built-in
-        methods of remote node health checking, "heartbeat", "query" and "external" mode.
-      </para>
-      <para>
-        In "heartbeat" mode, The lifecheck process sends and receives the data over
-        <acronym>UDP</acronym> socket to check the availability of remote nodes and
-        for each node the parent lifecheck process spawns two child process one for
-        sending the heartbeat signal and another for receiving the heartbeat.
-        While in "query" mode, The lifecheck process uses the PostgreSQL libpq
-        interface for querying the remote <productname>Pgpool-II</productname>.
-        And in this mode the lifecheck process creates a new thread for each health
-        check query which gets destroyed as soon as the query finishes.
-        While in "external" mode, this mode disables the built in lifecheck of
-        <productname>Pgpool-II</productname>, and expects that the external system
-        will monitor local and remote node instead.
-      </para>
-      <para>
-        Apart from remote node health checking watchdog lifecheck can also check the
-        health of node it is installed on by monitoring the connection to upstream servers.
-        For monitoring the connectivity to the upstream server <productname>Pgpool-II
-        </productname> lifecheck uses <literal>execv()</literal> function to executes
-        <command>'ping -q -c3 hostname'</command> command.
-        So a new child process gets spawned for executing each ping command.
-        This means for each health check cycle a child process gets created and
-        destroyed for each configured upstream server.
-        For example, if two upstream servers are configured in the lifecheck and it is
-        asked to health check at ten second intervals, then after each ten second
-        lifecheck will spawn two child processes, one for each upstream server,
-        and each process will live until the ping command is finished.
-      </para>
-    </sect2>
-
-  </sect1>
+ </sect1>
 
 </chapter>