Add descriptions of pcp_watchdog_info to documents
authorYugo Nagata <nagata@sraoss.co.jp>
Fri, 19 Jul 2013 05:23:58 +0000 (14:23 +0900)
committerYugo Nagata <nagata@sraoss.co.jp>
Fri, 19 Jul 2013 05:23:58 +0000 (14:23 +0900)
NEWS
doc/pgpool-en.html
doc/pgpool-ja.html

diff --git a/NEWS b/NEWS
index e4222acb7fd3166c29dc85b71eca7626fc2785df..4588db21280900db2efc63334e2bdcb7322f71c9 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -33,7 +33,7 @@
 
 * New features
 
-  ** Watchdog 
+  ** Watchdog
 
     - Add a new monitring method using heartbeat signal of UDP packet in
       lifecheck. (Yugo Nagata)
 
     - Add interlocking mechanism of exclusive failover/failback command
       execution. (Yugo Nagata)
-    
+
       When using multiple pgpool-IIs with watchdog enabled, failover commands
       (failover_command, failback_command, and follow_master_command) get
       executed only at one pgpool-II.
-    
+
       Previously, these command got executed at all pgpool-IIs.
 
     - Add authentication mechanism for watchdog packet communication.
       (Yugo Nagata)
-    
+
       Watchdog packets (include heartbeat signal) from pgpool-II with wrong
       authentication key are rejected. All pgpool-IIs must have the same key,
       which is specified wd_authkey parameter in pgpool.conf. pgpool-II with
       wrong authkey can't even start watchdog, because the startup packet is
       rejected by other pgpool-IIs.
+
     - Add clear_memqcache_on_escalation parameter. (Yugo Nagata)
-    
+
       If this is on, all the query caches on shared memory are cleared when
       standby pgpool-II escalates to active.
 
       This is aimed to prevent the new active pgpool-II from using inconsistent
       query caches with the previous active.
+
     - Add wd_escalation_command parameter. (Yugo Nagata)
-    
+
       This specifies command which is executed at escalation on the new active
       pgpool-II server. The timing is just before virtual IP is brought up.
 
     - Add parameters wd_lifecheck_dbname, wd_lifecheck_user, and
       wd_lifecheck_password. (Yugo Nagata)
-    
+
       These parameters specify the database name, the user name, and password
       used in query mode lifecheck of watchdog . Previously, these are hard
       coded to use template1, recovery_user, and recovery_password.
     - When delegate_IP parameter is emply, viertual IP is neither brought up
       nor switched. (Yugo Nagata)
 
-      This allows multi-master like configuration without virtual IP. 
+      This allows multi-master like configuration without virtual IP.
+
+    - Add pcp_watchdog_info command (Yugo Nagata)
+
+      This is PCP command for retrieving the watchdog status.
 
   ** Others
 
     - Add a tool called pgpool_setup to set up pgpool-II and PostgreSQL
       temporary installation in current directory for *testing* purpose.
       (Tatsuo Ishii)
-    
+
       usage: pgpool_setup [-m r|s][-n num_clusters][--no-stop]
          -m s: create an installation as streaming replication mode.
          (the default)
 
     - Support installation method using CREATE EXTENSION for pgpool-recovery
       and pgpool-regclass. (Tatsuo Ishii)
-    
+
       Older installtion method is still preserved.
 
       Note: extension names are "pgpool_recovery" and "pgpool_regclass", not
 
     - Add a function "pgpool_pgctl()" which enebles to execute
       pg_ctl stop/restart/reload (except for start) by SQL. (Nozomi Anzai)
-    
+
       $ psql sales -c "select pgpool_pgctl('reload', 'fast')";
        pgpool_pgctl
       --------------
 
     - Add shell scripts to install pgpool-II and pgpoolAdmin by RPM.
       (Nozomi Anzai, Yugo Nagata)
-    
+
       To make the installer package execute getsources.sh, and the directory
       named "work" will be created. And you rpmbuild each spec files in work/,
       put RPMs into work/installer and make tar ball of work/installer.
       The installer does not only install RPMs but also edit postgresql.conf,
       pgpool.conf, pg_hba.conf, recovery.conf and scripts for failover and
       online recovery.
-      
+
       This assumes two-nodes configuration and the install script have to be
       executed in both nodes.
 
-    - Add new parameter "search_primary_node_timeout". 
+    - Add new parameter "search_primary_node_timeout".
       (Muhammad Usama, Tatsuo Ishii)
-    
+
       The parameter specifies the maximum amount of time in seconds to
       search for a primary node when a failover scenario occurs. Patch
       contributed by Muhammad Usama.  Japanese doc and slight editing of
 
     - Consider timeout waiting for compeletion of failback request in on line
       recovery. (Tatsuo Ishii)
-    
+
       This will prevent the situation that recovery operation continues forever
       and we cannot even shutdown pgpool-II main process. This could happen
       especially while executing follow master command.
 
     - Fix bug with do_query which causes hung in extended protocol.
       (Tatsuo Ishii)
-        
+
       This problem could occur when insert lock is enabled and
       pgpool_catalog.insert_lock exists, See [pgpool-general: 1684] for more
       details.
       DELETE FROM t2 WHERE i = 0;
       INSERT INTO t1(i) VALUES(1);
       COMMIT;
-    
+
       SELECT * FROM t1;
-    
+
       At commit pgpool tries to delete cache for t2 but failes because
       there's no oid table entry for t2. Problem is, it fails to check oid
       table for t1. So cahce for t1 remains and the last SELECT incorrectly
       returns cached data. Fix is, continuing to check oid table entries.
 
-      This is reported in Bug track #58 by wms 
+      This is reported in Bug track #58 by wms
       http://www.pgpool.net/mantisbt/view.php?id=58
 
       __________________________________________________________________
 
     - Replace "sticky bit" to "setuid bit" in log message, comments and
       funcation names. (Yugo Nagata)
-    
+
       These words were used mistakenly and caused confusion.
 
     - Fix description on SSL in pool_hba.conf.sample. (Tatsuo Ishii)
 
     - Allow to load balancing in an explicit transaction in replication mode.
       (Tatsuo Ishii)
-    
+
         The condition to allow the load balancing is as follows:
         1) replicate_select is off
         2) no writing functions are used
 
     - Consider timeout waiting for compeletion of failback request in on line
       recovery (Tatsuo Ishii)
-    
+
       This will prevent the situation that recovery operation continues forever
       and we cannot even shutdown pgpool-II main process. This could happen
       especially while executing follow master command.
       between platform. On Linux, this returns 2 and it is eventually harmless.
       However, on Soraris, this returns 0 and it is indistinguishable from time
       timeout, so watchdog wouldn't work correctly.
-    
+
     - Fix error when pgpool_regclass is not installed (Tatsuo Ishii)
 
       The query used in pool_has_pgpool_regclass() fails if pgpool_regclass
 
     - Fix bug with do_query which causes hung in extended protocol
       (Tatsuo Ishii)
-        
+
       This problem could occur when insert lock is enabled and
       pgpool_catalog.insert_lock exists, See [pgpool-general: 1684] for more
       details.
       DELETE FROM t2 WHERE i = 0;
       INSERT INTO t1(i) VALUES(1);
       COMMIT;
-    
+
       SELECT * FROM t1;
-    
+
       At commit pgpool tries to delete cache for t2 but failes because
       there's no oid table entry for t2. Problem is, it fails to check oid
       table for t1. So cahce for t1 remains and the last SELECT incorrectly
       returns cached data. Fix is, continuing to check oid table entries.
 
-      This is reported in Bug track #58 by wms 
+      This is reported in Bug track #58 by wms
 
       #58 query cache invalidation does not fire for multiple DML in transaction
       http://www.pgpool.net/mantisbt/view.php?id=58
 
     - Fix to register pgpool_regclass in pg_catalog schema (Tatsuo Ishii)
