/*
 * configuration parameters
 */
typedef struct {
    char *listen_addresses;            /* hostnames/IP addresses to listen on */
    int    port;                        /* port # to bind */
    char *pcp_listen_addresses;        /* PCP listen address to listen on */
    int pcp_port;                    /* PCP port # to bind */
    char *socket_dir;                /* pgpool socket directory */
    char *wd_ipc_socket_dir;        /* watchdog command IPC socket directory */
    char *pcp_socket_dir;            /* PCP socket directory */
    int    num_init_children;            /* # of children initially pre-forked */
    int    listen_backlog_multiplier;    /* determines the size of the connection queue */
    bool serialize_accept;            /* if non 0, serialize call to accept() to avoid thundering herd problem */
    int    child_life_time;            /* if idle for this seconds, child exits */
    int    connection_life_time;        /* if idle for this seconds, connection closes */
    int    child_max_connections;        /* if max_connections received, child exits */
    int client_idle_limit;            /* If client_idle_limit is n (n > 0), the client is forced to be
                                     *disconnected after n seconds idle */
    int authentication_timeout;        /* maximum time in seconds to complete client authentication */
    int    max_pool;                    /* max # of connection pool per child */
    char *logdir;                    /* logging directory */
    char *log_destination;            /* log destination: stderr or syslog */
    int syslog_facility;            /* syslog facility: LOCAL0, LOCAL1, ... */
    char *syslog_ident;                /* syslog ident string: pgpool */
    char *pid_file_name;            /* pid file name */
    bool replication_mode;            /* replication mode */
    bool log_connections;            /* logs incoming connections */
    bool log_hostname;                /* resolve hostname */
    bool enable_pool_hba;            /* enables pool_hba.conf file authentication */
    char *pool_passwd;                /* pool_passwd file name. "" disables pool_passwd */
    bool load_balance_mode;            /* load balance mode */

bool replication_stop_on_mismatch;    /* if there's a data mismatch between master and secondary
                                         * start degeneration to stop replication mode
                                         */
    bool failover_if_affected_tuples_mismatch;    /* If there's a disagreement with the number of affected tuples in
                                                 * UPDATE/DELETE, then degenerate the node which is most likely
                                                 * "minority".  # If false, just abort the transaction to keep the
                                                 * consistency.
                                                 */
    bool replicate_select;            /* replicate SELECT statement when load balancing is disabled. */
    char **reset_query_list;        /* comma separated list of queries to be issued at the end of session */
    char **white_function_list;        /* list of functions with no side effects */
    char **black_function_list;        /* list of functions with side effects */
    char *log_line_prefix;            /* printf-style string to output at beginning of each log line */
    int log_error_verbosity;        /* controls how much detail about error should be emitted */
    int client_min_messages;        /* controls which message should be sent to client */
    int log_min_messages;            /* controls which message should be emitted to server log */
    bool master_slave_mode;            /* operate in master/slave mode */
    MasterSlaveSubModes master_slave_sub_mode;        /* either "slony" or "stream" */
    int64 delay_threshold;            /* If the standby server delays more than delay_threshold,
                                     * any query goes to the primary only. The unit is in bytes.
                                     * 0 disables the check. Default is 0.
                                     * Note that health_check_period required to be greater than 0
                                     * to enable the functionality.
                                     */
    LogStandbyDelayModes log_standby_delay;    /* how to log standby lag */
    bool connection_cache;                    /* cache connection pool? */
    int health_check_timeout;                /* health check timeout */
    int health_check_period;                /* health check period */
    char *health_check_user;                /* PostgreSQL user name for health check */
    char *health_check_password;            /* password for health check username */
    char *health_check_database;            /* database name for health check username */
    int health_check_max_retries;            /* health check max retries */
    int health_check_retry_delay;            /* amount of time to wait between retries */
    int connect_timeout;                    /* timeout value before giving up connecting to backend */
    int sr_check_period;                    /* streaming replication check period */
    char *sr_check_user;                    /* PostgreSQL user name for streaming replication check */
    char *sr_check_password;                /* password for sr_check_user */
    char *sr_check_database;                /* PostgreSQL database name for streaming replication check */
    char *failover_command;                    /* execute command when failover happens */
    char *follow_master_command;            /* execute command when failover is ended */
    char *failback_command;                    /* execute command when failback happens */

bool    fail_over_on_backend_error;        /* If true, trigger fail over when writing to the backend
                                             * communication socket fails. This is the same behavior of
                                             * pgpool-II 2.2.x or earlier. If set to false, pgpool will report
                                             * an error and disconnect the session.
                                             */

char *recovery_user;                    /* PostgreSQL user name for online recovery */
    char *recovery_password;                /* PostgreSQL user password for online recovery */
    char *recovery_1st_stage_command;        /* Online recovery command in 1st stage */
    char *recovery_2nd_stage_command;        /* Online recovery command in 2nd stage */
    int recovery_timeout;                    /* maximum time in seconds to wait for remote start-up */
    int search_primary_node_timeout;        /* maximum time in seconds to search for new primary
                                             * node after failover
                                             */
    int client_idle_limit_in_recovery;        /* If > 0, the client is forced to be
                                             *  disconnected after n seconds idle
                                             *  This parameter is only valid while in recovery 2nd stage
                                             */
    bool insert_lock;                        /* automatically locking of table with INSERT to keep SERIAL data consistency?
                                             */
    bool ignore_leading_white_space;        /* ignore leading white spaces of each query */
     bool log_statement;                        /* logs all SQL statements */
     bool log_per_node_statement;            /* logs per node detailed SQL statements */
    char *lobj_lock_table;                    /* table name to lock for rewriting lo_creat */

int debug_level;                        /* debug message verbosity level.
                                             * 0: no message, 1 <= : more verbose
                                              */

BackendDesc *backend_desc;                /* PostgreSQL Server description. Placed on shared memory */

LOAD_BALANCE_STATUS    load_balance_status[MAX_NUM_BACKENDS];    /* to remember which DB node is selected for load balancing */

/* followings till syslog, does not exist in the configuration file */
    int num_reset_queries;                    /* number of queries in reset_query_list */
    int num_white_function_list;            /* number of functions in white_function_list */
    int num_black_function_list;            /* number of functions in black_function_list */
    int num_white_memqcache_table_list;        /* number of functions in white_memqcache_table_list */
    int num_black_memqcache_table_list;        /* number of functions in black_memqcache_table_list */
    int num_wd_monitoring_interfaces_list;  /* number of items in wd_monitoring_interfaces_list */
    int logsyslog;                            /* flag used to start logging to syslog */

/* ssl configuration */
    bool ssl;                                /* if non 0, activate ssl support (frontend+backend) */
    char *ssl_cert;                            /* path to ssl certificate (frontend only) */
    char *ssl_key;                            /* path to ssl key (frontend only) */
    char *ssl_ca_cert;                        /* path to root (CA) certificate */
    char *ssl_ca_cert_dir;                    /* path to directory containing CA certificates */

int64 relcache_expire;                    /* relation cache life time in seconds */
    int relcache_size;                        /* number of relation cache life entry */
    bool check_temp_table;                    /* enable temporary table check */
    bool check_unlogged_table;                /* enable unlogged table check */

/* followings are for regex support and do not exist in the configuration file */
    RegPattern *lists_patterns;                /* Precompiled regex patterns for black/white lists */
    int pattc;                                /* number of regexp pattern */
    int current_pattern_size;                /* size of the regex pattern array */

bool memory_cache_enabled;                /* if true, use the memory cache functionality, false by default */
    MemCacheMethod memqcache_method;        /* Cache store method. Either 'shmem'(shared memory) or 'memcached'. 'shmem' by default */
    char *memqcache_memcached_host;            /* Memcached host name. Mandatory if memqcache_method=memcached. */
    int memqcache_memcached_port;            /* Memcached port number. Mandatory if memqcache_method=memcached. */
    int64 memqcache_total_size;                /* Total memory size in bytes for storing memory cache. Mandatory if memqcache_method=shmem. */
    int memqcache_max_num_cache;            /* Total number of cache entries. Mandatory if memqcache_method=shmem. */
    int memqcache_expire;                    /* Memory cache entry life time specified in seconds. 60 by default. */
    bool memqcache_auto_cache_invalidation; /* If true, invalidation of query cache is triggered by corresponding */
                                            /* DDL/DML/DCL(and memqcache_expire).  If false, it is only triggered */
                                            /* by memqcache_expire.  True by default. */
    int memqcache_maxcache;                    /* Maximum SELECT result size in bytes. */
    int memqcache_cache_block_size;            /* Cache block size in bytes. 8192 by default */
    char *memqcache_oiddir;                    /* Temporary work directory to record table oids */
    char **white_memqcache_table_list;        /* list of tables to memqcache */
    char **black_memqcache_table_list;        /* list of tables not to memqcache */

RegPattern *lists_memqcache_table_patterns; /* Precompiled regex patterns for black/white lists */
    int memqcache_table_pattc;                    /* number of regexp pattern */
    int current_memqcache_table_pattern_size;    /* size of the regex pattern array */

/*
     * database_redirect_preference_list = 'postgres:primary,mydb[0-4]:1,mydb[5-9]:2'
     */
    char *database_redirect_preference_list;    /* raw string in pgpool.conf */
    RegArray *redirect_dbnames;                    /* Precompiled regex patterns for db prefrence list */
    Left_right_tokens *db_redirect_tokens;        /* db redirect for dbname and node string */

/*
     * app_name_redirect_preference_list = 'psql:primary,myapp[0-4]:1,myapp[5-9]:standby'
     */
    char *app_name_redirect_preference_list;    /* raw string in pgpool.conf */
    RegArray *redirect_app_names;                /* Precompiled regex patterns for app name prefrence list */
    Left_right_tokens *app_name_redirect_tokens;/* app name redirect for app_name and node string */

bool allow_sql_comments;        /* if on, ignore SQL comments when judging if load balance or query cache
                                     * is possible. If off, SQL comments effectively prevent the judgment
                                     * (pre 3.4 behavior). For backward compatibilty sake, default is off.
                                     */
    /*
     * add for watchdog
     */
    bool use_watchdog;                        /* Enables watchdog */
    WdLifeCheckMethod wd_lifecheck_method;    /* method of lifecheck. 'heartbeat' or 'query' */
    bool clear_memqcache_on_escalation;        /* Clear query cache on shmem when escalating ?*/
    char *wd_escalation_command;            /* Executes this command at escalation on new active pgpool.*/
    char *wd_de_escalation_command;            /* Executes this command when master pgpool goes down.*/
    char *wd_hostname;                        /* watchdog hostname */
    int wd_port;                            /* watchdog port */
    int wd_priority;                        /* watchdog node priority, during leader election*/
    WdRemoteNodesConfig wd_remote_nodes;    /* watchdog lists */
    char * trusted_servers;                    /* icmp reachable server list (A,B,C) */
    char * delegate_IP;                        /* delegate IP address */
    int  wd_interval;                        /* lifecheck interval (sec) */
    char *wd_authkey;                        /* Authentication key for watchdog communication */
    char * ping_path;                        /* path to ping command */
    char * if_cmd_path;                        /* path to interface up/down command */
    char * if_up_cmd;                        /* ifup command */
    char * if_down_cmd;                        /* ifdown command */
    char * arping_path;                        /* path to arping command */
    char * arping_cmd;                        /* arping command */
    int  wd_life_point;                        /* life point (retry times at lifecheck) */
    char *wd_lifecheck_query;                /* lifecheck query */
    char *wd_lifecheck_dbname;                /* Database name connected for lifecheck */
    char *wd_lifecheck_user;                /* PostgreSQL user name for watchdog */
    char *wd_lifecheck_password;            /* password for watchdog user */
    int wd_heartbeat_port;                    /* Port number for heartbeat lifecheck */
    int wd_heartbeat_keepalive;                /* Interval time of sending heartbeat signal (sec) */
    int wd_heartbeat_deadtime;                /* Deadtime interval for heartbeat signal (sec) */
    WdHbIf hb_if[WD_MAX_IF_NUM];            /* interface devices */
    int num_hb_if;                            /* number of interface devices */
    char **wd_monitoring_interfaces_list;    /* network interface name list to be monitored by watchdog */
} POOL_CONFIG;