-    
+
       This is necessary to deal with clients which restricts schema search path
       to pg_catalog only. Postgres_fdw is such a client.
 
     - Fix a potential crash in pg_md5 command (Muhammad Usama)
-    
+
     - Fix a segmentation fault that occurs when on memory query cache enabled
       and the query is issued in extended query mode and the result is too large
       (Tatsuo Ishii)
 
       #63 Child process was terminated by segmentation fault with memcached
       http://www.pgpool.net/mantisbt/view.php?id=63
-    
+
     - Fix a segmentation fault of a child process that occurs when a startup
       packet has no PostgreSQL user information (Yugo Nagata)
-    
+
       You can reproduce it by
-    
+
           $ psql -p 9999 -U ''
-    
+
       If enable_pool_hba is on, a child process terminates by segmentation
       fault. Otherwise if enable_pool_hba is off, the error message is
-    
+
           ERROR: pool_discard_cp: cannot get connection pool for user (null)
                  database (null)
-    
+
       In both cases, psql terminates with no message on frontend.
-    
+
       In the fixed version, if PostgreSQL user is not specified in startup packet,
       the message as following is output to both log and frontend. This is
       the same behavior as PostgreSQL.
-    
+
           FATAL: no PostgreSQL user name specified in startup packet
 
     - Fix memory allocation logic in extended query processing with on-memory
       query cache enabled (Tatsuo Ishii)
-    
+
       When very long query string (> 1024 bytes) supplied in extended query
       with bind parameters, it fails to allocate enough memory.
 
       (Yugo Nagata)
 
     - Add ssl_ca_cert and ssl_ca_cert_dir descriptions to the japanese document
-      (Yugo Nagata)    
+      (Yugo Nagata)
 
     - Fix to verify the backend node number in pcp_recovery_node (Yugo Nagata)
-    
+
       When an invalid number is used, null value is passed as an arguments
       of recovery script, and this causes a malfunction. In especially,
       rsync may delete unrelated files in basebackup scripts.
 * Bug fixes
 
     - Fix connect_inet_domain_socket_by_port() to set more appropriate value
-      for timeout parameter of select(2). (Tatsuo Ishii) 
-      
+      for timeout parameter of select(2). (Tatsuo Ishii)
+
       Some platforms such as Solaris do not allow to specify too large
       microseconds timeout value (>=1000000). So divide the timeout value to
       seconds and microseconds.
 
     - Fix connect_inet_domain_socket_by_port() to not return as normal when
       interrupted by alarm. (Tatsuo Ishii)
-      
+
       This confuses health checking because connect_inet_domain_socket_by_port()
       returns unsable fd. This makes detecting errors in health checking longer.
-      
+
       See the following for more details:
 
       [pgpool-general: 1458]
 
     - Fix long standing bug with timestamp rewriting code for processing
       extended protocol. (Tatsuo Ishii)
-      
+
       Parse() allocate memory using palloc() while rewriting the parse
       message.  Problem is, the rewritten message was kept in the data which
       is managed by pool_create_sent_message() etc. The function assumes
       double free. To fix this, memory to store rewritten message is
       allocated using session context. The bug was there since pgpool-II 3.0
       was born.
-      
+
       Problem analysis and patch contributed by Naoya Anzai.
 
       [pgpoolgenera-jp: 1146]. (in Japanese)
       http://www.pgpool.net/pipermail/pgpool-general-jp/2013-March/001145.html
 
     - Fix bug with md5 auth long user name handling. (Tatsuo Ishii)
-      
+
       If user name is longer than 32 bytes, md5 authentication doesn't work.
       Problem reported in [pgpool-general: 1526] by Thomas Martin.
-      
+
       [pgpool-general: 1526]
       [pgPool-II 3.2.3] MD5 authentication and username longer than 32 characters.
       http://www.pgpool.net/pipermail/pgpool-general/2013-March/001551.html
 
     - Fix to calculate replication delay only if standby server is behind from
       the primay server. (Yugo Nagata)
-      
+
       When the primary server is behind from standby server, negative value of
       delay is calculated and the value is assigned to unsigned variable. It
       causes a log message informing negative replication delay. And what is
       worse, it also causes SELECT queries to be sent to the primary in load
       balance even though there are no replication delay in fact.
-      
+
       The problem is reported and analyzed by Saitoh Hidenori in
-      [pgpool-genera-jp: 1145]. 
-  
+      [pgpool-genera-jp: 1145].
+
       [pgpool-general-jp: 1145] (in Japanese)
       http://www.pgpool.net/pipermail/pgpool-general-jp/2013-March/001144.html
 
     - pgpool-recovery adopts PostgreSQL 9.3. (Tatsuo Ishii)
-    
+
       Patch contributed by Asif Rehman. Slight editing by Tatsuo Ishii.
 
-      [pgpool-hackers: 180] 
+      [pgpool-hackers: 180]
       compile error in ppool-recovery
       http://www.pgpool.net/pipermail/pgpool-hackers/2013-April/000179.html
 
     - Fix pool_has_pgpool_regclass() to check execute privilege of
       pgpool_regclass(). (Tatsuo Ishii)
-      
+
       Even though pgpool_regclass() exists, if pgpool cannot execute the
       function, the connection to backend hangs. You can reproduce the problem
       by just dropping  the execute privilege from pgpool_regclass and do some
       insert in native replication mode.
-      
+
       The problem is reported in bugtrack #53.
 
       #53 pgpool_regclas hangs all connections
-      Date:     2013-04-04 13:35 
+      Date:     2013-04-04 13:35
       Reporter: tmandke
       http://www.pgpool.net/mantisbt/view.php?id=53
 
       fixed to "LOG: detect_postmaster_down_error: detect_error error", and so on.
 
     - Remove root user check when watchdog is enabled. (Tatsuo Ishii)
-     
+
       Per discussion [pgpool-general: 1627] Re: watchdog root requirement.
 
       [pgpool-general: 1627]
 
     - Fix bug with on memory query cache in handling UPDATE/DELETE with table
       alias. (Tatsuo Ishii)
-      
+
       If UPDATE/DELETE is with table alias (UPDATE t1 AS foo...) pgpool thinks
       the table name is "t1 AS foo" and fails to invalidate query cache. This
       is caused by _outRangeVar() called from nodeToString() which generates a
       query string from RangeVar node in raw parse tree. The solution is removing
       "AS foo" part from the output of the string.
-      
+
       Reported in bugtrack #56.
 
       #56 UPDATE with alias does not discard cache
-      Date:     2013-04-18 17:33 
-      Reporter: harukat 
+      Date:     2013-04-18 17:33
+      Reporter: harukat
       http://www.pgpool.net/mantisbt/view.php?id=56
 
 ===============================================================================
       which is usually "public". (Tatsuo Ishii)
 
       This makes pgpool to create caches for such a VIEW's query results,
-      which of course should not be allowed. 
+      which of course should not be allowed.
 
       Problem reported and patch provided by jgentsch in bug id #30.
 
       5) SELECT * FROM t1;        -- query cache entry mistakenly created!
 
       Problem is #3 creates relcache entry for t1, and #5 incorrecly uses it
-      and believes that temp table t1 is not a temp table. 
+      and believes that temp table t1 is not a temp table.
 
     - Add a description about "-f" to help message. (Tatsuo Ishii)
 
 
     - Add wd_hostname to pool_process_reporting.c. (Yugo Nagata)
 
-      Otherwise, wd_hostname is not contained in results of SHOW pool_status and 
+      Otherwise, wd_hostname is not contained in results of SHOW pool_status and
       cp_pool_status.
 
     - Fix connect_inet_domain_socket_by_port() to not error out when connect(2)
       monitoring the pgpool port.It is reported in bug track #35.
 
       #35 Authentication is timeout
-      Reporter: tuomas 
+      Reporter: tuomas
       Date: 2012-11-20 11:54
       http://www.pgpool.net/mantisbt/view.php?id=35
 
 
       #45 LISTEN/NOTIFY doesn't work if cluster contains more then 1 node in
       streaming replication mode