pgpool中的配置参数的定义的更多相关文章

  1. 读取xml文件中的配置参数实例_java - JAVA

    文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 paras.xml文件 <?xml version="1.0" encoding=" ...

  2. MySQL中的配置参数interactive_timeout和wait_timeout(可能导致过多sleep进程的两个参数)

    1)interactive_timeout:参数含义:服务器关闭交互式连接前等待活动的秒数.交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的 ...

  3. 项目中Zookeeper配置参数笔记

    ZooKeeper是以Fast Paxos算法为基础的,Paxos 算法存在活锁的问题,即当有多个proposer交错提交时,有可能互相排斥导致没有一个proposer能提交成功,而Fast Paxo ...

  4. Webpack中SplitChunksPlugin 配置参数详解

    代码分割本身和 webpack 没有什么关系,但是由于使用 webpack 可以非常轻松地实现代码分割,所以提到代码分割首先就会想到使用 webopack 实现. 在 webpack 中是使用 Spl ...

  5. Spring Boot(二):Spring Boot中的配置参数

    Spring Boot 配置参数 Spring Boot 帮助我们完成了许许多多的自动化配置 如果我们需要根据自己的需求修改配置 也是可以的 可以使用.properties 和 .yml 格式配置 这 ...

  6. Linux中ifcfg-eth0配置参数解释

    Linux中设置IP地址经常使用到ifcfg-eth0这个文件.  vi /etc/sysconfig/network-scripts/ifcfg-eth0 附录文件中的内容: DEVICE=eth0 ...

  7. java中可变长参数的定义及使用方法

    JAVA中可以为方法定义可变长参数( Varargs)来匹配不确定数量的多个参数,其定义用“...”表示.其实,这类似于为方法传了一个数组,且在使用方法上也和数组相同,如下: public void ...

  8. Tomcat server.xml中Connector配置参数详解

    Tomcat中Connector常用配置 Tomcat中server.xml有些配置信息是需要我们了解的,最起码知道如何进行简单的调试. <Connector port="8080&q ...

  9. [FreeRTOS入门] 1.CubeMX中FreeRTOS配置参数及理解

    1.有关优先级 1.1 Configuration --> FreeRTOS MAX_PRIORITIES 设置任务优先级的数量:配置应用程序有效的优先级数目.任何数量的任务都可以共享一个优先级 ...

随机推荐

  1. nutz 自定义sql的使用

    虽然提供了Cnd,但是用起来是觉得有点不方便,然后就直接编写Sql语句.nutz提供了一些方法. Nutz.Dao 的自定义 SQL 部分的解决方案是: // 不推荐使用 用户可以硬编码 SQL 语句 ...

  2. MySQL_视图/触发器/事务/存储过程/函数

    视图.触发器.事务.存储过程.函数 视图 视图是一个虚拟表(非真实存在),其本质是根据SQL语句获取动态的数据集,并为其命名,用户使用时只需使用名称即可获取结果集,可以将该结果集当作表来使用 #创建视 ...

  3. JS 公鸡2文一只、母鸡1文一只、小鸡0.5文一只若一共有100文钱买100只鸡有多少种方法

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. vue .sync修饰符

    .sync 修饰符 对一个 prop 进行“双向绑定”时,真正的双向绑定会带来维护上的问题,因为子组件可以修改父组件,且在父组件和子组件都没有明显的改动来源. 那这个修饰符的原理是什么呢?其实还是vu ...

  5. Project Euler 39 Integer right triangles( 素勾股数 )

    题意:若三边长 { a , b , c } 均为整数的直角三角形周长为 p ,当 p = 120 时,恰好存在三个不同的解:{ 20 , 48 , 52 } , { 24 , 45 , 51 } , ...

  6. 配置sudo命令行为审计

    1.检查是否安装 rpm -aq sudo rsyslog #检验是否安装此软件 ***如果没有需执行(yum install sudo rsyslog -y)安装*** 2.配置审计 echo &q ...

  7. Linux设备驱动--块设备(四)之“自造请求”(转)

    前面, 我们已经讨论了内核所作的在队列中优化请求顺序的工作; 这个工作包括排列请求和, 或许, 甚至延迟队列来允许一个预期的请求到达. 这些技术在处理一个真正的旋转的磁盘驱动器时有助于系统的性能. 但 ...

  8. 【python正则】工作中常用的python正则代码

    工作中常用的一些正则代码: 01.用户名正则 import re # 4到16位(字母,数字,下划线,减号)if re.match(r'^[a-zA-Z0-9_-]{4,16}$', "ab ...

  9. ORA-29857: 表空间中存在域索引和/或次级对象

    今天小编在操作 oracle 数据库,删除表空间时引发了异常!! SQL> drop tablespace nbmap including contents; 为什么会造成以上的异常呢? 根据小 ...

  10. [Linux]第一部分-认识Linux及Linux主机规划与安装

    ctrl + alt + f1~f6 切换六个终端ctrl + alt + f7 图形化界面 startx 开启x-window桌面 ls -al /root 列出root目录 date日期 +%y/ ...