-      Reporter: rpashin 
+      Reporter: rpashin
       Date: 2012-12-12 00:09
       http://www.pgpool.net/mantisbt/view.php?id=45
 
       before(so far, we have not heard any complaints on 3.1 or before).
 
     - Fix connect_inet_domain_socket_by_port() to call select(2) rather than
-      error out when connect(2) returns EINPROGESS or EALREADY error. 
+      error out when connect(2) returns EINPROGESS or EALREADY error.
       (Tatsuo Ishii)
 
       When using non-blocking socket, despite the errors like
       "Connection timed out", actually connection has been established.
       To solve the problem we should use select(2) to wait for connection
       establishing when connect(2) reports EINPROGRESS or EALREADY, instead
-      of doing a retry tight loop. 
+      of doing a retry tight loop.
 
       This problem is reported in bug track #46 by mcousin.
 
       #46 Watchdog failing to connect sometimes
-      Reporter: mcousin 
+      Reporter: mcousin
       Date: 2012-12-15 01:01
       http://www.pgpool.net/mantisbt/view.php?id=46
 
       Date: Mon, 12 Nov 2012 15:58:29 -0800
       http://www.sraoss.jp/pipermail/pgpool-general/2012-November/001198.html
 
-      Patch provided by chads in bug track #48. 
+      Patch provided by chads in bug track #48.
 
       pthread_detach is being used wrong; causes pgpool to segfault.
-      Reporter: chads 
+      Reporter: chads
       Date: 2013-01-16 05:44
       http://www.pgpool.net/mantisbt/view.php?id=48
 
 
     - Consider timeout waiting for compeletion of failback request in on line
       recovery (Tatsuo Ishii)
-    
+
       This will prevent the situation that recovery operation continues forever
       and we cannot even shutdown pgpool-II main process. This could happen
       especially while executing follow master command.
 
     - Fix bug with do_query which causes hung in extended protocol
       (Tatsuo Ishii)
-        
+
       This problem could occur when insert lock is enabled and
       pgpool_catalog.insert_lock exists, See [pgpool-general: 1684] for more
       details.
       deferred trigger.
 
     - Fix to register pgpool_regclass in pg_catalog schema (Tatsuo Ishii)
-    
+
       This is necessary to deal with clients which restricts schema search path
       to pg_catalog only. Postgres_fdw is such a client.
 
     - Fix a potential crash in pg_md5 command (Muhammad Usama)
-    
+
     - Fix a segmentation fault of a child process that occurs when a startup
       packet has no PostgreSQL user information (Yugo Nagata)
-    
+
       You can reproduce it by
-    
+
           $ psql -p 9999 -U ''
-    
+
       If enable_pool_hba is on, a child process terminates by segmentation
       fault. Otherwise if enable_pool_hba is off, the error message is
-    
+
           ERROR: pool_discard_cp: cannot get connection pool for user (null)
                  database (null)
-    
+
       In both cases, psql terminates with no message on frontend.
-    
+
       In the fixed version, if PostgreSQL user is not specified in startup packet,
       the message as following is output to both log and frontend. This is
       the same behavior as PostgreSQL.
-    
+
           FATAL: no PostgreSQL user name specified in startup packet
 
     - Move ssl_ca_cert and ssl_ca_cert_dir descriptions to the SSL section
       (Yugo Nagata)
 
     - Add ssl_ca_cert and ssl_ca_cert_dir descriptions to the japanese document
-      (Yugo Nagata)    
+      (Yugo Nagata)
 
     - Fix to verify the backend node number in pcp_recovery_node (Yugo Nagata)
-    
+
       When an invalid number is used, null value is passed as an arguments
       of recovery script, and this causes a malfunction. In especially,
       rsync may delete unrelated files in basebackup scripts.
 
     - Fix long standing bug with timestamp rewriting code for processing
       extended protocol. (Tatsuo Ishii)
-      
+
       Parse() allocate memory using palloc() while rewriting the parse
       message.  Problem is, the rewritten message was kept in the data which
       is managed by pool_create_sent_message() etc. The function assumes
       double free. To fix this, memory to store rewritten message is
       allocated using session context. The bug was there since pgpool-II 3.0
       was born.
-      
+
       Problem analysis and patch contributed by Naoya Anzai.
 
       [pgpoolgenera-jp: 1146]. (in Japanese)
       http://www.pgpool.net/pipermail/pgpool-general-jp/2013-March/001145.html
 
     - Fix bug with md5 auth long user name handling. (Tatsuo Ishii)
-      
+
       If user name is longer than 32 bytes, md5 authentication doesn't work.
       Problem reported in [pgpool-general: 1526] by Thomas Martin.
-      
+
       [pgpool-general: 1526]
       [pgPool-II 3.2.3] MD5 authentication and username longer than 32 characters.
       http://www.pgpool.net/pipermail/pgpool-general/2013-March/001551.html
 
     - Fix to calculate replication delay only if standby server is behind from
       the primay server. (Yugo Nagata)
-      
+
       When the primary server is behind from standby server, negative value of
       delay is calculated and the value is assigned to unsigned variable. It
       causes a log message informing negative replication delay. And what is
       worse, it also causes SELECT queries to be sent to the primary in load
       balance even though there are no replication delay in fact.
-      
+
       The problem is reported and analyzed by Saitoh Hidenori in
-      [pgpool-genera-jp: 1145]. 
-      
+      [pgpool-genera-jp: 1145].
+
       [pgpool-general-jp: 1145] (in Japanese)
       http://www.pgpool.net/pipermail/pgpool-general-jp/2013-March/001144.html
 
     - pgpool-recovery adopts PostgreSQL 9.3. (Tatsuo Ishii)
-    
+
       Patch contributed by Asif Rehman. Slight editing by Tatsuo Ishii.
 
-      [pgpool-hackers: 180] 
+      [pgpool-hackers: 180]
       compile error in ppool-recovery
       http://www.pgpool.net/pipermail/pgpool-hackers/2013-April/000179.html
 
     - Fix pool_has_pgpool_regclass() to check execute privilege of
       pgpool_regclass(). (Tatsuo Ishii)
-      
+
       Even though pgpool_regclass() exists, if pgpool cannot execute the
       function, the connection to backend hangs. You can reproduce the problem
       by just dropping  the execute privilege from pgpool_regclass and do some
       insert in native replication mode.
-      
+
       The problem is reported in bugtrack #53.
 
       #53 pgpool_regclas hangs all connections
-      Date:     2013-04-04 13:35 
+      Date:     2013-04-04 13:35
       Reporter: tmandke
       http://www.pgpool.net/mantisbt/view.php?id=53
 
       This problem is reported in bug track #32 (by oleg_myrk) etc.
 
       #32 PGPool hangs on pcp_attach/detach
-      Reporter: oleg_myrk 
+      Reporter: oleg_myrk
     \e$B!!\e(BDate: 2012-10-24 00:01
       http://www.pgpool.net/mantisbt/view.php?id=32
 
       monitoring the pgpool port.It is reported in bug track #35 by tuomas.
 
       #35 Authentication is timeout
-      Reporter: tuomas 
+      Reporter: tuomas
       Date: 2012-11-20 11:54
       http://www.pgpool.net/mantisbt/view.php?id=3
 
     - Remove unnecessary/confusing debug log from s_do_auth.(Tatsuo Ishii)
 
     - Fix inifinit loop in SSL mode. When there's pending data in SSL layer
-      of frontend, pool_process_query() checks pending data in backend. 
+      of frontend, pool_process_query() checks pending data in backend.
       (Tatsuo Ishii)
 
       If there's non, it loops again and checks frontend/backend receive buffer
 
     - Consider timeout waiting for compeletion of failback request in on line
       recovery (Tatsuo Ishii)
-    
+
       This will prevent the situation that recovery operation continues forever
       and we cannot even shutdown pgpool-II main process. This could happen
       especially while executing follow master command.
 
     - Fix bug with do_query which causes hung in extended protocol
       (Tatsuo Ishii)
-        
+
       This problem could occur when insert lock is enabled and
       pgpool_catalog.insert_lock exists, See [pgpool-general: 1684] for more
       details.
       deferred trigger.
 
     - Fix to register pgpool_regclass in pg_catalog schema (Tatsuo Ishii)
-    
+
       This is necessary to deal with clients which restricts schema search path
       to pg_catalog only. Postgres_fdw is such a client.
 
     - Fix a potential crash in pg_md5 command (Muhammad Usama)
-    
+
     - Fix a segmentation fault of a child process that occurs when a startup
       packet has no PostgreSQL user information (Yugo Nagata)
-    
+
       You can reproduce it by
-    
+
           $ psql -p 9999 -U ''
-    
+
       If enable_pool_hba is on, a child process terminates by segmentation
       fault. Otherwise if enable_pool_hba is off, the error message is
-    
+
           ERROR: pool_discard_cp: cannot get connection pool for user (null)
                  database (null)
-    
+
       In both cases, psql terminates with no message on frontend.
-    
+
       In the fixed version, if PostgreSQL user is not specified in startup packet,
       the message as following is output to both log and frontend. This is
       the same behavior as PostgreSQL.
-    
+
           FATAL: no PostgreSQL user name specified in startup packet
 
     - Move ssl_ca_cert and ssl_ca_cert_dir descriptions to the SSL section
       (Yugo Nagata)
 
     - Add ssl_ca_cert and ssl_ca_cert_dir descriptions to the japanese document
-      (Yugo Nagata)    
+      (Yugo Nagata)
 
     - Fix to verify the backend node number in pcp_recovery_node (Yugo Nagata)
-    
+
       When an invalid number is used, null value is passed as an arguments
       of recovery script, and this causes a malfunction. In especially,
       rsync may delete unrelated files in basebackup scripts.
 
     - Fix long standing bug with timestamp rewriting code for processing
       extended protocol. (Tatsuo Ishii)
-      
+
       Parse() allocate memory using palloc() while rewriting the parse
       message.  Problem is, the rewritten message was kept in the data which
       is managed by pool_create_sent_message() etc. The function assumes
       double free. To fix this, memory to store rewritten message is
       allocated using session context. The bug was there since pgpool-II 3.0
       was born.
-      
+
       Problem analysis and patch contributed by Naoya Anzai.
 
       [pgpoolgenera-jp: 1146]. (in Japanese)
       http://www.pgpool.net/pipermail/pgpool-general-jp/2013-March/001145.html
 
     - Fix bug with md5 auth long user name handling. (Tatsuo Ishii)
-      
+
       If user name is longer than 32 bytes, md5 authentication doesn't work.
       Problem reported in [pgpool-general: 1526] by Thomas Martin.
-      
+
       [pgpool-general: 1526]
       [pgPool-II 3.2.3] MD5 authentication and username longer than 32 characters.
       http://www.pgpool.net/pipermail/pgpool-general/2013-March/001551.html
 
     - Fix to calculate replication delay only if standby server is behind from
       the primay server. (Yugo Nagata)
-      
+
       When the primary server is behind from standby server, negative value of
       delay is calculated and the value is assigned to unsigned variable. It
       causes a log message informing negative replication delay. And what is
       worse, it also causes SELECT queries to be sent to the primary in load
       balance even though there are no replication delay in fact.
-      
+
       The problem is reported and analyzed by Saitoh Hidenori in
-      [pgpool-genera-jp: 1145]. 
-      
+      [pgpool-genera-jp: 1145].
+
       [pgpool-general-jp: 1145] (in Japanese)
       http://www.pgpool.net/pipermail/pgpool-general-jp/2013-March/001144.html
 
     - pgpool-recovery adopts PostgreSQL 9.3. (Tatsuo Ishii)
-    
+
       Patch contributed by Asif Rehman. Slight editing by Tatsuo Ishii.
 
-      [pgpool-hackers: 180] 
+      [pgpool-hackers: 180]
       compile error in ppool-recovery
       http://www.pgpool.net/pipermail/pgpool-hackers/2013-April/000179.html
 
     - Fix pool_has_pgpool_regclass() to check execute privilege of
       pgpool_regclass(). (Tatsuo Ishii)
-      
+
       Even though pgpool_regclass() exists, if pgpool cannot execute the
       function, the connection to backend hangs. You can reproduce the problem
       by just dropping  the execute privilege from pgpool_regclass and do some
       insert in native replication mode.
-      
+
       The problem is reported in bugtrack #53.
 
       #53 pgpool_regclas hangs all connections
-      Date:     2013-04-04 13:35 
+      Date:     2013-04-04 13:35
       Reporter: tmandke
       http://www.pgpool.net/mantisbt/view.php?id=53
 
 
     - Fix child_exit() to not call send_frontend_exits() if there's no
       connection pool. (Tatsuo Ishii)
-      
+
       Otherwise, it segfaults because send_frontend_exits() referes to objects
       pointed to by pool_connection_pool. Per bug track #44 by tuomas.
 
       #44 pgpool went haywire after slave shutdown triggering master failover
-      Reporter: tuomas 
+      Reporter: tuomas
       Date: 2012-12-11 00:33
       http://www.pgpool.net/mantisbt/view.php?id=44
 
       monitoring the pgpool port.It is reported in bug track #35 by tuomas.
 
       #35 Authentication is timeout
-      Reporter: tuomas 
+      Reporter: tuomas
       Date: 2012-11-20 11:54
       http://www.pgpool.net/mantisbt/view.php?id=35
 
     - Remove unnecessary/confusing debug log from s_do_auth.(Tatsuo Ishii)
 
     - Fix inifinit loop in SSL mode. When there's pending data in SSL layer
-      of frontend, pool_process_query() checks pending data in backend. 
+      of frontend, pool_process_query() checks pending data in backend.
       (Tatsuo Ishii)
 
       If there's non, it loops again and checks frontend/backend receive buffer
 * Incompatible changes
 
       - In streaming replication, if delay_threshold is 0 or health
-        checking is disabled, the delay checking is not performed. 
+        checking is disabled, the delay checking is not performed.
         This is the behaviour according to a description of the
         pgpool-II manual. But, so far the delay checking was performed
         even if health checking was disabled(Guillaume Lelarge)
 
       we check the buffer has any pending data by using SSL_pending() before
       calling select(2).
-      See thread [Pgpool-general] Fwd: PGPOOL II 2.3.3 hang in ssl mode for 
+      See thread [Pgpool-general] Fwd: PGPOOL II 2.3.3 hang in ssl mode for
       more details.
 
     - Fix bug with pcp_check_fd()'s timeout handling. (Tatsuo Ishii)
 
     - Make timestamp rewriting schema aware. (Tatsuo Ishii)
 
-    - Do not rewrite statement which accesses columns having now() etc. as the 
+    - Do not rewrite statement which accesses columns having now() etc. as the
       default value but the data type are not timestamp etc. (Tatsuo Ishii)
 
       Otherwise we have an error in DMLS. See:
 * Bug fixes
 
       - Fix occasional hangup in extend protocol + master/slave mode,
-        row mode or connection pool mode. Back patch from 2.3 
+        row mode or connection pool mode. Back patch from 2.3
         tree(Toshihiro Kitagawa)
 
       - Fix long standing bug since pgpool-II 1.0 which causes
         Noguer)
 
       - Do not force replication of DEALLOCATE if operated in
-        master/slave mode. Now that pgpool do not execute PARSE in all 
+        master/slave mode. Now that pgpool do not execute PARSE in all
         nodes, this was pointless and caused problem (kind mismatch
         when executing DEALLOCATE) (Tatsuo Ishii)
 
-      - Fix crash with show pool_status when there many (more than 18) 
+      - Fix crash with show pool_status when there many (more than 18)
         DB nodes(Tatsuo Ishii)
 
       - Enhance "kind mismatch" message. If kind is ERROR or NOTICE,
index 5d5716c495ebf74b28844f6814ea005de97b5f65..1febcba042c5492c28fa9586b0484e5de8327947 100644 (file)
@@ -124,7 +124,7 @@ See <a href="#restriction">Restrictions</a> for more details.</strong>
 <h1>License<a name="license"></a></h1>
 
 <p>
-Copyright (c) 2003-2013                PgPool Global Development Group
+Copyright (c) 2003-2013        PgPool Global Development Group
 
 Permission to use, copy, modify, and distribute this software and
 its documentation for any purpose and without fee is hereby
@@ -239,23 +239,23 @@ make install
     Without this, handling of duplicate table names in different schema
     might cause trouble (temporary tables aren't a problem).
     </p>
-       <p>
+    <p>
 <pre>
 cd pgpool-II-x.x.x/sql/pgpool-regclass
 make
 make install
 </pre>
-               </p>
-               <p>
+        </p>
+        <p>
 After this:
-               <p>
+        <p>
 <pre>
 psql -f pgpool-regclass.sql template1
 </pre>
-               </p>
-               <p>
+        </p>
+        <p>
 or
-               <p>
+        <p>
 <pre>
 psql template1
 CREATE EXTENSION pgpool_regclass;
@@ -877,12 +877,12 @@ local0.*    /var/log/pgpool.log
 <dt><a name="SEARCH_PRIMARY_NODE_TIMEOUT"></a>search_primary_node_timeout <span class="version">V3.3 -</span></dt>
     <dd>
     <p>The parameter specifies the maximum amount of time in seconds to search
-       for a primary node when a failover scenario occurs.
-       The default value for the parameter is 10.
-       pgpool-II will search for the primary node for the amount of time given in case of
-       failover before giving up trying to search for a primary node.
-       0 means keep trying forever.
-       This parameter will be ignored if running in other than streaming replication mode.
+    for a primary node when a failover scenario occurs.
+    The default value for the parameter is 10.
+    pgpool-II will search for the primary node for the amount of time given in case of
+    failover before giving up trying to search for a primary node.
+    0 means keep trying forever.
+    This parameter will be ignored if running in other than streaming replication mode.
     </p>
     <p>
     You need to reload pgpool.conf if you change search_primary_node_timeout.
@@ -3847,15 +3847,15 @@ watchdog adds the following features to pgpool-II.
     In heartbeat mode, watchdog monitors other pgpool-II processes by using heartbeat signal.
     Watchdog receives heartbeat signals sent by other pgpool-II periodically.
     If there are no signal for a certain period, watchdog regards this as failure of the pgpool-II.
-       For redundancy you can use multiple network connections for heartbeat exchange between pgpool-IIs.
-       This is the default mode and recommended.
+    For redundancy you can use multiple network connections for heartbeat exchange between pgpool-IIs.
+    This is the default mode and recommended.
     </li>
     <li>
     In query mode, watchdog monitors pgpool-II's service rather than process.
     watchdog sends queries to other pgpool-II and checks the response.
-       Note that this method requires connections from other pgpool-IIs, so it would fail motoring if
-       <a href="#NUM_INIT_CHILDREN">num_init_children </a>isn't large enough.
-       This mode is deprecated and left for backward compatibility.
+    Note that this method requires connections from other pgpool-IIs, so it would fail motoring if
+    <a href="#NUM_INIT_CHILDREN">num_init_children </a>isn't large enough.
+    This mode is deprecated and left for backward compatibility.
     </li>
     </ul>
     <p>
@@ -4030,7 +4030,7 @@ Configuration about virtual IP interface control
     Specifies the virtual IP address (VIP) of pgpool-II that is connected from
     client servers (application servers etc.).
     When a pgpool-II is switched from standby to active, the pgpool-II takes over this VIP.
-       If this option is emply, virtual IP is never brought up.
+    If this option is emply, virtual IP is never brought up.
     </p>
     <p>
     You need to restart pgpool-II if you change this value.
@@ -4224,10 +4224,10 @@ Configuration about virtual IP interface control
     <dd>
     <p>
     This option specifies the port number of destination of heartbeat signals
-       which is specified by <a href="HEARTBEAT_DESTINATION">heartbeat_destinationX</a>.
+    which is specified by <a href="HEARTBEAT_DESTINATION">heartbeat_destinationX</a>.
     This is usually the same value as <a href="WD_HEARTBEAT_PORT">wd_heartbeat_port</a>
     You must use another value if the port number is unusable on a certain host or
-       there are more than two pgpool-IIs in a host.
+    there are more than two pgpool-IIs in a host.
     The number at the end of the parameter name is referred as "destination number",
     and it starts from 0.
     This works only heartbeat mode.
@@ -4241,13 +4241,13 @@ Configuration about virtual IP interface control
     <dd>
     <p>
     This option specifies the network device name for sending heartbeat signals to
-       destination specified by <a href="HEARTBEAT_DESTINATION">heartbeat_destinationX</a>.
+    destination specified by <a href="HEARTBEAT_DESTINATION">heartbeat_destinationX</a>.
     You can use the same device for different distinations.
     The number at the end of the parameter name is referred as "destination number",
     and it starts from 0.
     This works only heartbeat mode.
-       In addition, this works only when pgpool-II has root privilege and are running on Linux,
-       because this uses SO_BINDTODEVICE socket option.
+    In addition, this works only when pgpool-II has root privilege and are running on Linux,
+    because this uses SO_BINDTODEVICE socket option.
     </p>
     <p>
     You need to restart pgpool-II if you change this value.
@@ -4901,6 +4901,8 @@ This does not apply to <a href="#memqcache">on memory query cache</a>. Cache inv
     <td>retrieves the number of nodes</td></tr>
 <tr><th><a href="#pcp_node_info">pcp_node_info</a></th>
     <td>retrieves the node information</td></tr>
+<tr><th><a href="#pcp_watchdog_info">pcp_watchdog_info</a></th>
+    <td>retrieves the watchdog information</td></tr>
 <tr><th><a href="#pcp_proc_count">pcp_proc_count</a></th>
     <td>retrieves the process list</td></tr>
 <tr><th><a href="#pcp_proc_info">pcp_proc_info</a></th>
@@ -5008,6 +5010,43 @@ Weight  : 0.5
 <p>Specifying an invalid node ID will result in an error with exit
 status 12, and BackendError will be displayed.</p>
 
+<h3><a name="pcp_watchdog_info"/></a>pcp_watchdog_info</h3>
+
+<pre>
+Format:
+pcp_watchdog_info  _timeout_  _host_  _port_  _userid_  _passwd_  [_watchdogid_]
+</pre>
+
+<p>
+Displays the watchdog status of the pgpool-II.
+_watchdogid_ is the index of other_pgpool_hostname parameter in pgpool.conf.
+If this is omitted, display the watchdog status of the pgpool-II specified by _host_:_port_.
+Here is an output example:
+</p>
+
+<pre>
+$ pcp_watchdog_info 10 localhost 9898 postgres hogehoge 0
+host1 9999 9000 2
+
+The result is in the following order:
+1. hostname
+2. port number for pgpool-II
+3. port number for watchdog
+4. watchdog Status
+
+Status is represented by a digit from [1 to 4].
+1 - watchdog is not started
+2 - Standby: not holding the virtual IP
+3 - Active: holding the virtual IP
+4 - Down
+</pre>
+<p>
+The load balance weight is displayed in normalized format.
+</p>
+
+<p>Specifying an invalid watchdog ID will result in an error with exit
+status 12, and BackendError will be displayed.</p>
+
 <h3 id="pcp_proc_count">pcp_proc_count</h3>
 <p>
 <pre>
index 681ff61743c4f4adc535ed8cf0fad62182edde22..64332bbba14aaee380c972bf75803a9037131b52 100644 (file)
@@ -132,7 +132,7 @@ pgpool-IIの機能が利用できます。
 <h1>License<a name="license"></a></h1>
 
 <p>
-Copyright (c) 2003-2013                PgPool Global Development Group
+Copyright (c) 2003-2013        PgPool Global Development Group
 
 Permission to use, copy, modify, and distribute this software and
 its documentation for any purpose and without fee is hereby
@@ -260,23 +260,23 @@ cd pgpool-II-x.x.x/sql/pgpool-regclass
 make
 make install
 </pre>
-               <p>
+        <p>
 この後に以下か、
-               <p>
+        <p>
 <pre>
 psql -f pgpool-regclass.sql template1
 </pre>
-               </p>
-               <p>
+        </p>
+        <p>
 または
-               <p>
+        <p>
 <pre>
 psql template1
 CREATE EXTENSION pgpool_regclass;
 </pre>
-               <p>
+        <p>
 を実行します。
-               </p>
+        </p>
     <p>
     pgpool-regclass.sqlまたはCREATE EXTENSIONの実行は、pgpool-II経由で利用するデータベース毎に必要になります。
     ただし、template1データベースに対して"psql -f pgpool-regclass.sql template1"またはCREATE EXTENSIONを実行後に作成されたデータベースでは、新たにpgpool-regclass.sqlまたはCREATE EXTENSIONを実行する必要はありません。
@@ -902,19 +902,19 @@ local0.*    /var/log/pgpool.log
     </p>
     </dd>
 
-       <dt><a name="SEARCH_PRIMARY_NODE_TIMEOUT"></a>search_primary_node_timeout <span class="version">V3.3 -</span></dt>
+    <dt><a name="SEARCH_PRIMARY_NODE_TIMEOUT"></a>search_primary_node_timeout <span class="version">V3.3 -</span></dt>
     <dd>
     <p>このパラメータはフェイルオーバーが起きた時にプライマリノードを検索する際のタイムアウト時間を秒単位で指定します。
-               デフォルト値は10です。
-               pgpool-IIは、フェイルオーバの際にここで指定した時間プライマリノードを検索し続けます。
-               0を指定すると、永久に検索し続けます。
-               このパラメータはストリーミングレプリケーションモードで運用している場合以外は無視されます。
+        デフォルト値は10です。
+        pgpool-IIは、フェイルオーバの際にここで指定した時間プライマリノードを検索し続けます。
+        0を指定すると、永久に検索し続けます。
+        このパラメータはストリーミングレプリケーションモードで運用している場合以外は無視されます。
     </p>
     <p>
-       search_primary_node_timeoutを変更した場合は、pgpool.confの再読込が必要です。
+    search_primary_node_timeoutを変更した場合は、pgpool.confの再読込が必要です。
     </p>
     </dd>
-               
+        
 </dl>
 
 <h3>Failover and failback</h3>
@@ -1211,30 +1211,30 @@ local0.*    /var/log/pgpool.log
 <dt><a name="SSL_CA_CERT"></a>ssl_ca_cert</dt>
     <dd>
     <p>
-       1 つ以上の CA ルート証明書を格納している PEM 形式ファイルのパスを指定します。
-       このファイルはバックエンドサーバ証明書の検証に用いられます。
-       このオプションは OpenSSL の <code>verify(1)</code> コマンドにおける <code>-CAfile</code> オプションと同様の機能を提供します。
+    1 つ以上の CA ルート証明書を格納している PEM 形式ファイルのパスを指定します。
+    このファイルはバックエンドサーバ証明書の検証に用いられます。
+    このオプションは OpenSSL の <code>verify(1)</code> コマンドにおける <code>-CAfile</code> オプションと同様の機能を提供します。
     </p>
 
     <p>
-       デフォルトでは値が設定されておらず検証は行われません。
-       このオプションが設定されていない場合においても、<code>ssl_ca_cert_dir</code> オプション
-       が設定されている場合には検証が行われます。
+    デフォルトでは値が設定されておらず検証は行われません。
+    このオプションが設定されていない場合においても、<code>ssl_ca_cert_dir</code> オプション
+    が設定されている場合には検証が行われます。
     </p>
     </dd>
 
 <dt><a name="SSL_CA_CERT_DIR"></a>ssl_ca_cert_dir</dt>
     <dd>
     <p>
-       PEM 形式の CA 証明書ファイルを格納しているディレクトリのパスを指定します。
-       これらのファイルはバックエンドサーバ認証の検証に用いられます。
-       このオプションは OpenSSL の <code>verify(1)</code> コマンドにおける <code>-CApath</code> オプションと同様の機能を提供します。
+    PEM 形式の CA 証明書ファイルを格納しているディレクトリのパスを指定します。
+    これらのファイルはバックエンドサーバ認証の検証に用いられます。
+    このオプションは OpenSSL の <code>verify(1)</code> コマンドにおける <code>-CApath</code> オプションと同様の機能を提供します。
     </p>
 
     <p>
-       デフォルトでは値が設定されておらず検証は行われません。
-       このオプションが設定されていない場合においても、<code>ssl_ca_cert</code> オプション
-       が設定されている場合には検証が行われます。
+    デフォルトでは値が設定されておらず検証は行われません。
+    このオプションが設定されていない場合においても、<code>ssl_ca_cert</code> オプション
+    が設定されている場合には検証が行われます。
     </p>
     </dd>
 
@@ -3984,14 +3984,14 @@ watchdog は以下の機能を提供します。
 <li>
     ハートビートモードでは、watchdog はハートビート信号を用いて 他の pgpool-II プロセスの死活監視を行います。
     watchdog は、他の pgpool-II の watchdog より定期的に送られるハートビート信号を受け取り、これが一定期間以上途切れた場合には当該 pgpool-II プロセスに障害が発生したと判断します。
-       冗長性を高めるために、複数のネットワークを用いたハートビート交換が可能です。
-       デフォルトではこのモードで動作し、これが推奨設定です。
+    冗長性を高めるために、複数のネットワークを用いたハートビート交換が可能です。
+    デフォルトではこのモードで動作し、これが推奨設定です。
     </li>
 <li>
     クエリモードでは、watchdog は pgpool-II のプロセスではなく「サービス」の応答を監視します。
     このモードでは、監視対象の pgpool-II にクエリを発行しその応答をチェックします。
-       この方法では他の pgpool-II から接続を受ける必要があるため、<a href="NUM_INIT_CHILDREN">num_init_children</a> が十分大きくない場合には監視が失敗する場合があることに注意してください。
-       これは非推奨の監視方法であり、下位互換のために残されています。
+    この方法では他の pgpool-II から接続を受ける必要があるため、<a href="NUM_INIT_CHILDREN">num_init_children</a> が十分大きくない場合には監視が失敗する場合があることに注意してください。
+    これは非推奨の監視方法であり、下位互換のために残されています。
     </li>
 </ul>
     <p>
@@ -4356,7 +4356,7 @@ pgpool-II が生きていて PostgreSQL と繋がっている場合でも、
     <dd>
     <p>
     ハートビート信号の送り先を、ホスト名か IP で指定します。
-       複数の送り先が指定可能です。
+    複数の送り先が指定可能です。
     数値の部分は送り先の番号です。0 からの連番にします。
     ハートビートモードの場合のみ有効です。
     </p>
@@ -4386,7 +4386,7 @@ pgpool-II が生きていて PostgreSQL と繋がっている場合でも、
     数値の部分は送り先の番号です。デバイス毎に 0 からの連番にします。
     複数の異なる送り先に同じデバイスを設定することが可能です。
     ハートビートモードの場合のみ有効です。
-       また、SO_BINDTODEVICE ソケットオプションを使用しているため、pgpool-II が Linux で root 権限で起動している場合のみ有効です。
+    また、SO_BINDTODEVICE ソケットオプションを使用しているため、pgpool-II が Linux で root 権限で起動している場合のみ有効です。
     </p>
     <p>
     このパラメータを変更した時には pgpool-II を再起動してください。
@@ -5059,6 +5059,8 @@ pgpool-IIを操作するUNIXコマンドとして、以下のものがありま
     <td>ノード数を取得する</td></tr>
 <tr><th><a href="#pcp_node_info">pcp_node_info</a></th>
     <td>ノード情報を取得する</td></tr>
+<tr><th><a href="#pcp_watchdog_info">pcp_watchdog_info</a></th>
+    <td>watchdog 情報を取得する <span class="version">V3.3 ~</span></td></tr>
 <tr><th><a href="#pcp_proc_count">pcp_proc_count</a></th>
     <td>プロセス一覧を取得する</td></tr>
 <tr><th><a href="#pcp_proc_info">pcp_proc_info</a></th>
@@ -5159,6 +5161,39 @@ host1 5432 1 1073741823.500000
 定義されていないノードIDを指定するとBackendErrorと表示され、終了コード12で終了します。
 </p>
 
+<h3><a name="pcp_watchdog_info"></a>pcp_watchdog_info</h3>
+<pre>
+書式:
+pcp_watchdog_info  _timeout_  _host_  _port_  _userid_  _passwd_  [_watchdogid_]
+</pre>
+
+<p>
+pgpool-IIの pgpool.conf の watchdog セクションで定義された pgpool-II の watchdog ステータスを表示します。
+_watchdogid_ は other_pgpool_hostname パラメータの添字です。省略された場合には、_host_:_port_ で動作している
+pgpool-II の watchdog ステータスが表示されます。出力結果は以下の例の通りです。
+</p>
+
+<pre>
+ex)
+$ pcp_watchdog_info 10 localhost 9898 postgres hogehoge 0
+host1 9999 9000 2
+
+結果は以下の順の通りです。
+1. pgpool-II のホスト名
+2. pgpool-II ポート番号
+3. watchdog ポート番号
+4. watchdog ステータス
+
+ステータスは[1..4]までの数字で表わされます。各数字の意味は:
+1 - 初期化時のみに表われる。指定された pgpool-II が未起動の場合に表示される。
+2 - スタンバイ: 仮想 IP を保持していない
+3 - アクティブ: 仮想 IP を保持している
+4 - ダウン
+</pre>
+
+<p>
+定義されていない watchdog IDを指定するとBackendErrorと表示され、終了コード12で終了します。
+</p>
 
 <h3 id="pcp_proc_count">pcp_proc_count</h3>
 <p>
@@ -5732,9 +5767,9 @@ SELECTの最終実行ステータスとパフォーマンスのおおよその
 <p> 以下は全て watchdog に関する変更です。詳細は以下の<a href="3.3_new_features">新機能</a>の項目を参照してください。</p>
 
 <ul>
-         <li>デフォルトの監視方法がクエリモードからハートビートモードに変更されました。</li>
+      <li>デフォルトの監視方法がクエリモードからハートビートモードに変更されました。</li>
 
-         <li>failover/failback コマンドが1つの pgpool-II でのみ実行されるようになりました。</li>
+      <li>failover/failback コマンドが1つの pgpool-II でのみ実行されるようになりました。</li>
 
       <li>デフォルトで、アクティブ pgpool-II への昇格時には共有メモリ内のクエリキャッシュを全て削除するようになりました。</li>
 
@@ -5756,15 +5791,15 @@ SELECTの最終実行ステータスとパフォーマンスのおおよその
 ハートビートモードは今回新しく追加された方法です。
     このモードでは、watchdog はハートビート信号を用いて 他の pgpool-II プロセスの死活監視を行います。
     watchdog は、他の pgpool-II の watchdog より定期的に送られるハートビート信号を受け取り、これが一定期間以上途切れた場合にはその pgpool-II プロセスに障害が発生したと判断します。
-       冗長性を高めるため、複数のネットワーク用いたハートビート交換が可能です。
-       デフォルトではこのモードで動作し、これが推奨設定です。
+    冗長性を高めるため、複数のネットワーク用いたハートビート交換が可能です。
+    デフォルトではこのモードで動作し、これが推奨設定です。
 </p>
 <p>
 
     クエリモードでは従来と同じ動作になります。このモードではwatchdog は pgpool-II のプロセスではなく「サービス」の応答を監視します。
     このモードでは、監視対象の pgpool-II にクエリを発行しその応答をチェックします。
-       この方法では他の pgpool-II から接続を受ける必要があるため、<a href="#NUM_INIT_CHILDREN">num_init_children</a> が十分大きくない場合には監視が失敗する場合があることに注意してください。
-       これは非推奨の監視方法であり、下位互換のために残されています。
+    この方法では他の pgpool-II から接続を受ける必要があるため、<a href="#NUM_INIT_CHILDREN">num_init_children</a> が十分大きくない場合には監視が失敗する場合があることに注意してください。
+    これは非推奨の監視方法であり、下位互換のために残されています。
 </p>
 <ul>
 <p>
@@ -5820,7 +5855,7 @@ watchdog で複数の pgpool-II を連携した場合、failover/failback コマ
 <dt>wd_lifeccheck_dbname, wd_lifecheck_user, wd_lifecheck_password パラメータを追加しました。(Yugo Nagata)
 </dt>
 <dd>
-<p> 
+<p>
 これらのパラメータは、クエリモードで監視の際に使用するデータベース名、ユーザ名、パスワードを提要します。以前はそれぞれ templat1, recovery_user, recovery_password が使われていました。
 </p>
 </dd>
@@ -5833,6 +5868,14 @@ watchdog で複数の pgpool-II を連携した場合、failover/failback コマ
 </p>
 </dd>
 
+<dt>pcp_watchdog_info コマンドを追加しました。(Yugo Nagata)
+</dt>
+<dd>
+<p>
+これは watchdog ステータスを取得する pcp コマンドです。
+</p>
+</dd>
+
 </dl>
 </li>
 <li>その他
@@ -5852,10 +5895,10 @@ pgpool_setup を追加しました。(Tatsuo Ishii)</dt>
 </p>
 <pre>
  usage: pgpool_setup [-m r|s][-n num_clusters][--no-stop]
-   -m s: ストリームレプリケーションモードで構築(デフォルト) 
+   -m s: ストリームレプリケーションモードで構築(デフォルト)
    -m r: ネイティブレプリケーションモードで構築
    -n num_clusters: num_clusters 台で PostgreSQL データベースクラスタノードを作成
-   --no-stop: セットアップ終了後に pgpool-II, PostgreSQL を終了しない 
+   --no-stop: セットアップ終了後に pgpool-II, PostgreSQL を終了しない
 </pre>
 </dd>
 
@@ -5892,7 +5935,7 @@ pgpool_setup を追加しました。(Tatsuo Ishii)</dt>
 <dd>
 <p>
 getsources.sh を実行することで作成された work/installer に RPM ファイルをコピーし、
-このディレクトリを tar ボールで固めたものがインストーラパッケージとなります。 
+このディレクトリを tar ボールで固めたものがインストーラパッケージとなります。
 このインストーラは、RPM をインストールするだけではなく、postgresql.conf, pgpool.conf, pg_hba.conf
 recovery.conf, ファイルオーバやオンラインリカバリ用のスクリプトの設定も行います。
 </p>
@@ -6324,7 +6367,7 @@ connect_inet_domain_socket_by_port() で alarm 割り込み時を受けた時に
 md5認証で長いユーザ名を処理する際のバグを修正しました。(Tatsuo Ishii)
 <p>
   ユーザ名が 32 バイトより長い場合、md5 認証が動作していませんでした。
-  この問題は [pgpool-general: 1526] で Thomas Martin さんにより報告されました。    
+  この問題は [pgpool-general: 1526] で Thomas Martin さんにより報告されました。
 </p>
 <blockquote>
   [pgpool-general: 1526]<br />
@@ -6392,8 +6435,8 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 
 <li>detect_postmaster_down_error() のエラーメッセージを修正しました。(Tatsuo Ishii)
 <p>
-  例えば、"LOG: detect_stop_postmaster_error: detect_error error" を 
-  "LOG: detect_postmaster_down_error: detect_error error" に修正するなどです。 
+  例えば、"LOG: detect_stop_postmaster_error: detect_error error" を
+  "LOG: detect_postmaster_down_error: detect_error error" に修正するなどです。
 </p>
 </li>
 
@@ -7387,7 +7430,7 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 
 <li>チュートリアル</li>
 <p><a href="#memqcache">オンメモリクエリキャッシュ</a> と <a href="#watchdog">Watchdog 機能</a>
-   のチュートリアルを作成しました。(Nozomi Anzai)</p> 
+   のチュートリアルを作成しました。(Nozomi Anzai)</p>
 
 </ul>
 
@@ -7844,7 +7887,7 @@ pcp_recovery_node コマンドで、バックエンドノード番号をチェ
 md5認証で長いユーザ名を処理する際のバグを修正しました。(Tatsuo Ishii)
 <p>
   ユーザ名が 32 バイトより長い場合、md5 認証が動作していませんでした。
-  この問題は [pgpool-general: 1526] で Thomas Martin さんにより報告されました。    
+  この問題は [pgpool-general: 1526] で Thomas Martin さんにより報告されました。
 </p>
 <blockquote>
   [pgpool-general: 1526]<br />
@@ -7912,8 +7955,8 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 
 <li>detect_postmaster_down_error() のエラーメッセージを修正しました。(Tatsuo Ishii)
 <p>
-  例えば、"LOG: detect_stop_postmaster_error: detect_error error" を 
-  "LOG: detect_postmaster_down_error: detect_error error" に修正するなどです。 
+  例えば、"LOG: detect_stop_postmaster_error: detect_error error" を
+  "LOG: detect_postmaster_down_error: detect_error error" に修正するなどです。
 </p>
 </li>
 
@@ -8048,7 +8091,7 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 
 <li>watchdog のポート番号が既に使用されていた場合にエラーメッセージを出力するよう修正しました。
   (Yugo Nagata)
-<p> 
+<p>
   この問題は [pgpool-general: 1167] で Will Ferguson さんによって報告されました。
 </p>
 <blockquote>
@@ -8823,7 +8866,7 @@ pcp_recovery_node コマンドで、バックエンドノード番号をチェ
 md5認証で長いユーザ名を処理する際のバグを修正しました。(Tatsuo Ishii)
 <p>
   ユーザ名が 32 バイトより長い場合、md5 認証が動作していませんでした。
-  この問題は [pgpool-general: 1526] で Thomas Martin さんにより報告されました。    
+  この問題は [pgpool-general: 1526] で Thomas Martin さんにより報告されました。
 </p>
 <blockquote>
   [pgpool-general: 1526]<br />
@@ -8891,8 +8934,8 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 
 <li>detect_postmaster_down_error() のエラーメッセージを修正しました。(Tatsuo Ishii)
 <p>
-  例えば、"LOG: detect_stop_postmaster_error: detect_error error" を 
-  "LOG: detect_postmaster_down_error: detect_error error" に修正するなどです。 
+  例えば、"LOG: detect_stop_postmaster_error: detect_error error" を
+  "LOG: detect_postmaster_down_error: detect_error error" に修正するなどです。
 </p>
 </li>
 
@@ -8990,7 +9033,7 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 </p>
 </li>
 
-<li>ストリーミングレプリケーションモードでレプリケーション遅延が大きくなったときに、 
+<li>ストリーミングレプリケーションモードでレプリケーション遅延が大きくなったときに、
   "portal not found" エラーが発生するバグを修正しました。 (Tatsuo Ishii)
 <p>
   これは delay_threshold が導入以来、ずっと存在していたバグです。
@@ -9006,9 +9049,9 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 
 <li>pg_md5 で、ユーザからのパスワード入力の後には改行するように修正しました。 (Yugo Nagata)</li>
 
-<li>watchdog のポート番号が既に使用されていた場合にエラーメッセージを出力するよう修正しました。 
+<li>watchdog のポート番号が既に使用されていた場合にエラーメッセージを出力するよう修正しました。
   (Yugo Nagata)
-<p> 
+<p>
   この問題は [pgpool-general: 1167] で Will Ferguson さんによって報告されました。
 </p>
 <blockquote>
@@ -9038,12 +9081,12 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 <li>pool_read() が不正なパケットを読み込んだ場合に、read_startup_packet() がアラームクロック
   をリセットして StartupPacket を解放するよう修正しました。 (Nozomi Anzai)
 <p>
-  修正前は、pgpool ポートの監視を行うプログラムの接続により、認証のタイムアウトが発生していました。 
+  修正前は、pgpool ポートの監視を行うプログラムの接続により、認証のタイムアウトが発生していました。
   この問題は、バグトラック #35 で報告されました。
 </p>
 <blockquote>
   #35 Authentication is timeout<br />
-  Reporter: tuomas 
+  Reporter: tuomas
   Date: 2012-11-20 11:54
   <a href="http://www.pgpool.net/mantisbt/view.php?id=35">
   http://www.pgpool.net/mantisbt/view.php?id=35</a>
@@ -9054,7 +9097,7 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 <p>
   このポインタは事前に memset() によって初期化されているため、実際にはこのバグによる害は
   ありませんでした。
-</p>    
+</p>
 </li>
 
 <li>ヘルプメッセージに -f オプションの説明を追加しました。 (Tatsuo Ishii)</li>
@@ -9307,7 +9350,7 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 <h3>バグ修正</h3>
 <p>
 </p><ul>
- <li>pgpool-regclass()をPostgreSQL 8.0以降でコンパイルできるように修正しました。7.4はまだエラーが出ます(Tatsuo Ishii) 
+ <li>pgpool-regclass()をPostgreSQL 8.0以降でコンパイルできるように修正しました。7.4はまだエラーが出ます(Tatsuo Ishii)
  </li><li>ストリーミングレプリケーション構成で/*NO LOAD BALANCE*/コメントを使用したときに
     ハングアップする可能性を修正しました(Toshihiro Kitagawa)
  </li><li>Flush(H)メッセージやCloseComplete(C)メッセージを受信したときのハングアップを修正しました(Toshihiro Kitagawa)
@@ -10294,7 +10337,7 @@ S: &lt;-- ok since no previous SELECT is sent. kind mismatch error occurs!
 <h2>2.0.1 (hikitsuboshi) 2007/11/21</h2>
 <ul>
   <li> UPDATE もしくは DELETE を実行するとプロセスがダウンする不具合を
-       修正しました。(Yoshiyuki Asaba) 
+       修正しました。(Yoshiyuki Asaba)
   </li><li> <a href="#MASTER_SLAVE_MODE">master_slave</a> を true に設定している場合に、SQL 構文エラーを検知
        した時にマスタにのみそのクエリを送信するようにしました。(Yoshiyuki Asaba)
 </li></ul>
@@ -10354,7 +10397,7 @@ HINT:  check data consistency between master and other db node
   <li> 新しく <a href="AUTHENTICATION_TIMEOUT">authentication_timeout</a> という
        パラメータを追加しました。(Yoshiyuki Asaba)
     <ul>
-     <li>このパラメータでは認証時間のタイムアウトを設定します。 
+     <li>このパラメータでは認証時間のタイムアウトを設定します。
      </li><li>デフォルト値は 60 (1 分)です。
    </li></ul>
   </li><li> スタートアップパケットの長さが 10000 バイト越えている場合には、接続を切断するようにしました。(Yoshiyuki Asaba)