--- /dev/null
+See doc/index_en.html
--- /dev/null
+doc/index_ja.html ¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£
--- /dev/null
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Change in password for PgpoolAdmin written in pcp.conf
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby
+ * granted, provided that the above copyright notice appear in all
+ * copies and that both that copyright notice and this permission
+ * notice appear in supporting documentation, and that the name of the
+ * author not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. The author makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * @copyright 2003-2006 PgPool Global Development Group
+ * @version CVS: $Id$
+ */
+
+require_once('common.php');
+$tpl->assign('help', basename( __FILE__, '.php'));
+
+if(!isset($_SESSION[SESSION_LOGIN_USER])) {
+ header('Location: login.php');
+ exit();
+}
+
+if(isset($_POST['action'])) {
+ $action = $_POST['action'];
+} else {
+ $action = FALSE;
+}
+
+
+switch ( $action ) {
+ case 'update':
+
+ if(!isset($_POST['password']) || !isset($_POST['password2'])) {
+ $tpl->display('changePassword.tpl');
+ break;
+ }
+
+ $password = $_POST['password'];
+ $password2 = $_POST['password2'];
+
+ if($password == '' || $password2 == '') {
+ $tpl->assign('error', $message['errPasswordMismatch']);
+ $tpl->display('changePassword.tpl');
+ break;
+ }
+
+ if($password === $password2) {
+
+ $passFile = @file(_PGPOOL2_PASSWORD_FILE);
+ if($passFile == false) {
+ $errorCode = 'e6001';
+ $tpl->assign('errorCode', $errorCode);
+ $tpl->display('error.tpl');
+ exit();
+ }
+
+ if( ! is_writable(_PGPOOL2_PASSWORD_FILE) ) {
+ $errorCode = 'e6003';
+ $tpl->assign('errorCode', $errorCode);
+ $tpl->display('error.tpl');
+ exit();
+ }
+ $fw = fopen(_PGPOOL2_PASSWORD_FILE, 'w');
+
+ for($i=0; $i<count($passFile); $i++) {
+
+ $line = $passFile[$i];
+ $spt = split(":", $line);
+
+ if($spt[0] == $_SESSION[SESSION_LOGIN_USER]) {
+ $line = $_SESSION[SESSION_LOGIN_USER] . ":" . md5($password) . "\n";
+ }
+ fputs($fw, $line);
+ }
+ fclose($fw);
+
+ session_unset();
+ $tpl->display('login.tpl');
+ break;
+ } else {
+ $tpl->assign('error', $message['errPasswordMismatch']);
+ }
+
+ default:
+ $tpl->display('changePassword.tpl');
+ break;
+}
+?>
+
--- /dev/null
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Command of PCP
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby
+ * granted, provided that the above copyright notice appear in all
+ * copies and that both that copyright notice and this permission
+ * notice appear in supporting documentation, and that the name of the
+ * author not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. The author makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * @copyright 2003-2006 PgPool Global Development Group
+ * @version CVS: $Id$
+ */
+
+require_once('common.php');
+
+/**
+ * Execute pcp command
+ *
+ * @param string $command
+ * @param srgs $num
+ * @return array
+ */
+function execPcp($command, $num='') {
+ $pcpStatus = array (
+ '0' => 'SUCCESS',
+ '1' => 'UNKNOWNERR',
+ '2' => 'EOFERR',
+ '3' => 'NOMEMERR',
+ '4' => 'READERR',
+ '5' => 'WRITEERR',
+ '6' => 'TIMEOUTERR',
+ '7' => 'INVALERR',
+ '8' => 'CONNERR',
+ '9' => 'NOCONNERR',
+ '10' => 'SOCKERR',
+ '11' => 'HOSTERR',
+ '12' => 'BACKENDERR',
+ '13' => 'AUTHERR',
+ '127' => 'COMMANDERROR'
+ );
+
+ $param = readPcpInfo();
+ $param['hostname'] = _PGPOOL2_PCP_HOSTNAME;
+
+ $args = " " . $param['pcp_timeout'] . " " . $param['hostname'] . " " . $param['pcp_port'] . " ". $_SESSION[SESSION_LOGIN_USER] . " " . $_SESSION[SESSION_LOGIN_USER_PASSWORD] . " " . $num;
+
+ switch ($command) {
+ case 'PCP_NODE_COUNT':
+ $cmd = _PGPOOL2_PCP_DIR . '/pcp_node_count' . $args;
+ $ret = exec($cmd, $output, $return_var);
+ break;
+
+ case 'PCP_NODE_INFO':
+ $cmd = _PGPOOL2_PCP_DIR . '/pcp_node_info' . $args;
+ $ret = exec($cmd, $output, $return_var);
+ break;
+
+ case 'PCP_ATTACH_NODE':
+ $cmd = _PGPOOL2_PCP_DIR . '/pcp_attach_node' . $args;
+ $ret = exec($cmd, $output, $return_var);
+ break;
+
+ case 'PCP_DETACH_NODE':
+ $cmd = _PGPOOL2_PCP_DIR . '/pcp_detach_node' . $args;
+ $ret = exec($cmd, $output, $return_var);
+ break;
+
+ case 'PCP_PROC_COUNT':
+ $cmd = _PGPOOL2_PCP_DIR . '/pcp_proc_count' . $args;
+ $ret = exec($cmd, $output, $return_var);
+ break;
+
+ case 'PCP_PROC_INFO':
+ $cmd = _PGPOOL2_PCP_DIR . '/pcp_proc_info' . $args;
+ $ret = exec($cmd, $output, $return_var);
+ $ret = $output;
+ break;
+
+ case 'PCP_START_PGPOOL':
+ $cmdOption = $num;
+ $cmdOption = $cmdOption . ' -f ' . _PGPOOL2_CONFIG_FILE
+ . ' -F ' . _PGPOOL2_PASSWORD_FILE;
+ if(DoesPgpoolPidExist()) {
+ return array('FAIL'=> '');
+ }
+ $cmd = _PGPOOL2_COMMAND . $cmdOption . ' 2>&1 &';
+ $ret = exec($cmd, $output, $return_var);
+ if($return_var == 0) {
+ return array($pcpStatus[$return_var] => $output);
+ } else {
+ return array('FAIL' => $output);
+ }
+ break;
+
+ case 'PCP_STOP_PGPOOL':
+ $cmd = _PGPOOL2_PCP_DIR . '/pcp_stop_pgpool' . $args;
+ $ret = exec($cmd, $output, $return_var);
+ break;
+
+ default:
+ return array($pspStatus[1] => $pspStatus[1]);
+ }
+ return array($pcpStatus[$return_var] => $ret);
+}
+
+/**
+ * Read parameter of pcp_port and pcp_timeout from pgpool.conf
+ *
+ * @return array
+ */
+function readPcpInfo() {
+
+ $params = readConfigParams(array('pcp_port', 'pcp_timeout'));
+ return $params;
+}
+?>
--- /dev/null
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Common file of PgpoolAdmin
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby
+ * granted, provided that the above copyright notice appear in all
+ * copies and that both that copyright notice and this permission
+ * notice appear in supporting documentation, and that the name of the
+ * author not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. The author makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * @copyright 2003-2006 PgPool Global Development Group
+ * @version SVN: $Id$
+ */
+
+require_once('version.php');
+require_once('libs/Smarty.class.php');
+error_reporting(E_ALL);
+
+define('SESSION_LOGIN_USER', 'loginUser');
+define('SESSION_LOGIN_USER_PASSWORD', 'md5pass');
+define('SESSION_LANG', 'lang');
+define('SESSION_MESSAGE', 'message');
+
+session_start();
+
+/**
+ * Smarty Parameter
+ */
+define('SMARTY_TEMPLATE_DIR', dirname(__FILE__) . '/templates' );
+define('SMARTY_COMPILE_DIR', dirname(__FILE__) . '/templates_c' );
+
+/**
+ * Initialize Smartry
+ */
+$tpl = new Smarty();
+$tpl->assign('version', $version);
+
+if(!file_exists('conf/pgmgt.conf.php')) {
+ include('lang/en.lang.php');
+ $tpl->assign('message', $message);
+ $tpl->display('pgmgtNotFound.tpl');
+ exit();
+}
+
+require_once('conf/pgmgt.conf.php');
+
+/**
+ * Check login
+ */
+$isLogin = FALSE;
+if(isset($_SESSION[SESSION_LOGIN_USER])) {
+ $isLogin = TRUE;
+ $tpl->assign('isLogin', $isLogin);
+}
+
+/**
+ * Check pgmgt.conf.php Parameter
+ */
+$errors = array();
+if( !defined('_PGPOOL2_LANG')
+ || !defined('_PGPOOL2_CONFIG_FILE')
+ || !defined('_PGPOOL2_PASSWORD_FILE')
+ || !defined('_PGPOOL2_COMMAND')
+ || !defined('_PGPOOL2_PCP_DIR')
+ || !defined('_PGPOOL2_PCP_HOSTNAME')
+ || !defined('_PGPOOL2_STATUS_REFRESH_TIME')) {
+
+ include('lang/en.lang.php');
+ $tpl->assign('message', $message);
+ $errorCode = 'e7';
+ $tpl->assign('errorCode', $errorCode);
+ $tpl->display('error.tpl');
+ exit();
+ }
+
+/**
+ * Create message catalog list
+ */
+$messageList = array();
+
+$res_dir = opendir('lang/');
+while($file_name = readdir( $res_dir )) {
+ if(ereg('.*\.lang\.php$', $file_name)) {
+ if(@is_file('lang/' . $file_name)) {
+ include('lang/' . $file_name);
+ $messageList[$message['lang']] = $message['strLang'];
+ } else {
+ $errorCode = 'e2';
+ $tpl->assign('errorCode', $errorCode);
+ $tpl->display('error.tpl');
+ exit();
+
+ }
+ }
+}
+$tpl->assign('messageList', $messageList);
+
+/**
+ * Load message catalog
+ */
+
+$lang = selectLanguage(_PGPOOL2_LANG, $messageList);
+include('lang/' . $lang . '.lang.php');
+$tpl->assign('message', $message);
+$_SESSION[SESSION_MESSAGE] = $message;
+
+/**
+ * Open databse connection
+ *
+ * @param array $param
+ * @return resource
+ */
+function openDBConnection($param)
+{
+ $host= $param['hostname'];
+ $port = $param['port'];
+ $dbname = $param['dbname'];
+ $user = $param['user'];
+ $password = $param['password'];
+
+ if($host != '') {
+ $conStr = "host=$host port=$port dbname=$dbname user=$user password=$password" ;
+ } else {
+ $conStr = "port=$port dbname=$dbname" ;
+ }
+
+ $con = @pg_connect($conStr);
+ return $con;
+}
+
+/**
+ * Close database connection
+ *
+ * @param bool
+ */
+function closeDBConnection($connection)
+{
+ return pg_close($connection);
+}
+
+/**
+ * Execute query
+ *
+ * @param resource $conn
+ * @param string $sql
+ * @return resource
+ */
+function execQuery($conn, $sql) {
+ $rs = @pg_query($conn, $sql);
+ if(!pg_result_status($rs) == PGSQL_TUPLES_OK) {
+ return false;
+ }
+
+ return $rs;
+}
+
+/**
+ * Select language registred in conf directory
+ *
+ * @return string
+ */
+function selectLanguage($selectLang, $messageList) {
+ if( $selectLang == null || $selectLang == 'auto') {
+ if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
+ $acceptLanguages = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
+ } else {
+ $acceptLanguages = FALSE;
+ }
+
+ $lang = null;
+
+ if($acceptLanguages == FALSE) {
+ $lang = 'en';
+ } else {
+ $langList = split(',|;', $acceptLanguages);
+ foreach($langList as $acceptLanguage) {
+ foreach(array_keys($messageList) as $messageLanguage) {
+ if( $acceptLanguage == $messageLanguage ) {
+ $lang = $messageLanguage;
+ break;
+ }
+ }
+ if( $lang != null) break;
+ }
+ }
+ } else {
+ $lang = $selectLang;
+ }
+ $_SESSION[SESSION_LANG] = $lang;
+ return $lang;
+}
+
+/**
+ * Whether pgpool is operating in the parallel mode or not?
+ *
+ * @return bool
+ */
+function isParallelMode() {
+
+ $params = readConfigParams(array('parallel_mode'));
+
+ if($params['parallel_mode'] == 'true') {
+ return true;
+ } else {
+ return false;
+ }
+}
+
+/**
+ * Confirmation whether node is active or is not.
+ *
+ * @return bool
+ */
+function NodeActive($num) {
+ $healthCheckDb = 'template1';
+
+ $params = readHealthCheckParam();
+
+ $healthCheckUser = $params['health_check_user'];
+ $backendHostName = $params['backend_hostname'][$num];
+ $backendPort = $params['backend_port'][$num];
+ if($backendHostName != '') {
+ $conStr = "dbname=$healthCheckDb user=$healthCheckUser host=$backendHostName port=$backendPort" ;
+ } else {
+ $conStr = "dbname=$healthCheckDb port=$backendPort" ;
+ }
+
+ $conn = @pg_connect($conStr);
+
+ if($conn == FALSE) {
+ @pg_close($conn);
+ return FALSE;
+ } else {
+ @pg_close($conn);
+ return TRUE;
+ }
+}
+
+/**
+ * Read parameter from pgpool.conf using health check
+ *
+ * @return array
+ */
+function readHealthCheckParam() {
+
+ $params = readConfigParams(array('health_check_user',
+ 'backend_hostname',
+ 'backend_port',
+ 'backend_weight'));
+
+ return $params;
+}
+
+/**
+ * Existence confirmation of pgpool.pid
+ *
+ * @return bool
+ */
+function DoesPgpoolPidExist() {
+ $pidFile = readLogDir() . '/pgpool.pid';
+ if( file_exists($pidFile) ) {
+ return true;
+ }
+ return false;
+}
+
+/**
+ * Existence confirmation of pgpool.pid
+ *
+ * @return bool
+ */
+function readLogDir() {
+
+ $params = readConfigParams(array('logdir'));
+ return $params['logdir'];
+}
+
+/**
+ * Whether pgpool is operating in the replication mode or not?
+ *
+ * @return bool
+ */
+function isReplicationMode() {
+
+ $params = readConfigParams(array('replication_mode'));
+
+ if($params['replication_mode'] == 'true') {
+ return true;
+ } else {
+ return false;
+ }
+}
+
+/**
+ * Whether pgpool is operating in the master slave mode or not?
+ *
+ * @return bool
+ */
+function isMasterSlaveMode() {
+
+ $params = readConfigParams(array('master_slave_mode'));
+
+ if($params['master_slave_mode'] == 'true') {
+ return true;
+ } else {
+ return false;
+ }
+}
+
+/**
+ * Read parameters specified in $paramList from pgpool.conf.
+ * If $paramList is not specified, all item is read from pgpool.conf.
+ *
+ * @param array $paramList
+ * @return array
+ */
+function readConfigParams($paramList = FALSE) {
+
+ $results = array();
+ $configParam = array();
+
+ $configFile = @file(_PGPOOL2_CONFIG_FILE);
+ if($configFile == false) {
+ $errTpl = new Smarty();
+ $errTpl->assign('message', $_SESSION[SESSION_MESSAGE]);
+ $errorCode = 'e4';
+ $errTpl->assign('errorCode', $errorCode);
+ $errTpl->display('error.tpl');
+ exit();
+ }
+
+ foreach ($configFile as $line_num => $line) {
+ $line = trim($line);
+ if(preg_match("/^\w/", $line)) {
+ list($key, $value) = split("=", $line);
+
+ $key = trim($key);
+ $value = trim($value);
+
+ if(preg_match("/^backend_hostname/", $key)) {
+ $num = str_replace('backend_hostname', '', $key);
+ $configParam['backend_hostname'][$num] = ereg_replace("'", "", $value);
+ }
+ else if(preg_match("/^backend_port/", $key)) {
+ $num = str_replace('backend_port', '', $key);
+ $configParam['backend_port'][$num] = $value;
+ }
+ else if(preg_match("/^backend_weight/", $key)) {
+ $num = str_replace('backend_weight', '', $key);
+ $configParam['backend_weight'][$num] = $value;
+ }
+ else {
+ $configParam[$key] = ereg_replace("'", "", $value);
+ }
+ }
+ }
+
+ if(is_array($paramList)) {
+ foreach($paramList as $key) {
+ if(isset($configParam[$key])) {
+ $results[$key] = $configParam[$key];
+ } else {
+ include('definePgpoolConfParam.php');
+ if(!preg_match("/^backend_hostname/", $key)
+ && !preg_match("/^backend_port/", $key)
+ && !preg_match("/^backend_weight/", $key)) {
+ $results[$key] = $pgpoolConfigParam[$key]['default'];
+ }
+ }
+ }
+ } else {
+ $results = $configParam;
+ }
+
+ return $results;
+
+}
+
+?>
--- /dev/null
+<?php
+define('_PGPOOL2_LANG', 'ja');
+define('_PGPOOL2_CONFIG_FILE', '/usr/local/etc/pgpool.conf');
+define('_PGPOOL2_PASSWORD_FILE', '/usr/local/etc/pcp.conf');
+define('_PGPOOL2_COMMAND', '/usr/local/bin/pgpool');
+define('_PGPOOL2_CMD_OPTION_C', '0');
+define('_PGPOOL2_CMD_OPTION_D', '0');
+define('_PGPOOL2_CMD_OPTION_M', 's');
+define('_PGPOOL2_CMD_OPTION_N', '0');
+define('_PGPOOL2_LOG_FILE', '/tmp/pgpool.log');
+define('_PGPOOL2_PCP_DIR', '/usr/local/bin');
+define('_PGPOOL2_PCP_HOSTNAME', 'localhost');
+define('_PGPOOL2_PCP_TIMEOUT', '');
+define('_PGPOOL2_STATUS_REFRESH_TIME', '0');
+?>
--- /dev/null
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Configuration of PgpoolAdmin
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby
+ * granted, provided that the above copyright notice appear in all
+ * copies and that both that copyright notice and this permission
+ * notice appear in supporting documentation, and that the name of the
+ * author not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. The author makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * @copyright 2003-2006 PgPool Global Development Group
+ * @version CVS: $Id$
+ */
+
+require_once('common.php');
+$tpl->assign('help', basename( __FILE__, '.php'));
+
+if(!isset($_SESSION[SESSION_LOGIN_USER])) {
+ header('Location: login.php');
+ exit();
+}
+
+if(isset($_POST['action'])) {
+ $action = $_POST['action'];
+} else {
+ $action = FALSE;
+}
+
+$errors = array();
+$params = array();
+
+/**
+ * Read current parameter
+ */
+if( defined('_PGPOOL2_LANG'))
+ $params['lang'] = _PGPOOL2_LANG;
+else
+ $errors['lang'] = $message['errNoDefined'];
+
+if( defined('_PGPOOL2_CONFIG_FILE'))
+ $params['pgpool_config_file'] = _PGPOOL2_CONFIG_FILE;
+else
+ $errors['pgpool_config_file'] = $message['errNoDefined'];
+
+if( defined('_PGPOOL2_PASSWORD_FILE'))
+ $params['password_file'] = _PGPOOL2_PASSWORD_FILE;
+else
+ $errors['password_file'] = $message['errNoDefined'];
+
+if( defined('_PGPOOL2_COMMAND'))
+ $params['pgpool_command'] = _PGPOOL2_COMMAND;
+else
+ $errors['pgpool_command'] = $message['errNoDefined'];
+
+if( defined('_PGPOOL2_CMD_OPTION_C'))
+ $params['c'] = _PGPOOL2_CMD_OPTION_C;
+else
+ $errors['c'] = $message['errNoDefined'];
+
+if( defined('_PGPOOL2_CMD_OPTION_D'))
+ $params['d'] = _PGPOOL2_CMD_OPTION_D;
+else
+ $errors['d'] = $message['errNoDefined'];
+
+if( defined('_PGPOOL2_CMD_OPTION_M'))
+ $params['m'] = _PGPOOL2_CMD_OPTION_M;
+else
+ $errors['m'] = $message['errNoDefined'];
+
+if( defined('_PGPOOL2_CMD_OPTION_N'))
+ $params['n'] = _PGPOOL2_CMD_OPTION_N;
+else
+ $errors['n'] = $message['errNoDefined'];
+
+if( defined('_PGPOOL2_LOG_FILE'))
+ $params['pgpool_logfile'] = _PGPOOL2_LOG_FILE;
+else
+ $errors['pgpool_logfile'] = $message['errNoDefined'];
+
+if( defined('_PGPOOL2_PCP_DIR'))
+ $params['pcp_client_dir'] = _PGPOOL2_PCP_DIR;
+else
+ $errors['pcp_client_dir'] = $message['errNoDefined'];
+
+if( defined('_PGPOOL2_PCP_HOSTNAME'))
+ $params['pcp_hostname'] = _PGPOOL2_PCP_HOSTNAME;
+else
+ $errors['pcp_hostname'] = $message['errNoDefined'];
+
+if( defined('_PGPOOL2_STATUS_REFRESH_TIME'))
+ $params['pcp_refresh_time'] = _PGPOOL2_STATUS_REFRESH_TIME;
+else
+ $errors['pcp_refresh_time'] = $message['errNoDefined'];
+
+switch ( $action ) {
+ case 'update':
+
+ $key = 'lang';
+ if(isset($_POST[$key])) {
+ $params[$key] = $_POST[$key];
+ } else {
+ $errors[$key] = $message['errNoDefined'];
+ }
+
+ $key = 'pgpool_config_file';
+ if(isset($_POST[$key])) {
+ $params[$key] = $_POST[$key];
+ } else {
+ $errors[$key] = $message['errNoDefined'];
+ }
+ if(!@is_file($params[$key])) {
+ $errors[$key] = $message['errFileNotFound'];
+ }
+
+ $key = 'password_file';
+ if(isset($_POST[$key])) {
+ $params[$key] = $_POST[$key];
+ } else {
+ $errors[$key] = $message['errNoDefined'];
+ }
+ if(!@is_file($params[$key])) {
+ $errors[$key] = $message['errFileNotFound'];
+ }
+
+ $key = 'pgpool_command';
+ if(isset($_POST[$key])) {
+ $params[$key] = $_POST[$key];
+ } else {
+ $errors[$key] = $message['errNoDefined'];
+ }
+ if(!is_executable($params[$key])) {
+ $errors[$key] = $message['errFileNotFound'];
+ }
+
+ $key = 'c';
+ if(isset($_POST[$key])) {
+ $params[$key] = 1;
+ } else {
+ $params[$key] = 0;
+ }
+
+ $key = 'd';
+ if(isset($_POST[$key])) {
+ $params[$key] = 1;
+ } else {
+ $params[$key] = 0;
+ }
+
+ $key = 'm';
+ if(isset($_POST[$key])) {
+ $params[$key] = $_POST[$key];
+ } else {
+ $errors[$key] = $message['errNoDefined'];
+ }
+
+ $key = 'n';
+ if(isset($_POST[$key])) {
+ $params[$key] = 1;
+ } else {
+ $params[$key] = 0;
+ }
+
+ $key = 'pgpool_logfile';
+ if(isset($_POST[$key])) {
+ $params[$key] = $_POST[$key];
+ } else {
+ $errors[$key] = $message['errNoDefined'];
+ }
+ if($params[$key] != '' && !is_writable(dirname($params[$key]))) {
+ $errors[$key] = $message['errFileNotWritable'];
+ }
+
+ $key = 'pcp_client_dir';
+ if(isset($_POST[$key])) {
+ $params[$key] = $_POST[$key];
+ } else {
+ $errors[$key] = $message['errNoDefined'];
+ }
+
+ $key = 'pcp_hostname';
+ if(isset($_POST[$key])) {
+ $params[$key] = $_POST[$key];
+ } else {
+ $errors[$key] = $message['errNoDefined'];
+ }
+ if(!ereg("^[0-9a-zA-Z\._\-]+$", $params[$key])) {
+ $errors[$key] = $message['errIllegalHostname'];
+ }
+
+ $key = 'pcp_refresh_time';
+ if(isset($_POST[$key])) {
+ $params[$key] = $_POST[$key];
+ } else {
+ $errors[$key] = $message['errNoDefined'];
+ }
+ if( !is_numeric($params[$key] )) {
+ $errors[$key] = $message['errShouldBeInteger'];
+ } else {
+ if ( $params[$key] < 0) {
+ $errors[$key] = $message['errShouldBeZeroOrMore'];
+ }
+ }
+
+ if( count($errors) == 0 ) {
+
+ $pgmgtConfigFile = dirname(__FILE__) . '/conf/pgmgt.conf.php';
+
+ if( ! is_writable($pgmgtConfigFile)) {
+ $errorCode = 'e5003';
+ $tpl->assign('errorCode', $errorCode);
+ $tpl->display('error.tpl');
+ exit();
+ }
+
+ $fp = fopen( $pgmgtConfigFile, "w");
+ if($fp == false) {
+ $errorCode = 'e5001';
+ $tpl->assign('errorCode', $errorCode);
+ $tpl->display('error.tpl');
+ exit();
+ }
+
+ $str = "<?php\n";
+ fputs($fp, $str);
+
+ $str = 'define(\'_PGPOOL2_LANG\', \'' . $params['lang'] . '\');' . "\n";
+ fputs($fp, $str);
+
+ $str = 'define(\'_PGPOOL2_CONFIG_FILE\', \'' . $params['pgpool_config_file'] . '\');' . "\n";
+ fputs($fp, $str);
+
+ $str = 'define(\'_PGPOOL2_PASSWORD_FILE\', \'' . $params['password_file'] . '\');' . "\n";
+ fputs($fp, $str);
+
+ $str = 'define(\'_PGPOOL2_COMMAND\', \'' . $params['pgpool_command'] . '\');' . "\n";
+ fputs($fp, $str);
+
+ $str = 'define(\'_PGPOOL2_CMD_OPTION_C\', \'' . $params['c'] . '\');' . "\n";
+ fputs($fp, $str);
+
+ $str = 'define(\'_PGPOOL2_CMD_OPTION_D\', \'' . $params['d'] . '\');' . "\n";
+ fputs($fp, $str);
+
+ $str = 'define(\'_PGPOOL2_CMD_OPTION_M\', \'' . $params['m'] . '\');' . "\n";
+ fputs($fp, $str);
+
+ $str = 'define(\'_PGPOOL2_CMD_OPTION_N\', \'' . $params['n'] . '\');' . "\n";
+ fputs($fp, $str);
+
+ $str = 'define(\'_PGPOOL2_LOG_FILE\', \'' . $params['pgpool_logfile'] . '\');' . "\n";
+ fputs($fp, $str);
+
+ $str = 'define(\'_PGPOOL2_PCP_DIR\', \'' . $params['pcp_client_dir'] . '\');' . "\n";
+ fputs($fp, $str);
+
+ $str = 'define(\'_PGPOOL2_PCP_HOSTNAME\', \'' . $params['pcp_hostname'] . '\');' . "\n";
+ fputs($fp, $str);
+
+ $str = 'define(\'_PGPOOL2_STATUS_REFRESH_TIME\', \'' . $params['pcp_refresh_time'] . '\');' . "\n";
+ fputs($fp, $str);
+
+ $str = "?>\n";
+ fputs($fp, $str);
+ fclose($fp);
+
+ $tpl->assign('status', 'success');
+ }
+
+ /**
+ * reload message catalog
+ */
+ $lang = selectLanguage($params['lang'], $messageList);
+ include('lang/' . $lang . '.lang.php');
+ $tpl->assign('message', $message);
+ break;
+
+ default:
+}
+
+$tpl->assign('pgpoolConf', _PGPOOL2_CONFIG_FILE);
+$tpl->assign('pcpConf', _PGPOOL2_PASSWORD_FILE);
+$tpl->assign('params', $params);
+$tpl->assign('errors', $errors);
+$tpl->display('config.tpl');
+
+?>
--- /dev/null
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Definition of pgpool variable
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby
+ * granted, provided that the above copyright notice appear in all
+ * copies and that both that copyright notice and this permission
+ * notice appear in supporting documentation, and that the name of the
+ * author not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. The author makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * @copyright 2003-2006 PgPool Global Development Group
+ * @version CVS: $Id$
+ */
+
+$pgpoolConfigParam = array();
+$pgpoolConfigBackendParam = array();
+
+$strreg = '^[0-9a-zA-Z_\-]+$';
+$dirreg = '^\/[0-9a-zA-Z\._\/\-]+$';
+$hostreg = "^[0-9a-zA-Z\._\-]*$";
+
+$key = 'listen_addresses';
+$pgpoolConfigParam[$key]['type'] ='C';
+$pgpoolConfigParam[$key]['default'] ='localhost';
+$pgpoolConfigParam[$key]['regexp'] = '^([0-9a-zA-Z\._\-]+|[\*]{1})$';
+
+$key = 'port';
+$pgpoolConfigParam[$key]['type'] ='N';
+$pgpoolConfigParam[$key]['default'] ='9999';
+$pgpoolConfigParam[$key]['max'] = 65355;
+$pgpoolConfigParam[$key]['min'] = 1024;
+
+$key = 'socket_dir';
+$pgpoolConfigParam[$key]['type'] ='C';
+$pgpoolConfigParam[$key]['default'] ='/tmp';
+$pgpoolConfigParam[$key]['regexp'] = "$dirreg";
+
+$key = 'backend_socket_dir';
+$pgpoolConfigParam[$key]['type'] ='C';
+$pgpoolConfigParam[$key]['default'] ='/tmp';
+$pgpoolConfigParam[$key]['regexp'] = "$dirreg";
+
+$key = 'num_init_children';
+$pgpoolConfigParam[$key]['type'] ='N';
+$pgpoolConfigParam[$key]['default'] ='32';
+$pgpoolConfigParam[$key]['min'] = 1;
+$pgpoolConfigParam[$key]['max'] = 65355;
+
+$key = 'max_pool';
+$pgpoolConfigParam[$key]['type'] ='N';
+$pgpoolConfigParam[$key]['default'] ='4';
+$pgpoolConfigParam[$key]['min'] = 1;
+$pgpoolConfigParam[$key]['max'] = 65355;
+
+$key = 'child_life_time';
+$pgpoolConfigParam[$key]['type'] ='N';
+$pgpoolConfigParam[$key]['default'] ='300';
+$pgpoolConfigParam[$key]['min'] = 0;
+$pgpoolConfigParam[$key]['max'] = 65355;
+
+$key = 'connection_life_time';
+$pgpoolConfigParam[$key]['type'] ='N';
+$pgpoolConfigParam[$key]['default'] ='0';
+$pgpoolConfigParam[$key]['min'] = 0;
+$pgpoolConfigParam[$key]['max'] = 65355;
+
+$key = 'child_max_connections';
+$pgpoolConfigParam[$key]['type'] ='N';
+$pgpoolConfigParam[$key]['default'] ='0';
+$pgpoolConfigParam[$key]['min'] = 0;
+$pgpoolConfigParam[$key]['max'] = 65355;
+
+$key = 'logdir';
+$pgpoolConfigParam[$key]['type'] ='C';
+$pgpoolConfigParam[$key]['default'] ='/tmp';
+$pgpoolConfigParam[$key]['regexp'] = "$dirreg";
+
+$key = 'pcp_timeout';
+$pgpoolConfigParam[$key]['type'] ='N';
+$pgpoolConfigParam[$key]['default'] ='10';
+$pgpoolConfigParam[$key]['min'] = 0;
+$pgpoolConfigParam[$key]['max'] = 65355;
+
+$key = 'replication_mode';
+$pgpoolConfigParam[$key]['type'] ='B';
+$pgpoolConfigParam[$key]['default'] =false;
+
+$key = 'replication_strict';
+$pgpoolConfigParam[$key]['type'] ='B';
+$pgpoolConfigParam[$key]['default'] =true;
+
+$key = 'replication_timeout';
+$pgpoolConfigParam[$key]['type'] ='N';
+$pgpoolConfigParam[$key]['default'] =5000;
+$pgpoolConfigParam[$key]['min'] = 0;
+$pgpoolConfigParam[$key]['max'] = 65355;
+
+$key = 'load_balance_mode';
+$pgpoolConfigParam[$key]['type'] ='B';
+$pgpoolConfigParam[$key]['default'] =false;
+
+$key = 'replication_stop_on_mismatch';
+$pgpoolConfigParam[$key]['type'] ='B';
+$pgpoolConfigParam[$key]['default'] =false;
+
+$key = 'reset_query_list';
+$pgpoolConfigParam[$key]['type'] ='C';
+$pgpoolConfigParam[$key]['default'] ='ABORT; RESET ALL; SET SESSION AUTHORIZATION DEFAULT';
+$pgpoolConfigParam[$key]['regexp'] = "^[0-9a-zA-Z; ]+$";
+
+$key = 'print_timestamp';
+$pgpoolConfigParam[$key]['type'] ='B';
+$pgpoolConfigParam[$key]['default'] =true;
+
+$key = 'master_slave_mode';
+$pgpoolConfigParam[$key]['type'] ='B';
+$pgpoolConfigParam[$key]['default'] =false;
+
+$key = 'connection_cache';
+$pgpoolConfigParam[$key]['type'] ='B';
+$pgpoolConfigParam[$key]['default'] =true;
+
+$key = 'health_check_timeout';
+$pgpoolConfigParam[$key]['type'] ='N';
+$pgpoolConfigParam[$key]['default'] =20;
+$pgpoolConfigParam[$key]['min'] = 0;
+$pgpoolConfigParam[$key]['max'] = 65355;
+
+$key = 'health_check_period';
+$pgpoolConfigParam[$key]['type'] ='N';
+$pgpoolConfigParam[$key]['default'] =0;
+$pgpoolConfigParam[$key]['min'] = 0;
+$pgpoolConfigParam[$key]['max'] = 65355;
+
+$key = 'health_check_user';
+$pgpoolConfigParam[$key]['type'] ='C';
+$pgpoolConfigParam[$key]['default'] ='nodoby';
+$pgpoolConfigParam[$key]['regexp'] = "^[0-9a-zA-Z_\.\-]+$";
+
+$key = 'insert_lock';
+$pgpoolConfigParam[$key]['type'] ='B';
+$pgpoolConfigParam[$key]['default'] =false;
+
+$key = 'ignore_leading_white_space';
+$pgpoolConfigParam[$key]['type'] ='B';
+$pgpoolConfigParam[$key]['default'] =false;
+
+$key = 'parallel_mode';
+$pgpoolConfigParam[$key]['type'] ='B';
+$pgpoolConfigParam[$key]['default'] =false;
+
+$key = 'log_statement';
+$pgpoolConfigParam[$key]['type'] ='B';
+$pgpoolConfigParam[$key]['default'] =false;
+
+$key = 'enable_query_cache';
+$pgpoolConfigParam[$key]['type'] ='B';
+$pgpoolConfigParam[$key]['default'] =false;
+
+$key = 'system_db_hostname';
+$pgpoolConfigParam[$key]['type'] ='C';
+$pgpoolConfigParam[$key]['default'] ='system_db_hostname';
+$pgpoolConfigParam[$key]['regexp'] = $hostreg;
+
+$key = 'system_db_port';
+$pgpoolConfigParam[$key]['type'] ='N';
+$pgpoolConfigParam[$key]['default'] =5432;
+$pgpoolConfigParam[$key]['min'] = 1024;
+$pgpoolConfigParam[$key]['max'] = 65355;
+
+$key = 'system_db_dbname';
+$pgpoolConfigParam[$key]['type'] ='C';
+$pgpoolConfigParam[$key]['default'] ='pgpool';
+$pgpoolConfigParam[$key]['regexp'] = "$strreg";
+
+$key = 'system_db_schema';
+$pgpoolConfigParam[$key]['type'] ='C';
+$pgpoolConfigParam[$key]['default'] ='pgpool_catalog';
+$pgpoolConfigParam[$key]['regexp'] = "$strreg";
+
+$key = 'system_db_user';
+$pgpoolConfigParam[$key]['type'] ='C';
+$pgpoolConfigParam[$key]['default'] ='pgpool';
+$pgpoolConfigParam[$key]['regexp'] = "^[0-9a-zA-Z_\.\-]*$";
+
+$key = 'system_db_password';
+$pgpoolConfigParam[$key]['type'] ='C';
+$pgpoolConfigParam[$key]['default'] ='';
+$pgpoolConfigParam[$key]['regexp'] = ".*";
+
+$key = 'pcp_port';
+$pgpoolConfigParam[$key]['type'] ='N';
+$pgpoolConfigParam[$key]['default'] =9898;
+$pgpoolConfigParam[$key]['min'] = 1024;
+$pgpoolConfigParam[$key]['max'] = 65355;
+
+$key = 'pcp_socket_dir';
+$pgpoolConfigParam[$key]['type'] ='C';
+$pgpoolConfigParam[$key]['default'] ='/tmp';
+$pgpoolConfigParam[$key]['regexp'] = "$dirreg";
+
+$key = 'pgpool2_hostname';
+$pgpoolConfigParam[$key]['type'] ='C';
+$pgpoolConfigParam[$key]['default'] = 'localhost';
+$pgpoolConfigParam[$key]['regexp'] = $hostreg;
+
+$key = 'backend_hostname';
+$pgpoolConfigBackendParam[$key]['type'] ='C';
+$pgpoolConfigBackendParam[$key]['default'] ='';
+$pgpoolConfigBackendParam[$key]['regexp'] = "^[0-9a-zA-Z\._\-]*$";
+
+$key = 'backend_port';
+$pgpoolConfigBackendParam[$key]['type'] ='N';
+$pgpoolConfigBackendParam[$key]['default'] ='5432';
+$pgpoolConfigBackendParam[$key]['min'] = 1024;
+$pgpoolConfigBackendParam[$key]['max'] = 65355;
+
+$key = 'backend_weight';
+$pgpoolConfigBackendParam[$key]['type'] ='F';
+$pgpoolConfigBackendParam[$key]['default'] ='1';
+$pgpoolConfigBackendParam[$key]['min'] = 0.0;
+$pgpoolConfigBackendParam[$key]['max'] = 1.0;
+
+?>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Change Password</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="../index_en.html">Introduction</a></li>
+ <li><a href="install.html">Install</a></li>
+ <li><a href="login.html">Login</a></li>
+ <li><a href="status.html">pgpool Status</a></li>
+ <li><a href="nodeServerStatus.html">Node Status</a></li>
+ <li><a href="queryCache.html">Query Cache</a></li>
+ <li><a href="systemDb.html">Partitioning Rule</a></li>
+ <li><a href="pgconfig.html">pgpool.conf Setting</a></li>
+ <li><a href="config.html">pgpoolAdmin Setting</a></li>
+ <li><a href="changePassword.html">Change Password</a></li>
+ <li><a href="logout.html">Logout</a></li>
+ <li><a href="errorCode.html">Error Code</a></li>
+ </ul>
+</div>
+<div id="content">
+
+ <h2>Change Password</h2>
+ <h3>Summary</h3>
+
+ The password of the user who is logging in the pgpool administration tool is changed.
+ <h3>Feature</h3>
+ Please input a new password to each input column twice and push the update button.<br />
+ When it is successful, the login screen is displayed. Please login with the new password.
+ <table>
+ <tbody>
+ <tr>
+
+ <th><label for="password">Password</label></th>
+ <td><input id="password" name="password" type="password" size="25" /></td>
+ </tr>
+ <tr>
+ <th><label for="password2">Password Confirmation</label></th>
+ <td><input id="password2" name="password2" type="password" size="25" /></td>
+ </tr>
+ </tbody>
+
+ <tfoot>
+ <tr><td colspan="2">
+ <input type="submit" name="ButtonName" value="Update" />
+ </td></tr>
+ </table>
+</div>
+<div id="footer">
+ <address>
+ Version 1.0 Alpha<br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+ </address></div>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>pgpoolAdmin Setting</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="../index_en.html">Introduction</a></li>
+ <li><a href="install.html">Install</a></li>
+ <li><a href="login.html">Login</a></li>
+ <li><a href="status.html">pgpool Status</a></li>
+ <li><a href="nodeServerStatus.html">Node Status</a></li>
+ <li><a href="queryCache.html">Query Cache</a></li>
+ <li><a href="systemDb.html">Partitioning Rule</a></li>
+ <li><a href="pgconfig.html">pgpool.conf Setting</a></li>
+ <li><a href="config.html">pgpoolAdmin Setting</a></li>
+ <li><a href="changePassword.html">Change Password</a></li>
+ <li><a href="logout.html">Logout</a></li>
+ <li><a href="errorCode.html">Error Code</a></li>
+ </ul>
+</div>
+<div id="content">
+
+ <h2>pgpoolAdmin Setting</h2>
+ <h3>Summary</h3>
+
+ The setting of the pgpool administration tool can be displayed and be changed.
+ <p><img src="images/pgpooladmin.jpg" /></p>
+ <h3>Feature</h3>
+ <table>
+ <tbody>
+ <tr>
+ <th><label for="listen_addresses">Language</label>
+ (string)</th>
+ <td class="input">The language that wants to be displayed is selected. </td>
+
+ </tr>
+ <tr>
+ <th><label for="pgconfigPath">pgpool.conf File</label>
+ (string)</th>
+ <td>Path to pgpool.conf is specified in the full path. </td></tr>
+ <tr>
+ <th><label for="PasswordFile">Password File</label>
+
+ (string)</th>
+ <td>Path to pcp.conf is specified in the full path. </td></tr>
+ <tr>
+ <th colspan="2"><label>pgpool Command Option</label>
+ (string)</th></tr>
+ <tr><td>Clears query cache(-c)</td>
+
+ <td>When starting pgpool, the query cache is cleared.</td>
+ </tr>
+ <tr><td>Don't run in daemon mode(-n)</td>
+ <td>Pgpool can be run in non-daemon mode. For display of pgpool log in this pool, it is necessary to turn on this item. </td>
+ </tr>
+ <tr><td>Debug mode(-d)</td>
+
+ <td>Pgpool can be run in debug mode. When the debugging log is necessary, it turns it on.</td>
+ </tr>
+ <tr>
+ <tr><td>Stop mode(-d)</td>
+ <td>All the processes of pgpool are stopped. The pgpool stop option is displayed, when "Pgpool Stop" is pushed. There are stop mode for pgpool as follows.
+ <ul>
+ <li>smart</li>
+ <li>fast</li>
+
+ <li>immediate</li>
+ </ul>
+ If pgpool is stopped, pgpool status in the status window become "pgpool stop" and start option for pgpool is displayed.</td>
+ </tr>
+ <tr><td>pgpool.conf(-f)</td>
+ <td>When pgpool starts, pgpool.conf must be specified. The path of pgpool.conf is specified in "pgpool.conf File".</td>
+ </tr>
+
+ <tr><td>pcp.conf(-F)</td>
+ <td>When pgpool starts, pcp.conf must be specified. The path of pcp.conf is specified in "Password File".</td>
+ </tr>
+ <tr>
+ <th><label>pgpool Logfile</label>
+ (string)</th>
+ <td>The log file used when starting in non-daemon mode is specified by the full path form. If this is not specified, pgpool.log file is created in the directory specified in the logdir item of pgpool.conf.</td></tr>
+
+ <tr>
+ <th><label for="PcpDir">PCP Directory</label>
+ (string)</th>
+ <td>The directory that has installed the PCP command is specified. </td></tr>
+ <tr>
+ <th><label for="PcpHostname">PCP Hostname</label>
+ (string)</th>
+
+ <td>The host name that executes the PCP command is specified. It usually becomes "localhost".</td>
+ </tr>
+ <tr>
+ <th><label for="PcpRefreshTime">Refresh Time</label>
+ (integer)
+ </td>
+ <td>The update interval of status is specified every second. When 0 is specified, it doesn't update it automatically. </td></tr>
+ </tbody>
+
+ </table>
+ <p>Finally, The update button is renewed pushing.</p>
+</div>
+<div id="footer">
+ <address>
+ Version 1.0 Alpha<br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+ </address></div>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>{$message.strNodeStatus|escape}</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+
+</head>
+<body>
+<div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="../index_en.html">Introduction</a></li>
+ <li><a href="install.html">Install</a></li>
+ <li><a href="login.html">Login</a></li>
+ <li><a href="status.html">pgpool Status</a></li>
+ <li><a href="nodeServerStatus.html">Node Status</a></li>
+ <li><a href="queryCache.html">Query Cache</a></li>
+ <li><a href="systemDb.html">Partitioning Rule</a></li>
+ <li><a href="pgconfig.html">pgpool.conf Setting</a></li>
+ <li><a href="config.html">pgpoolAdmin Setting</a></li>
+ <li><a href="changePassword.html">Change Password</a></li>
+ <li><a href="logout.html">Logout</a></li>
+ <li><a href="errorCode.html">Error Code</a></li>
+ </ul>
+</div>
+<div id="content">
+<h2>Error Code</h2>
+
+<h3>Common</h3>
+<table>
+ <tr>
+ <th class="right_border"><label>Error Code</label></th>
+ <th class="right_border"><label>Error Message</label></th>
+ <th><label>Measures</label></th>
+ </tr>
+<tr><th class="right_border"><label>e1</label></th><td class="right_border">No found pgmgt.conf.php.</td><td>Please confirm whether the pgmgt.conf.php file is in the conf directory. Moreover, please confirm whether there is an appropriate right of access. </td></tr>
+
+<tr><th class="right_border"><label>e2</label></th><td class="right_border">No found message catalog.</td><td>Please confirm whether the message catalog file is in the lang directory. </td></tr>
+<tr><th class="right_border"><label>e3</label></th><td class="right_border">PCP command error occurred.</td><td>Please confirm whether in the place that the Pcp command specified by a set </td></tr>
+<tr><th class="right_border"><label>e4</label></th><td class="right_border">No found pgpool.conf.</td><td>Please confirm whether in the place that the Pcp command specified by a set menu.</td></tr>
+<tr><th class="right_border"><label>e5</label></th><td class="right_border">No found Smarty template file.</td><td>Please confirm whether the template file for the display is in the template directory. </td></tr>
+<tr><th class="right_border"><label>e6</label></th><td class="right_border">No found help.</td><td>Please confirm whether the Help file is in template/help or less. </td></tr>
+
+<tr><th class="right_border"><label>e7</label></th><td class="right_border">No found Parameter in pgpmgt.conf.php</td><td>Please confirm whether the parameter to be specified to pgmgt.conf.php. </td></tr>
+<tr><th class="right_border"><label>e8</label></th><td class="right_border">No found pcp_timeout in pgpool.conf</td><td>Please confirm whether pcp_timeout to be specified with pgpool.conf. </td></tr>
+<tr><th class="right_border"><label>e9</label></th><td class="right_border">No found pcp_port in pgpool.conf</td><td>Please confirm whether pcp_port to be specified with pgpool.conf. </td></tr>
+</table>
+
+<h3>pgpool Status</h3>
+<table>
+
+ <tr>
+ <th class="right_border"><label>Error Code</label></th>
+ <th class="right_border"><label>Error Message</label></th>
+ <th><label>Measures</label></th>
+ </tr>
+<tr><th class="right_border"><label>e1001</label></th><td class="right_border">PCP command error occurred.</td><td>It is displayed when failing in the call of the pcp command. Please confirm whether in the place that the Pcp command specified by a set menu. </td></tr>
+
+<tr><th class="right_border"><label>e1002</label></th><td class="right_border">pcp_node_count command error occurred.</td><td>It is an execution of pcp_node_count error. Please confirm whether pcp_node_count can be normally executed. </td></tr>
+<tr><th class="right_border"><label>e1003</label></th><td class="right_border">pcp_node_info command error occurred.</td><td>It is an execution of pcp_node_info error. Please confirm whether pcp_node_infot can be normally executed. </td></tr>
+<tr><th class="right_border"><label>e1004</label></th><td class="right_border">pcp_proc_count command error occurred.</td><td>It is an execution of pcp_proc_count error. Please confirm whether pcp_proc_count can be normally executed. </td></tr>
+<tr><th class="right_border"><label>e1005</label></th><td class="right_border">pcp_proc_info command error occurred.</td><td>It is an execution of pcp_proc_info error. Please confirm whether pcp_proc_info can be normally executed. </td></tr>
+<tr><th class="right_border"><label>e1006</label></th><td class="right_border">pcp_stop_pgpool command error occurred.</td><td>It is an execution of pcp_stop_pgpool error. Please confirm whether pcp_stop_pgpool can be normally executed. </td></tr>
+
+<tr><th class="right_border"><label>e1007</label></th><td class="right_border">pcp_detach_node command error occurred.</td><td>It is an execution of pcp_detach_node error. Please confirm whether pcp_detach_node can be normally executed. </td></tr>
+<tr><th class="right_border"><label>e1008</label></th><td class="right_border">No found pgpool.conf.</td><td>Please confirm whether in the place that pgpool.conf specified by a set menu. Moreover, please confirm whether there is an appropriate right of access to pgpool.conf. </td></tr>
+<tr><th class="right_border"><label>e1009</label></th><td class="right_border">No found pcp.conf.</td><td>Please confirm whether in the place that pcp.conf specified by a set menu. Moreover, please confirm whether there is an appropriate right of access to pcp.conf. </td></tr>
+<tr><th class="right_border"><label>e1010</label></th><td class="right_border">pcp_attach_node command error occurred.</td><td>It is an execution of pcp_attach_node error. Please confirm whether pcp_detach_node can be normally executed. </td></tr>
+<tr><th class="right_border"><label>e1011</label></th><td class="right_border">No found log ifle.</td><td>Please confirm whether in the place that the pgpool log file specified by a set menu. Moreover, please confirm whether there is an appropriate right of access to the specified log file. It is made for the directory specified with logdir of pgpool.conf by the file name of pgpool.log when not specifying it. </td></tr>
+
+</table>
+
+<h3>Node Status</h3>
+<table>
+ <tr>
+ <th class="right_border"><label>Error Code</label></th>
+ <th class="right_border"><label>Error Message</label></th>
+ <th><label>Measures</label></th>
+ </tr>
+
+<tr><th class="right_border"><label>e8001</label></th><td class="right_border">Detailed information cannot be acquired.</td><td>Please confirm whether to connect it with the node by the psql command. </td></tr>
+</table>
+
+<h3>Query Cache</h3>
+<table>
+ <tr>
+ <th class="right_border"><label>Error Code</label></th>
+ <th class="right_border"><label>Error Message</label></th>
+
+ <th><label>Measures</label></th>
+ </tr>
+<tr><th class="right_border"><label>e2001</label></th><td class="right_border">Database connection error occurred.</td><td>Please confirm whether to connect it with the data base specified with system DB of pgpool.conf. </td></tr>
+<tr><th class="right_border"><label>e2002</label></th><td class="right_border">The error occurred when SELECT was executed</td><td>Please confirm whether the record of Cericasshutabl can be normally acquired. </td></tr>
+<tr><th class="right_border"><label>e2003</label></th><td class="right_border">No found pgpool.conf.</td><td>Please confirm whether in the place that pcp.conf specified by a set menu. Moreover, please confirm whether there is an appropriate right of access to pcp.conf. </td></tr>
+
+</table>
+
+<h3>Partitioning Rule</h3>
+<table>
+ <tr>
+ <th class="right_border"><label>Error Code</label></th>
+ <th class="right_border"><label>Error Message</label></th>
+ <th><label>Measures</label></th>
+ </tr>
+
+<tr><th class="right_border"><label>e3001</label></th><td class="right_border">Database connection error occurred.</td><td>Please confirm whether to connect it with the data base specified with system DB of pgpool.conf. </td></tr>
+<tr><th class="right_border"><label>e3002</label></th><td class="right_border">The SQL error occurred when SELECT was executed</td><td>Please confirm whether the record of system DB table can be normally acquired. </td></tr>
+<tr><th class="right_border"><label>e3003</label></th><td class="right_border">The SQL error occurred when INSERT was executed</td><td>Please confirm whether the record can be normally inserted in system DB table. </td></tr>
+<tr><th class="right_border"><label>e3004</label></th><td class="right_border">The SQL error occurred when UPDATE was executed</td><td>Please confirm whether the record of system DB table can be normally renewed. </td></tr>
+<tr><th class="right_border"><label>e3005</label></th><td class="right_border">The SQL error occurred when DELETE was executed</td><td>Please confirm whether the record of system DB table can be normally deleted. </td></tr>
+
+<tr><th class="right_border"><label>e3006</label></th><td class="right_border">No found pgpool.conf.</td><td>Please confirm whether in the place that pcp.conf specified by a set menu. Moreover, please confirm whether there is an appropriate right of access to pcp.conf. </td></tr>
+
+</table>
+
+<h3>pgpool.conf Setting</h3>
+<table>
+ <tr>
+ <th class="right_border"><label>Error Code</label></th>
+ <th class="right_border"><label>Error Message</label></th>
+
+ <th><label>Measures</label></th>
+ </tr>
+<tr><th class="right_border"><label>e4001</label></th><td class="right_border">No found pgpool.conf.</td><td>Please confirm whether in the place that pcp.conf specified by a set menu. Moreover, please confirm whether there is an appropriate right of access to pcp.conf. </td></tr>
+<tr><th class="right_border"><label>e4002</label></th><td class="right_border">It is not possible to read to pgpool.conf. </td><td>Please confirm whether there is a reading right of access in pgpool.conf. </td></tr>
+<tr><th class="right_border"><label>e4003</label></th><td class="right_border">It is not possible to write to pgpool.conf. </td><td>Please confirm whether there is a writing right of access in pgpool.conf. </td></tr>
+
+<tr><th class="right_border"><label>e4004</label></th><td class="right_border">There is not required parameter in pgpool.conf</td><td>Please confirm whether there are all parameters in pgpool.conf. </td></tr>
+</table>
+
+<h3>pgpoolAdmin Setting</h3>
+<table>
+ <tr>
+ <th class="right_border"><label>Error Code</label></th>
+ <th class="right_border"><label>Error Message</label></th>
+
+ <th><label>Measures</label></th>
+ </tr>
+<tr><th class="right_border"><label>e5001</label></th><td class="right_border">No found pgmgt.conf.php.</td><td>Please confirm whether the pgmgt.conf.php file is in the conf directory. Moreover, please confirm whether there is an appropriate right of access. </td></tr>
+<tr><th class="right_border"><label>e5002</label></th><td class="right_border">It is not possible to read to pgmgt.conf.php.</td><td>Please confirm whether there is a reading right of access in the pgmgt.conf.php file. </td></tr>
+<tr><th class="right_border"><label>e5003</label></th><td class="right_border">It is not possible to write to pgmgt.conf.php.</td><td>Please confirm whether there is a writing right of access in the pgmgt.conf.php file. </td></tr>
+
+</table>
+
+<h3>Change Password</h3>
+<table>
+ <tr>
+ <th class="right_border"><label>Error Code</label></th>
+ <th class="right_border"><label>Error Message</label></th>
+ <th><label>Measures</label></th>
+ </tr>
+
+<tr><th class="right_border"><label>e6001</label></th><td class="right_border">No found pcp.conf</td><td>Please confirm whether in the place that pcp.conf specified by a set </td></tr>
+<tr><th class="right_border"><label>e6002</label></th><td class="right_border">It is not possible to read to pcp.conf. </td><td>menu. </td></tr>
+<tr><th class="right_border"><label>e6003</label></th><td class="right_border">It is not possible to write to pcp.conf. </td><td>Please confirm whether there is a reading right of access in the pcp.conf file. </td></tr>
+</table>
+
+<h3>Logout</h3>
+<table>
+
+ <tr>
+ <th class="right_border"><label>Error Code</label></th>
+ <th class="right_border"><label>Error Message</label></th>
+ <th><label>Measures</label></th>
+ </tr>
+<tr><th class="right_border"><label>e7001</label></th><td class="right_border">No found pcp.conf.</td><td>Please confirm whether in the place that pcp.conf specified by a set menu. </td></tr>
+
+</table>
+
+</div>
+<div id="footer">
+ <address>
+ Version 1.0 Alpha<br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+ </address></div>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Installing Pgpool Management Tool</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="../index_en.html">Introduction</a></li>
+ <li><a href="install.html">Install</a></li>
+ <li><a href="login.html">Login</a></li>
+ <li><a href="status.html">pgpool Status</a></li>
+ <li><a href="nodeServerStatus.html">Node Status</a></li>
+ <li><a href="queryCache.html">Query Cache</a></li>
+ <li><a href="systemDb.html">Partitioning Rule</a></li>
+ <li><a href="pgconfig.html">pgpool.conf Setting</a></li>
+ <li><a href="config.html">pgpoolAdmin Setting</a></li>
+ <li><a href="changePassword.html">Change Password</a></li>
+ <li><a href="logout.html">Logout</a></li>
+ <li><a href="errorCode.html">Error Code</a></li>
+ </ul>
+</div>
+<div id="content">
+ <h2>Installing Pgpool Administration Tool</h2>
+ <h3>Preface</h3>
+Please confirm pgpool normally can be installed, and operates before starting the installation of the pgpool management tool. <p />
+The following software is at least installed in the server that operates pgpool when the pgpool management tool is installed, and it should be normally operating.
+
+<ul>
+ <li>HTTP Server(Apache)</li>
+ <li>PHP4.4.2 and higher</li>
+ <li>pgpool</li>
+</ul>
+Before starting the install, be sure to have:
+<ul>
+ <li>Setup the HTTP, PHP and pgpool properly.</li>
+ <li>Turn cookie and JavaScript? support in your browser on.</li>
+</ul>
+ <h3>Precondition</h3>
+It explains on the assumption of being set it here as follows.
+<p />
+<table>
+<tr>
+<th><label>Aapche document root directory</label></th>
+<td>/var/www/html</td>
+</tr>
+<tr>
+<th><label>Aapche process user</label></th>
+<td>apache</td>
+</tr>
+<tr>
+<th><label>pgpoolAdmin installation directory</label></th>
+<td>/var/www/html/admin-tool</td>
+</tr>
+<tr>
+<th><label>Pgpool command pass</label></th>
+<td>/usr/local/bin/pgpool</td>
+</tr>
+<tr>
+<th><label>pcp_attach_node command pass</label></th>
+<td>/usr/local/bin/pcp_attach_node</td>
+</tr>
+<tr>
+<th><label>pcp_detach_node command pass</label></th>
+<td>/usr/local/bin/pcp_detach_node</td>
+</tr>
+<tr>
+<th><label>pcp_node_count command pass</label></th>
+<td>/usr/local/bin/pcp_node_count</td>
+</tr>
+<tr>
+<th><label>pcp_node_info command pass</label></th>
+<td>/usr/local/bin/pcp_node_info</td>
+</tr>
+<tr>
+<th><label>pcp_proc_count command pass</label></th>
+<td>/usr/local/bin/pcp_proc_count</td>
+</tr>
+<tr>
+<th><label>pcp_proc_info command pass</label></th>
+<td>/usr/local/bin/pcp_proc_info</td>
+</tr>
+<tr>
+<th><label>pcp_stop_pgpool command pass</label></th>
+<td>/usr/local/bin/pcp_stop_pgpool</td>
+</tr>
+<tr>
+<th><label>pcp_systemdb_info command pass</label></th>
+<td>/usr/local/bin/pcp_systemdb_info</td>
+</tr>
+<tr>
+<th><label>pg_md5 command pass</label></th>
+<td>/usr/local/bin/pg_md5</td>
+</tr>
+<tr>
+<th><label>pgpool.conf file pass</label></th>
+<td>/usr/local/etc/pgpool.conf</td>
+</tr>
+<tr>
+<th><label>pcp.conf file pass</label></th>
+<td>/usr/local/etc/pcp.conf</td>
+</tr>
+</table>
+ <h3>Install</h3>
+It explains the installation of the management tool as follows.
+ <ol>
+ <li>To execute pgpool and the pcp tool set up from the Apach user, the right of access is set.</li>
+ <div id="cmd_window"><table>
+ <tr><td>cd /usr/local/bin</td></tr>
+ <tr><td>ls</td></tr>
+ </table>
+ </div>
+ It is confirmed that there is the following files.
+ <ul>
+ <li>pgpool</li>
+ <li>pcp_attach_node</li>
+ <li>pcp_detach_node</li>
+ <li>pcp_node_count</li>
+ <li>pcp_node_info</li>
+ <li>pcp_proc_count</li>
+ <li>pcp_proc_info</li>
+ <li>pcp_stop_pgpool</li>
+ <li>pcp_systemdb_info</li>
+ <li>pg_md5</li>
+ </ul>
+ <div id="cmd_window"><table>
+ <tr><td>chmod 755 /usr/local/bin/pgpool</td></tr>
+ <tr><td>chmod 755 /usr/local/bin/pcp_*</td></tr>
+ </table>
+ </div>
+ <li>
+The login user is registered in the pcp.conf file.The turning md5 password is obtained.
+<div id="cmd_window"><table>
+<tr><td class="cmd_window">pg_md5 password_string</td></tr>
+</table>
+</div>
+Next, the obtained character string write on pcp.conf as follows.
+<p>username:md5 password</p>
+ </li>
+ <li>
+Admin-tools.tar.gz that is the management tool program file is developed below the html directory of Apache. <br />
+<div id="cmd_window"><table>
+<tr><td class="cmd_window">mv admin-tool.tar.gz /tmp</td></tr>
+<tr><td class="cmd_window">cd /tmp</td></tr>
+<tr><td class="cmd_window">tar xzf admin-tool.tar.gz</td></tr>
+<tr><td class="cmd_window">mv admin-tool /var/www/html</td></tr>
+<tr><td class="cmd_window">rm admin-tool.tar.gz</td></tr>
+</table>
+</div>
+ </li>
+ <li>
+The file is confirmed.
+<div id="cmd_window"><table>
+<tr><td class="cmd_window">find /var/www/html/admin-tool -print</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/finish.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/defaultParameter.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/setLang.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/checkDirectory.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/images</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/images/Thumbs.db</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/images/ng.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/images/ok.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/index.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/checkParameter.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/lang</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/lang/ja.lang.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/lang/en.lang.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/Smarty.class.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.counter.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.escape.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.replace.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.count_characters.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/block.textformat.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.spacify.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.date_format.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.regex_replace.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.lower.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.debug_print_var.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.eval.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.html_image.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.nl2br.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.strip_tags.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/outputfilter.trimwhitespace.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.assign_debug_info.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.strip.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/shared.make_timestamp.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.html_select_date.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.truncate.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/compiler.assign.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.capitalize.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.wordwrap.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.indent.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.html_checkboxes.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/shared.escape_special_chars.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.cycle.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.math.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.cat.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.html_select_time.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.html_options.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.fetch.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.count_paragraphs.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.config_load.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.popup_init.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.string_format.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.count_sentences.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.count_words.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.default.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.popup.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.upper.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.html_table.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.debug.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.html_radios.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.mailto.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.write_cache_file.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.display_debug_console.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.load_resource_plugin.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.is_trusted.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.is_secure.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.assemble_plugin_filepath.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.get_microtime.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.load_plugins.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.rmdir.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.smarty_include_php.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.process_compiled_include.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.run_insert_handler.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.process_cached_inserts.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.write_file.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.write_compiled_include.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.rm_auto.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.get_include_path.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.write_compiled_resource.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.get_php_resource.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.read_cache_file.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.create_dir_structure.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.assign_smarty_interface.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/Smarty_Compiler.class.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/debug.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/Config_File.class.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/nodeServerStatus.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/login.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/innerSystemCatalog.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/definePgpoolConfParam.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/systemDb.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/setLang.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/queryCache.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/pgconfig.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/common.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/status.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/config.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/command.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/pgmgtNotFound.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/changePassword.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/systemDb.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/pleaseInstall.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/nodeStatus.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/login.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/queryCache.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/procInfo.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/status.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/innerSystemCatalog.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/pgconfig.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/ja</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/ja/changePassword.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/ja/systemDb.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/ja/login.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/ja/queryCache.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/ja/status.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/ja/pgconfig.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/ja/config.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/ja/nodeServerStatus.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/en</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/en/changePassword.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/en/systemDb.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/en/login.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/en/queryCache.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/en/status.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/en/pgconfig.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/en/config.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/en/nodeServerStatus.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/footer.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/innerError.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/innerNodeServerStatus.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/menu.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/config.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/nodeServerStatus.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/error.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/screen.css</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/conf</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/conf/pgmgt.conf.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/innerNodeServerStatus.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/changePassword.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/question.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/background.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/descending.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/ascending.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/elephant.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/Thumbs.db</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/spacer.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/logo.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/back.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/marker.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/seaen.jpg</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/turtle.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/index.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates_c</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/lang</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/lang/ja.lang.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/lang/en.lang.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/procInfo.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/nodeStatus.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/help.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/logout.php</td></tr>
+</table>
+<li>
+It accesses install/phpinfo.php from Web a browser. It is confirmed that the function of php_mstring and php_pgsql is effective.
+<ul>
+<li>"Multibyte Support" is "enabled". </li>
+<li>"PostgreSQL Support" is "enabled".</li>
+</ul>
+<p>Please confirm the setting of PHP again when these items are not "enabled".</p>
+</li>
+</li>
+<li>
+The writing right of access is set to the "templates_c" directory in the progressing directory and the "conf/pgmgt.conf.php" file.
+
+<div id="cmd_window"><table>
+<tr><td class="cmd_window">cd /var/www/html/admin-tool</td></tr>
+<tr><td class="cmd_window">chmod 777 templates_c</td></tr>
+</table>
+</div>
+ </li>
+ <li>
+The writing authority to pgmgt.conf.php is set to apache process user.
+<div id="cmd_window"><table>
+<tr><td class="cmd_window">cd /var/www/html/admin-tool/conf</td></tr>
+<tr><td class="cmd_window">chown apache pgmgt.conf.php</td></tr>
+<tr><td class="cmd_window">chmod 644 pgmgt.conf.php</td></tr>
+</table>
+</div>
+ </li>
+ <li>
+The writing right is set to the pgpool.conf file and the pcp.conf file that is the configuration file of pgpool.
+<div id="cmd_window"><table>
+<tr><td class="cmd_window">cd /usr/local/etc</td></tr>
+<tr><td class="cmd_window">chown apache pgpool.conf</td></tr>
+<tr><td class="cmd_window">chmod 644 pgpool.conf</td></tr>
+<tr><td class="cmd_window">chown apache pcp.conf</td></tr>
+<tr><td class="cmd_window">chmod 644 pcp.conf</td></tr>
+</table>
+</div>
+ </li>
+ <li>
+ The Multi byte and the PostgreSQL library is confirmed. Following URL is accessed from a browser.
+ <p>http://ServerName/admin-tool/install/phpinfo.php</p>
+ It is confirmed that the set up information of PHP is displayed.
+ Whether Multibyte Support and PostgreSQL Support are enabled is confirmed to them. Please confirm the setting of PHP again when not becoming it.
+ </li>
+ <li>
+It accesses the installer. URL is as follows.
+<p>http://ServerName/admin-tool/install/index.php</p>
+ </li>
+ <li>
+The display language is selected.
+<p><img src="images/1.jpg"></p>
+ </li>
+ <li>
+The right of access of the directory is confirmed. When <img src="images/ok.gif"> is displayed right, it is appropriately set. Please click "Next" button.
+Please it is not appropriately set when <img src="images/ng.gif"> is displayed, and confirm the error message, correct, and push "Check" button.
+<p><img src="images/2.jpg"></p>
+ </li>
+ <li>
+The management tool is set. When <img src="images/ok.gif"> is displayed right, it is appropriately set. Please click "Next" button.
+Please it is not appropriately set when <img src="images/ng.gif"> is displayed, and confirm the error message, correct, and push "Check" button.
+<p>
+ <dl>
+ <dt>pgpool.conf</dt>
+ <dd>The full path of the pgpool.conf file is specified. </dd>
+ <dt>Password File</dt>
+ <dd>The full path of the pcp.conf file is specified. </dd>
+ <dt>pgpool Command</dt>
+ <dd>The full path of the pgpool command file is specified. </dd>
+ <dt>PCP Directory</dt>
+ <dd>The full path of the directory that the PCP command group has installed is specified. </dd>
+ <dt>PCP Hostname</dt>
+ <dd>The host name that has installed the PCP command is specified. </dd>
+ <dt>Refresh Time</dt>
+ <dd>The interval when the status of pgpool is updated automatically is set every second. It doesn't update it automatically in case of 0. </dd>
+ </dl>
+</p>
+<p><img src="images/3.jpg"></p>
+ </li>
+ <li>
+The installation of the management tool finished. At last, The "install" directory is deleted.
+<p><img src="images/4.jpg"></p>
+<div id="cmd_window"><table>
+<tr><td class="cmd_window">rm -Rf /var/www/html/admin-tool/install</td></tr>
+</table>
+</div>
+ </li>
+ </ol>
+<h3>Display of login screen</h3>
+When "top" is clicked on the installation completion screen, the login screen of the management tool is displayed. The username and the password set according to installation procedure 2 are input and it logs it in.
+</div>
+<div id="footer">
+<address>
+Version 1.0 Alpha<br />
+Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+</address>
+</div>
+</body>
+</html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Login</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="../index_en.html">Introduction</a></li>
+ <li><a href="install.html">Install</a></li>
+ <li><a href="login.html">Login</a></li>
+ <li><a href="status.html">pgpool Status</a></li>
+ <li><a href="nodeServerStatus.html">Node Status</a></li>
+ <li><a href="queryCache.html">Query Cache</a></li>
+ <li><a href="systemDb.html">Partitioning Rule</a></li>
+ <li><a href="pgconfig.html">pgpool.conf Setting</a></li>
+ <li><a href="config.html">pgpoolAdmin Setting</a></li>
+ <li><a href="changePassword.html">Change Password</a></li>
+ <li><a href="logout.html">Logout</a></li>
+ <li><a href="errorCode.html">Error Code</a></li>
+ </ul>
+</div>
+<div id="content">
+
+ <h2>Login</h2>
+ <h3>Summary</h3>
+ <p>It is a login screen. Please input the user-name and the password set to pcp.conf.<br />
+ When the attestation succeeds, the status screen is displayed. The login screen is displayed again when failing.
+
+ <h3>Feature</h3>
+
+ <form action="login.php" method="post" name="Login">
+ <table>
+ <tbody>
+ <tr>
+ <th><label>Login Name</label></th>
+ <td><input id="username" name="username" type="text" size="25" />
+ Please input the user-name here. </td>
+ </tr>
+
+ <tr>
+ <th><label>Password</label></th>
+ <td><input id="password" name="password" type="password" size="25" />
+ Please input the password here. </td>
+ </tr>
+ </tbody>
+ <tfoot>
+ <tr>
+
+ <td colspan="2"><input type="submit" name="Button2" value="Login" />
+ Please push the button when you input the user-name and the password. </td>
+ </tr>
+ </tfoot>
+ </table>
+ </form>
+</div>
+</body><div id="footer">
+ <address>
+ Version 1.0 Alpha<br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+ </address></div>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Logout</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="../index_en.html">Introduction</a></li>
+ <li><a href="install.html">Install</a></li>
+ <li><a href="login.html">Login</a></li>
+ <li><a href="status.html">pgpool Status</a></li>
+ <li><a href="nodeServerStatus.html">Node Status</a></li>
+ <li><a href="queryCache.html">Query Cache</a></li>
+ <li><a href="systemDb.html">Partitioning Rule</a></li>
+ <li><a href="pgconfig.html">pgpool.conf Setting</a></li>
+ <li><a href="config.html">pgpoolAdmin Setting</a></li>
+ <li><a href="changePassword.html">Change Password</a></li>
+ <li><a href="logout.html">Logout</a></li>
+ <li><a href="errorCode.html">Error Code</a></li>
+ </ul>
+</div>
+<div id="content">
+
+ <h2>Logout</h2>
+ <h3>Summary</h3>
+ <p> This menu is displayed, if login is succeed.
+ <h3>Feature</h3>
+ If logout is clicked, it logs out and the login screen is displayed.
+</div>
+<div id="footer">
+ <address>
+ Version 1.0 Alpha<br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+ </address>
+</div>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Node Satsus</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+
+</head>
+<body>
+<div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="../index_en.html">Introduction</a></li>
+ <li><a href="install.html">Install</a></li>
+ <li><a href="login.html">Login</a></li>
+ <li><a href="status.html">pgpool Status</a></li>
+ <li><a href="nodeServerStatus.html">Node Status</a></li>
+ <li><a href="queryCache.html">Query Cache</a></li>
+ <li><a href="systemDb.html">Partitioning Rule</a></li>
+ <li><a href="pgconfig.html">pgpool.conf Setting</a></li>
+ <li><a href="config.html">pgpoolAdmin Setting</a></li>
+ <li><a href="changePassword.html">Change Password</a></li>
+ <li><a href="logout.html">Logout</a></li>
+ <li><a href="errorCode.html">Error Code</a></li>
+ </ul>
+</div>
+<div id="content">
+
+<h2>Node Status</h2>
+<h3>Summary</h3>
+On the node status screen,
+<ul><li>IP Address</li>
+ <li>Port</li>
+ <li>Status</li>
+ <li>Detail</li>
+ </ul>
+<p>can be acquired for each nodes.</p>
+<p><img src="images/nodestatus.jpg" /></p>
+<h3>Feature</h3>
+<table>
+ <tr>
+ <th class="right_border"><label>IP Address</label></th>
+ <td>The IP address of the node.</td>
+ </tr>
+ <tr>
+ <th class="right_border"><label>Port</label></th>
+
+ <td>The port number that the postmaster runs on.</td>
+ </tr>
+ <tr>
+ <th class="right_border"><label>Status</label></th>
+ <td>It is displayed whether postmaster is operating.</td>
+ </tr>
+ <tr>
+
+ <th class="right_border"><label>Detail</label></th>
+ <td>When the postmaster runs on, it will be displayed.<br />
+Pg_settings information is displayed for PostgreSQL, and pool_status is displayed for pgpool.
+ </td>
+ </tr>
+
+</table>
+ </td>
+ </tr>
+</div>
+
+<div id="footer">
+ <address>
+ Version 1.0 Alpha<br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+ </address></div>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>pgpool Setting</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="../index_en.html">Introduction</a></li>
+ <li><a href="install.html">Install</a></li>
+ <li><a href="login.html">Login</a></li>
+ <li><a href="status.html">pgpool Status</a></li>
+ <li><a href="nodeServerStatus.html">Node Status</a></li>
+ <li><a href="queryCache.html">Query Cache</a></li>
+ <li><a href="systemDb.html">Partitioning Rule</a></li>
+ <li><a href="pgconfig.html">pgpool.conf Setting</a></li>
+ <li><a href="config.html">pgpoolAdmin Setting</a></li>
+ <li><a href="changePassword.html">Change Password</a></li>
+ <li><a href="logout.html">Logout</a></li>
+ <li><a href="errorCode.html">Error Code</a></li>
+ </ul>
+</div>
+<div id="content">
+ <h2>pgpool Setting</h2>
+ <h3>Summary</h3>
+
+ The content of pgpool.conf that is the configuration file of pgpool set can be displayed and be changed.
+ <h3>Feature</h3>
+ Please input the value that wants to change and push the update button.
+ <h3>Addition of A backend host</h3>
+ Please push the add button when you want to add a new back end host. <br />
+ It inputs in back end host's item and a new input column can be done, and input information on a new back end host there, please.<br />
+ Please push the update button when input ends.
+ <h3>Deletion of backend host</h3>
+
+ Please push the delete button at the right of the host setting when you want to delete the back end host who has registered. <br />
+ <div id="submenu">
+ <h3>Table of Contents</h3>
+ <ul>
+ <li><a href="#connections">Connections</a></li>
+ <li><a href="#backends">Backends</a></li>
+ <li><a href="#pcp">PCP</a></li>
+
+ <li><a href="#logging">Logging</a></li>
+ <li><a href="#replication">Replication</a></li>
+ <li><a href="#health-check">Health Check</a></li>
+ <li><a href="#system-database">System Database</a></li>
+ <li><a href="#others">Others</a></li>
+ </ul>
+
+ </div>
+ <h3><a name="connections">Connections</a></h3>
+ <table>
+ <thead>
+ <tr>
+ <th>Parameter</th>
+ <th>Detail</th>
+
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <th><label>Specifies the addresses to listen on for TCP/IP connections</label>
+ <br>listen_addresses (string)</th>
+ <td>
+Specifies the addresses to listen on for TCP/IP connections. Set to '*' for all configured IP interfaces, '' for no TCP/IP connections, or else to a specific IP address or host name. The default is 'localhost'. Note that connections via UNIX domain sockets are always allowed.
+ </td>
+
+ </tr>
+ <tr>
+ <th><label>The port number where pgpool is running on</label>
+ <br>port (integer)</th>
+ <td>The port number where pgpool is running on. Default value is 9999.</td>
+ </tr>
+ <tr>
+
+ <th><label>The socket directory pgpool could connect</label>
+ <br>socket_dir (string)</th>
+ <td>The directory of unix domain socket for PostgreSQL server. Default value is '/tmp'.</td>
+ </tr>
+ <tr>
+ <th><label>Number of pgpool process initially forked</label>
+ <br>num_init_children (integer)</th>
+
+ <td>Number of pgpool process initially forked. Default value is 32.</td>
+ </tr>
+ <tr>
+ <th><label>Number of connection pools each pgpool server process are keeping</label>
+ <br>max_pool (integer)</th>
+ <td>
+Number of connection pools each pgpool server process are keeping. pgpool will make a new connection if there's no user name and database name pair yet. Thus it is recommended that max_pool exceeds the number of such that possible pairs. If it exceeds, the oldest connection is discarded and the new connection uses the slot. The default value is 4.
+ </td>
+
+ </tr>
+ <tr>
+ <th><label>Life of a idle child process in seconds</label>
+ <br>child_life_time (integer)</th>
+ <td>Life of a idle child process in seconds. This will prevent unwanted memory leaks or other problems. Default is 300. Set it to 0 disables this feature.</td>
+ </tr>
+ <tr>
+
+ <th><label>Life time for each idle connection in seconds</label>
+ <br>connection_life_time (integer)</th>
+ <td>Life time for each idle connection in seconds. 0 means the life time is forever. The default value is 0.</td>
+ <tr>
+ <th><label>If child_max_connections connections were received, child exits</label>
+ <br>child_max_connections (integer)</th>
+
+ <td> If child_max_connections connections were received, child exits. 0 means no exit. The default value is 0.</td>
+ </tr>
+ <tr>
+ <th><label>If true, cache connections to PostgreSQL</label>
+ <br>connection_cache</th>
+ <td>If true, cache connections to PostgreSQL. Default value is true.</td>
+
+ </tr>
+ <tr>
+ <th><label>Pgpool2 server name where running on</label>
+ <br>pgpool2_hostname (string)</th>
+ <td>The host name that pgpool2 runs is specified.</td>
+ </tr>
+ </tbody>
+ <tfoot>
+
+ <tr>
+ <td colspan="2"></td>
+ </tr>
+ </tfoot>
+ </table>
+ <h3><a name="backends">Backends</a></h3>
+ <table>
+ <thead>
+
+ <tr>
+ <th>Parameter</th>
+ <th>Detail</th>
+ <td></td>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+
+ <th><label>The socket directory PostgreSQL could connect</label>
+ <br>backend_socket_dir (string)</th>
+ <td>The directory of unix domain socket for PostgreSQL server. Default value is '/tmp'.</td>
+ </tr>
+ <tr>
+ <th><label>The real PostgreSQL server name pgpool could connect</label><br />backend_hostname (string)</th>
+
+ <td>The host name that PostgreSQL runs is specified.</td>
+ </tr>
+ <tr>
+ <th><label>The port number where real PostgreSQL server is running on</label><br />backend_port (integer)</th>
+ <td>It is a port number that postmaster is running.</td>
+ </tr>
+ <tr>
+ <th><label>Load balance weight when pgpool is running in the state of load balance mode</label><br />backend_weight (integer)</th>
+
+ <td>The weight at the load balance mode is set by the value from 0 to 1. Relative weight is calculated and distributed from the value specified with all the back end servers. </td>
+ </tr>
+ </tbody>
+ </table>
+ <h3><a name="pcp">PCP (pgpool Control Port)</a></h3>
+ <table>
+ <thead>
+ <tr>
+
+ <th>Parameter</th>
+ <th>Detail</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <th><label>The port number where pcp is running on</label>
+
+ <br>pcp_port (integer)</th>
+ <td>It is a port number to connect it with PCP. Default is 9898.</td>
+ </tr>
+ <tr>
+ <th><label>The socket directory pcp could connect</label>
+ <br>pcp_socket_dir (string)</th>
+ <td>The directory of unix domain socket for PCP. Default value is '/tmp'.</td>
+
+ </tr>
+ <tr>
+ <th><label>When there is no response in this time from client, it disconnect and stop</label>
+ <br>pcp_timeout (integer)</th>
+ <td>The time-out of the PCP command is set. The connection disconnect when there will not be response in this time. </td>
+ </tr>
+ </tbody>
+ <tfoot>
+
+ <tr>
+ <td colspan="2"></td>
+ </tr>
+ </tfoot>
+ </table>
+ <h3><a name="logging">Logging</a></h3>
+ <table>
+ <thead>
+
+ <tr>
+ <th>Parameter</th>
+ <th>Detail</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <th><label>The directory name to store pgpool's log files</label>
+
+ <br>logdir (string)</th>
+ <td>The directory name to store pgpool's log files. Currently only a file named pgpool.pid(has pgpool's process id) is stored. The default value for logdir is '/tmp'.</td>
+ </tr>
+ <tr>
+ <th><label>If true timestamp is added to each log line</label>
+ <br>print_timestamp</th>
+ <td>If true timestamp is added to each log line. Default value is true.</td>
+
+ </tr>
+ </tbody>
+ <tfoot>
+ <tr>
+ <td colspan="2"></td>
+ </tr>
+ </tfoot>
+ </table>
+ <h3><a name="replication">Replication</a></h3>
+
+ <table>
+ <thead>
+ <tr>
+ <th>Parameter</th>
+ <th>Detail</th>
+ </tr>
+ </thead>
+ <tbody>
+
+ <tr>
+ <th><label>Set this true if you are going to use replication functionality</label>
+ <br>replication_mode</th>
+ <td>Set this true if you are going to use replication functionality. Default is false.</td>
+ </tr>
+ <tr>
+ <th><label>If true, pgpool will wait for the completion of the master query before sending a query to the secondary server</label>
+
+ <br>replication_strict</th>
+ <td>If true, pgpool will wait for the completion of the master query before sending a query to the secondary server. This is the safest and default operating mode for pgpool. Default is true.
+</td>
+ </tr>
+ <tr>
+ <th><label>In non strict replication mode, there will be a chance of deadlock</label>
+ <br>replication_timeout (integer)</th>
+ <td>In non strict replication mode, there will be a chance of deadlock. pgpool will abort the session if master or secondary does not respond within this milli seconds. if set to 0, timeout is disabled.</td>
+
+ </tr>
+ <tr>
+ <th><label>Stop replication mode on data mismatch between master and secondary</label>
+ <br>replication_stop_on_mismatch</th>
+ <td>Stop replication mode on data mismatch between master and secondary. Default is false.</td>
+ </tr>
+ <tr>
+
+ <th><label>Semicolon separated SQL commands to be issued at the end of session</label>
+ <br>reset_query_list (string)</th>
+ <td>SQL command to initialize the connection when the session ends is delimited by ";".</td>
+ </tr>
+ </tbody>
+ <tfoot>
+ <tr>
+ <td colspan="2"></td>
+
+ </tr>
+ </tfoot>
+ </table>
+ <h3><a name="health-check">Health Check</a></h3>
+ <table>
+ <thead>
+ <tr>
+ <th>Parameter</th>
+
+ <th>Detail</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <th><label>Pgpool does "health check" periodically to detect PostgreSQL servers down, network communication problems or as such</label>
+
+ <br>health_check_timeout (integer)</th>
+ <td>pgpool does "health check" periodically to detect PostgreSQL servers down, network communication problems or as such. If something is going wrong, pgpool will automatically run into fail over or degeneration mode.</td>
+ </tr>
+ <tr>
+ <th><label>Specifies the interval for next health checking. 0 means no health checking</label>
+ <br>health_check_period (integer)</th>
+ <td>Specifies the interval for next health checking. 0 means no health checking. The default is 0(i.e. no health checking).</td>
+
+ </tr>
+ <tr>
+ <th><label>PostgreSQL user name for the health checking</label>
+ <br>health_check_user (string)</th>
+ <td>PostgreSQL user name for the health checking.</td>
+ </tr>
+ </tbody>
+
+ <tfoot>
+ <tr>
+ <td colspan="2"></td>
+ </tr>
+ </tfoot>
+ </table>
+ <h3><a name="system-database">System Database</a></h3>
+ <table>
+
+ <thead>
+ <tr>
+ <th>Parameter</th>
+ <th>Detail</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+
+ <th><label>The server name system database running on</label>
+ <br>system_db_hostname (string)</th>
+ <td>The host name that system DB is operating is specified. It connects with Unix domain socket when not specifying it. </td>
+ </tr>
+ <tr>
+ <th><label>The port number system database could connect</label>
+ <br>system_db_port (integer)</th>
+
+ <td>The port number to connect system DB is specified.</td>
+ </tr>
+ <tr>
+ <th><label>The database name of system database</label>
+ <br>system_db_dbname (string)</th>
+ <td>The data base name of system DB is specified. </td>
+ </tr>
+ <tr>
+ <th><label>The schema name of system database</label>
+ <br>system_db_schema (string)</th>
+ <td>The schema name of system DB is specified. </td>
+ </tr>
+ <tr>
+ <th><label>The username when connection system database</label>
+ <br>system_db_user (string)</th>
+ <td>The username connected with system DB is specified.</td>
+ </tr>
+ <tr>
+ <th><label>The password of system database who connects system database</label>
+ <br>system_db_password (string)</th>
+ <td>The password connected with system DB is specified.</td>
+ </tr>
+ </tbody>
+
+ <tfoot>
+ <tr>
+ <td colspan="2"></td>
+ </tr>
+ </tfoot>
+ </table>
+ <h3><a name="others">Others</a></h3>
+ <table>
+
+ <thead>
+ <tr>
+ <th>Parameter</th>
+ <th>Detail</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+
+ <th><label>Perform load balancing for SELECT</label>
+ <br>load_balance_mode</th>
+ <td>Perform load balancing for SELECT. Default is false.</td>
+ </tr>
+ <tr>
+ <th><label>Run in master/slave mode</label>
+ <br>master_slave_mode</th>
+
+ <td>Run in master/slave mode. See 14 for more details. Default value is false. This mode is not compatible with replication_mode.</td>
+ </tr>
+ <tr>
+ <th><label> If you replicate a table having SERIAL data type column, sometimes the serial value does not match between servers</label>
+ <br>insert_lock</th>
+ <td>
+If you replicate a table having SERIAL data type column, sometimes the serial value does not match between servers. You can avoid the problem by using a table lock (with a performance penalty due to
+less currency in transactions). For this you need to rewrite you query:
+
+<p>
+INSERT INTO ....
+</p>
+<p>
+to:
+</p>
+<p>
+BEGIN;<br />
+LOCK TABLE ...<br />
+INSERT INTO ...<br />
+COMMIT;
+</p>
+<p>
+This is painfull. If you turn on insert_lock, pgpool will
+automatically do the rewriting for you.
+
+</p>
+ </td>
+ </tr>
+ <tr>
+ <th><label>If true, ignore leading white spaces of each query while pgpool judges if the query is a SELECT so that it can be load balanced</label>
+ <br>ignore_leading_white_space</th>
+ <td>If true, ignore leading white spaces of each query while pgpool judges if the query is a SELECT so that it can be load balanced. This is usefull for certain APIs such as DBI/DBD which is
+ know as adding an extra leading white space.</td>
+ </tr>
+
+ <tr>
+ <th><label>Run in parallel mode</label>
+ <br>parallel_mode</th>
+ <td>When pgpool runs on parallel mode, true is specified. It is necessary to specify a partitioning rule in this case.</td>
+ </tr>
+ <tr>
+ <th><label>If true, print all statements to the log</label>
+
+ <br>log_statement</th>
+ <td>If true, print all statements to the log. Like the log_statement option to PostgreSQL, this allows for observing queries without engaging in full debugging.</td>
+ </tr>
+ <tr>
+ <th><label>Perform query cache</label>
+ <br>enable_query_cache</th>
+ <td>When the result of SELECT is cached, it makes it to true.</td>
+
+ </tr>
+ </tbody>
+ <tfoot>
+ <tr>
+ <td colspan="2"></td>
+ </tr>
+ </tfoot>
+ </table>
+</div>
+
+<hr class="hidden" />
+<div id="footer">
+ <address>
+ Version 1.0 Alpha<br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+ </address></div>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Query Cache</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="../index_en.html">Introduction</a></li>
+ <li><a href="install.html">Install</a></li>
+ <li><a href="login.html">Login</a></li>
+ <li><a href="status.html">pgpool Status</a></li>
+ <li><a href="nodeServerStatus.html">Node Status</a></li>
+ <li><a href="queryCache.html">Query Cache</a></li>
+ <li><a href="systemDb.html">Partitioning Rule</a></li>
+ <li><a href="pgconfig.html">pgpool.conf Setting</a></li>
+ <li><a href="config.html">pgpoolAdmin Setting</a></li>
+ <li><a href="changePassword.html">Change Password</a></li>
+ <li><a href="logout.html">Logout</a></li>
+ <li><a href="errorCode.html">Error Code</a></li>
+ </ul>
+</div>
+<div id="content">
+
+ <h2>Query Cache</h2>
+ <form action="queryCache.php" method="post" name="queryCache" id="queryCache">
+ <h3>Summary</h3>
+
+ <p>It is possible to cache the SELECT query, if enable_query_cache of pgpool.conf is true.</p>
+ <h3>Feature</h3>
+ <p>It is possible to search for the data that exists in the query cache. It searches for the query string and the database name, and it processes it by the partial agreement retrieval. It becomes a search for the logical product with the query string and the database name.
+ <table>
+ <tbody>
+ <tr> <tr>
+ <td nowrap="nowrap" class="column">Query</td>
+
+ <td><input name="qQueryStr" type="text" id="qQueryStr" size="50" value=""/>
+ </td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap" class="column">Database</td>
+ <td><input name="qDb" type="text" id="qDb" size="50" value=""/></td>
+ </tr>
+ </tbody>
+
+ <tfoot>
+ <tr><td colspan="2">
+ <input type="submit" name="search" value="Search" />
+ <input type="submit" name="clear" value="Clear" />
+ </td></tr>
+ </table>
+ <h3>Query cache list</h3>
+ <p>
+
+The query string, database name and create time which existing in cache is displayed. When "Query", "Database" and "Create Time" clicked, the records is sorted. Whenever clicking, it is sorted in the ascending order or the descending order. </p>
+
+ <p>When the check is put in the check box in the left of the data that wants to be deleted, and the deletion button is pushed, it is deleted.
+</p>
+ <table>
+ <tbody>
+ <tr>
+ <th><input type="checkbox" name="all" value="" /></th>
+ <th>Query</th>
+
+ <th>Database</th>
+ <th>Create Time</th>
+ </tr>
+ </tbody>
+ <tfoot>
+ <tr><td colspan="4">
+ <input type="submit" name="ButtonName" value="Delete" />
+ </td></tr>
+
+ </table>
+</div>
+<div id="footer">
+ <address>
+ Version 1.0 Alpha<br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+ </address></div>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>pgpool Status</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="../index_en.html">Introduction</a></li>
+ <li><a href="install.html">Install</a></li>
+ <li><a href="login.html">Login</a></li>
+ <li><a href="status.html">pgpool Status</a></li>
+ <li><a href="nodeServerStatus.html">Node Status</a></li>
+ <li><a href="queryCache.html">Query Cache</a></li>
+ <li><a href="systemDb.html">Partitioning Rule</a></li>
+ <li><a href="pgconfig.html">pgpool.conf Setting</a></li>
+ <li><a href="config.html">pgpoolAdmin Setting</a></li>
+ <li><a href="changePassword.html">Change Password</a></li>
+ <li><a href="logout.html">Logout</a></li>
+ <li><a href="errorCode.html">Error Code</a></li>
+ </ul>
+</div>
+<div id="content">
+
+<h2>pgpool Status</h2>
+ <h3>Summary</h3>
+On the status screen, it is possible to display it for pgpool as follows,
+<ul><li>Summary</li>
+ <li>Process Information</li>
+ <li>Node Information</li>
+ <li>Log</li>
+</ul>
+and operate it.
+<ul>
+ <li>Start</li>
+ <li>Stop</li>
+ <li>Restart</li>
+</ul>
+ <h3>Feature</h3>
+ <p><img src="images/status.jpg" /></p>
+<table>
+ <tr>
+ <th class="right_border"><label>Summary</label></th>
+ <td>The content of pgpool.conf is displayed.</td>
+ </tr>
+ <tr>
+ <th class="right_border"><label>Process Information</label></th>
+ <td><p>In each process for pgpool,</p>
+ <ul>
+ <li>Process ID</li>
+ <li>Database Name</li>
+ <li>Username</li>
+ <li>Process start time</li>
+ <li>Connection create time</li>
+ <li>Protocol major version</li>
+ <li>Protocol miner version</li>
+ <li>Use of connection</li>
+ </ul>
+ <p>will be shown.<br />
+ In each process, it will be displayed only the number of max_pool in pgpool.conf in the maximum.
+ </p></td>
+ </tr>
+ <tr>
+ <th class="right_border"><label>Node Information</label></th>
+ <td><p>In each node,</p>
+ <ul>
+ <li>IP address</li>
+ <li>Port number</li>
+ <li>Status</li>
+ <li>Weight</li>
+ <li>Disconnect button</li>
+ </ul>
+ <p>will be shown. But, the button for disconnection will not be shown when pgpool is running on parallel mode.</p>
+ <p>In the status,</p>
+ <ul>
+ <li>Up. Disconnect</li>
+ <li>Up. Connected</li>
+ <li>Down</li>
+ </ul>
+ <p>the three states will be shown.</p></td>
+ </tr>
+ <tr>
+ <th class="right_border"><label>Log</label></th>
+ <td>It is possible to display about log of pgpool when pgpool doesn't run in daemon mode(-n).</td>
+ </tr>
+ <tr>
+ <th class="right_border"><label>Start</label></th>
+ <td>It is possible to start pgpool when it is stopped. The start option of pgpool
+ <ul>
+ <li>Clears query cache(-c)</li>
+ <li>don't run in daemon mode(-n)</li>
+ <li>stop mode(-m)</li>
+ <li>pgpool.conf(-f)</li>
+ <li>pcp.conf(-F)</li>
+ </ul>
+ can be specified.
+ <p><img src="images/start.jpg" /></p>
+ </td>
+ </tr>
+ <tr>
+ <tr>
+ <th class="right_border"><label>Stop</label></th>
+ <td>All the processes of pgpool are stopped. The pgpool stop option is displayed, when "pgpool Stop" is pushed. There are stop mode for pgpool as follows.
+ <ul>
+ <li>smart</li>
+ <li>fast</li>
+ <li>immediate</li>
+ </ul>
+ If pgpool is stopped, pgpool status in the status window becomes "pgpool stop" and the start option for pgpool is displayed.
+ <p><img src="images/stop.jpg" /></p>
+ </td>
+ </tr>
+ <tr>
+ <th class="right_border"><label>Restart</label></th>
+ <td>First, all the processes of pgpool are stopped and then pgpool start process is executed. Both the start and the stop of the abovementioned items can be specified.
+ <p><img src="images/restart.jpg" /></p>
+ </td>
+ </tr>
+</table>
+
+<table>
+</table>
+</div>
+<div id="footer">
+ <address>
+ Version 1.0 Alpha<br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+ </address></div>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Partitioning Rule</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="../index_en.html">Introduction</a></li>
+ <li><a href="install.html">Install</a></li>
+ <li><a href="login.html">Login</a></li>
+ <li><a href="status.html">pgpool Status</a></li>
+ <li><a href="nodeServerStatus.html">Node Status</a></li>
+ <li><a href="queryCache.html">Query Cache</a></li>
+ <li><a href="systemDb.html">Partitioning Rule</a></li>
+ <li><a href="pgconfig.html">pgpool.conf Setting</a></li>
+ <li><a href="config.html">pgpoolAdmin Setting</a></li>
+ <li><a href="changePassword.html">Change Password</a></li>
+ <li><a href="logout.html">Logout</a></li>
+ <li><a href="errorCode.html">Error Code</a></li>
+ </ul>
+</div>
+<div id="content">
+
+ <h2>Partitioning Rule</h2>
+ <h3>Summary</h3>
+
+The setting of a parallel query is defined for parallel_mode=true in pgpool.conf.
+ <h3>Feature</h3>
+The data type of each column is as follows. <p />
+<table>
+ <tr>
+ <th class="right_border"><label>Column Name</label></th>
+ <th class="right_border"><label>Data Type</label></th>
+ <th><label>Description</label></th>
+
+ </tr>
+ <tr>
+ <th class="right_border"><label>Database Name</label></th>
+ <td class="right_border">TEXT</td>
+ <td>Distributed database name</td>
+ </tr>
+ <tr>
+
+ <th class="right_border"><label>Schema Name</label></th>
+ <td class="right_border">TEXT</td>
+ <td>Schema name of database</td>
+ </tr>
+
+ <tr>
+ <th class="right_border"><label>Table</label></th>
+ <td class="right_border">TEXT</td>
+ <td>Distributed table name</td>
+ </tr>
+
+ <tr>
+ <th class="right_border"><label>Column Name of Distributed key</label></th>
+ <td class="right_border">TEXT</td>
+ <td>Column Name of Distributed key</td>
+ </tr>
+
+ <tr>
+ <th class="right_border"><label>Column List</label></th>
+ <td class="right_border">TEXT[]</td>
+ <td>List of row name of table that distributes data</td>
+ </tr>
+ <tr>
+ <th class="right_border"><label>Type List of Column</label></th>
+
+ <td class="right_border">TEXT[]</td>
+ <td>List of type of row name</td>
+ </tr>
+ <tr>
+ <th class="right_border"><label>Distributed Function Name</label></th>
+ <td class="right_border">TEXT</td>
+ <td>Function name that defines partitioning rule</td>
+
+ </tr>
+</table>
+<p />
+<h3>Add</h3>
+The value is input to all columns and "Add" button is pushed. <br />
+Please enclose each element with a single quotation, and delimit each element by the comma about the column list and the type list of column.
+
+<h3>Update</h3>
+Please click the data base name of the definition that wants to be updated. Please the value must be displayed in the input field and correct and push "Update" button. However, neither the data base name, the schema name nor the table name are revocable.
+<h3>Delete</h3>
+Please click the data base name of the definition that wants to be deleted. Please push "Delete" button. The confirmation dialog is displayed and push the "OK" button, please.
+</div>
+<div id="footer">
+ <address>
+ Version 1.0 Alpha<br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+ </address></div>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>pgpool Administration Tool</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="screen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="header">
+ <h1><img src="images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="#">Introduction</a></li>
+ <li><a href="en/install.html">Install</a></li>
+ <li><a href="en/login.html">Login</a></li>
+ <li><a href="en/status.html">pgpool Status</a></li>
+ <li><a href="en/nodeServerStatus.html">Node Status</a></li>
+ <li><a href="en/queryCache.html">Query Cache</a></li>
+ <li><a href="en/systemDb.html">Partitioning Rule</a></li>
+ <li><a href="en/pgconfig.html">pgpool.conf Setting</a></li>
+ <li><a href="en/config.html">pgpoolAdmin Setting</a></li>
+ <li><a href="en/changePassword.html">Change Password</a></li>
+ <li><a href="en/logout.html">Logout</a></li>
+ <li><a href="en/errorCode.html">Error Code</a></li>
+ </ul>
+</div>
+<div id="content">
+ <h2>Introduction</h2>
+ The pgpool Administration Tool is management tool of pgpool. It is possible to monitor, start, stop pgpool and change setting for pgpool.
+ <h3>Screen</h3>
+ The menu is displayed left and the function in each menu is displayed right on Screen of pgpoolAdmin.
+ <p><img src="en/images/status.jpg"/></p>
+ After login, the following menus are displayed.
+ <ul>
+ <li>pgpool Status</li>
+ <li>Node Status</li>
+ <li>Query Cache</li>
+ <li>Partitioning Rule</li>
+ <li>pgpool.conf Setting</li>
+ <li>pgpoolAdmin Setting</li>
+ <li>Change Password</li>
+ <li>Logout</li>
+ </ul>
+ <p>
+ There is a help button on the right of the screen. Help can be displayed by clicking it.
+</div>
+<div id="footer">
+ <address>
+ Version 1.0 Alpha<br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+ </address>
+</div>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>pgpool Administration Tool</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="screen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="header">
+ <h1><img src="images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="#">はじめに</a></li>
+ <li><a href="ja/install.html">インストール</a></li>
+ <li><a href="ja/login.html">ログイン</a></li>
+ <li><a href="ja/status.html">pgpoolステータス</a></li>
+ <li><a href="ja/nodeServerStatus.html">ノードステータス</a></li>
+ <li><a href="ja/queryCache.html">クエリキャッシュ</a></li>
+ <li><a href="ja/systemDb.html">分散ルール</a></li>
+ <li><a href="ja/pgconfig.html">pgpool.conf設定</a></li>
+ <li><a href="ja/config.html">管理ツール設定</a></li>
+ <li><a href="ja/changePassword.html">パスワード変更</a></li>
+ <li><a href="ja/logout.html">ログアウト</a></li>
+ <li><a href="ja/errorCode.html">エラーコード</a></li>
+ </ul>
+</div>
+<div id="content">
+ <h2>はじめに</h2>
+ pgpool Administration Toolはpgpoolの管理をするためのツールです。GUIベースで、pgpoolの状態監視や起動・停止、pgpool.confの設定を行うことができます。
+ <h3>画面構成</h3>
+ pgpoolAdminの画面は、左側にメニューが表示され、右側に各メニューでの機能が表示されます。
+ <p><img src="ja/images/status.jpg"/></p>
+ ログイン後に表示されるメニューは
+ <ul>
+ <li>pgpoolステータス</li>
+ <li>ノードステータス</li>
+ <li>クエリキャッシュ</li>
+ <li>分散ルール</li>
+ <li>pgpool.conf設定</li>
+ <li>管理ツール設定</li>
+ <li>パスワード変更</li>
+ <li>ログアウト</li>
+ </ul>
+ になります。<p>
+ 画面右上にはヘルプボタンがあります。ヘルプボタンを押すと開いている機能でのヘルプを表示することができます。
+</div>
+<div id="footer">
+ <address>
+ Version 1.0 Alpha<br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+ </address>
+</div>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>パスワード変更</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="../index_ja.html">はじめに</a></li>
+ <li><a href="install.html">インストール</a></li>
+ <li><a href="login.html">ログイン</a></li>
+ <li><a href="status.html">pgpoolステータス</a></li>
+ <li><a href="nodeServerStatus.html">ノードステータス</a></li>
+ <li><a href="queryCache.html">クエリキャッシュ</a></li>
+ <li><a href="systemDb.html">分散ルール</a></li>
+ <li><a href="pgconfig.html">pgpool.conf設定</a></li>
+ <li><a href="config.html">管理ツール設定</a></li>
+ <li><a href="changePassword.html">パスワード変更</a></li>
+ <li><a href="logout.html">ログアウト</a></li>
+ <li><a href="errorCode.html">エラーコード</a></li>
+ </ul>
+</div>
+<div id="content">
+
+ <h2>パスワード変更</h2>
+ <h3>概要</h3>
+ 管理ツールにログインしているユーザのパスワードを変更します。
+ <h3>機能</h3>
+ それぞれの入力欄に新しいパスワードを2回入力して更新ボタンを押してください。<br />
+ 更新ボタンを押すと、ログイン画面が表示されます。新しいパスワードでログインしてください。
+ <p>
+ <table>
+ <tbody>
+ <tr>
+ <th><label for="password">パスワード</label></th>
+ <td><input id="password" name="password" type="password" size="25" /></td>
+ </tr>
+ <tr>
+ <th><label for="password2">パスワード(確認)</label></th>
+ <td><input id="password2" name="password2" type="password" size="25" /></td>
+ </tr>
+ </tbody>
+ <tfoot>
+ <tr><td colspan="2">
+ <input type="button" name="ButtonName" value="更新" />
+ </td></tr>
+ </table>
+</div>
+<div id="footer">
+ <address>
+ Version 1.0 Alpha<br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+ </address>
+</div>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>管理ツール設定</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="../index_ja.html">はじめに</a></li>
+ <li><a href="install.html">インストール</a></li>
+ <li><a href="login.html">ログイン</a></li>
+ <li><a href="status.html">pgpoolステータス</a></li>
+ <li><a href="nodeServerStatus.html">ノードステータス</a></li>
+ <li><a href="queryCache.html">クエリキャッシュ</a></li>
+ <li><a href="systemDb.html">分散ルール</a></li>
+ <li><a href="pgconfig.html">pgpool.conf設定</a></li>
+ <li><a href="config.html">管理ツール設定</a></li>
+ <li><a href="changePassword.html">パスワード変更</a></li>
+ <li><a href="logout.html">ログアウト</a></li>
+ <li><a href="errorCode.html">エラーコード</a></li>
+ </ul></div>
+<div id="content">
+
+ <h2>管理ツール設定</h2>
+ <h3>概要</h3>
+
+ pgpool管理ツールの設定を表示・変更することができます。
+ <p><img src="images/pgpooladmin.jpg" /></p>
+ <h3>機能</h3>
+ <table>
+ <tbody>
+ <tr>
+ <th><label>言語</label>
+ (string)</th>
+ <td class="input">表示したい言語を選択します。「auto」を選択した場合には、ブラウザで設定した言語が優先的に表示されます。</td>
+
+ </tr>
+ <tr>
+ <th><label>pgpool.confファイル</label>
+ (string)</th>
+ <td>pgpool.confへのパスをフルパスで指定します。</td></tr>
+ <tr>
+ <th><label>パスワードファイル</label>
+
+ (string)</th>
+ <td>pcp.confへのパスをフルパスで指定します。</td></tr>
+ <tr>
+ <th><label>pgpoolコマンド</label>
+ (string)</th>
+ <td>pgpoolへのパスをフルパスで指定します。</td></tr>
+
+ <tr>
+ <th colspan="2"><label>pgpoolコマンドオプション</label>
+ (string)</th></tr>
+ <tr><td>クエリキャッシュクリア(-c)</td>
+ <td>起動時にクエリキャッシュをクリアします。</td>
+ </tr>
+ <tr><td>非デーモンモード(-n)</td>
+
+ <td>非デーモンモードでpgpoolを起動します。pgpoolのログを管理ツールで表示するには、この項目をオンにする必要があります。</td>
+ </tr>
+ <tr><td>デバッグモード(-d)</td>
+ <td>デバッグモードで起動します。デバッグログが必要な場合にはオンにします。</td>
+ </tr>
+ <tr><td>停止モード(-m)</td>
+ <td>pgpoolのすべてのプロセスを終了します。pgpool停止ボタンを押すと、終了オプションが表示されます。停止モードとして
+ <ul>
+
+ <li>smart</li>
+ <li>fast</li>
+ <li>immediate</li>
+ </ul>
+ を選択することができます。終了すると、pgpoolステータスが「pgpool停止」となり、起動用画面が表示されます。</td>
+ </tr>
+ <tr><td>pgpool.conf(-f)</td>
+
+ <td>pgpoolの起動時に指定するpgpool.confです。pgpool.confのパスは「pgpool.confファイル」で指定した値になります。</td>
+ </tr>
+ <tr><td>pcp.conf(-F)</td>
+ <td>pgpoolの起動時に指定するpcp.confです。pgpool.confのパスは「パスワードファイル」で指定した値になります。</td>
+ </tr>
+ <tr>
+ <th><label>pgpoolログファイル</label>
+
+ (string)</th>
+ <td>非デーモンモードで起動した場合に使用するログファイルをフルパスで指定します。設定しない場合にはpgpool.confのlogdirで指定してあるパスにpgpool.logファイルを作成します。</td></tr>
+ <tr>
+ <th><label>PCPディレクトリ</label>
+ (string)</th>
+ <td>PCPコマンドがインストールしてあるディレクトリを指定します。</td></tr>
+
+ <tr>
+ <th><label>PCPディレクトリ</label>
+ (string)</th>
+ <td>PCPコマンドがインストールしてあるディレクトリを指定します。</td></tr>
+ <tr>
+ <th><label>PCPホスト名</label>
+ (string)</th>
+
+ <td>PCPコマンドを実行するホスト名を指定します。通常は「localhost」になります。</td>
+ </tr>
+ <tr>
+ <th><label>更新間隔(0で自動更新しない)</label>
+ (integer)
+ </td>
+ <td>ステータスの更新間隔を秒単位で指定します。0を指定した場合には自動更新しません。
+ </td></tr>
+ </tbody>
+ </table>
+ <p>最後に更新ボタンを押して更新します。</p>
+</div><div id="footer">
+ <address>
+ Version 1.0 Alpha<br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+ </address>
+</div>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>エラーコード</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+
+</head>
+<body>
+<div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="../index_ja.html">はじめに</a></li>
+ <li><a href="install.html">インストール</a></li>
+ <li><a href="login.html">ログイン</a></li>
+ <li><a href="status.html">pgpoolステータス</a></li>
+ <li><a href="nodeServerStatus.html">ノードステータス</a></li>
+ <li><a href="queryCache.html">クエリキャッシュ</a></li>
+ <li><a href="systemDb.html">分散ルール</a></li>
+ <li><a href="pgconfig.html">pgpool.conf設定</a></li>
+ <li><a href="config.html">管理ツール設定</a></li>
+ <li><a href="changePassword.html">パスワード変更</a></li>
+ <li><a href="logout.html">ログアウト</a></li>
+ <li><a href="errorCode.html">エラーコード</a></li>
+ </ul>
+</div>
+<div id="content">
+<h2>エラーコード</h2>
+<h3>共通</h3>
+<table>
+ <tr>
+ <th class="right_border"><label>エラーコード</label></th>
+ <th class="right_border"><label>エラーメッセージ</label></th>
+ <th><label>対策</label></th>
+ </tr>
+<tr><th class="right_border"><label>e1</label></th><td class="right_border">pgmgt.conf.phpが見つかりません</td><td>pgmgt.conf.phpファイルがconfディレクトリにあるか確認してください。また、適切なアクセス権があるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e2</label></th><td class="right_border">メッセージカタログが見つかりません</td><td>メッセージカタログファイルがlangディレクトリにあるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e3</label></th><td class="right_border">pcpコマンドエラーが発生しました</td><td>Pcpコマンドが設定メニューで指定した場所にあるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e4</label></th><td class="right_border">pgpool.confが見つかりません</td><td>pgpool.confが設定メニューで指定した場所にあるか確認してください。また、pgpool.confに適切なアクセス権があるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e5</label></th><td class="right_border">テンプレートファイルが見つかりません</td><td>表示用テンプレートファイルがtemplateディレクトリにあるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e6</label></th><td class="right_border">ヘルプが見つかりません</td><td>ヘルプファイルがtemplate/help以下にあるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e7</label></th><td class="right_border">pgmgt.conf.phpのパラメータが足りません</td><td>pgmgt.conf.phpにパラメータが指定してあるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e8</label></th><td class="right_border">pcp_timeoutがpgpool.confで見つかりません</td><td>pcp_timeoutがpgpool.confで指定してあるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e9</label></th><td class="right_border">pcp_portがpgpool.confで見つかりません</td><td>pcp_portがpgpool.confで指定してあるか確認してください。</td></tr>
+</table>
+
+<h3>pgpoolステータス</h3>
+<table>
+ <tr>
+ <th class="right_border"><label>エラーコード</label></th>
+ <th class="right_border"><label>エラーメッセージ</label></th>
+ <th><label>対策</label></th>
+ </tr>
+<tr><th class="right_border"><label>e1001</label></th><td class="right_border">pcpコマンドエラーが発生しました</td><td>pcpコマンドの呼び出しに失敗した場合に表示されます。Pcpコマンドが設定メニューで指定した場所にあるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e1002</label></th><td class="right_border">pcp_node_countコマンドでエラーが発生しました</td><td>pcp_node_countの実行エラーです。pcp_node_countが正常に実行できるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e1003</label></th><td class="right_border">pcp_node_infoコマンドでエラーが発生しました</td><td>pcp_node_infoの実行エラーです。pcp_node_infotが正常に実行できるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e1004</label></th><td class="right_border">pcp_proc_countコマンドでエラーが発生しました</td><td>pcp_proc_countの実行エラーです。pcp_proc_countが正常に実行できるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e1005</label></th><td class="right_border">pcp_proc_infoコマンドでエラーが発生しました</td><td>pcp_proc_infoの実行エラーです。pcp_proc_infoが正常に実行できるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e1006</label></th><td class="right_border">pcp_stop_pgpoolコマンドでエラーが発生しました</td><td>pcp_stop_pgpoolの実行エラーです。pcp_stop_pgpoolが正常に実行できるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e1007</label></th><td class="right_border">pcp_detach_nodeコマンドでエラーが発生しました</td><td>pcp_detach_nodeの実行エラーです。pcp_detach_nodeが正常に実行できるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e1008</label></th><td class="right_border">指定したpgpool.confが見つかりません</td><td>pgpool.confが設定メニューで指定した場所にあるか確認してください。また、pgpool.confに適切なアクセス権があるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e1009</label></th><td class="right_border">指定したpcp.confが見つかりません</td><td>pcp.confが設定メニューで指定した場所にあるか確認してください。またpcp.confに適切なアクセス権があるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e1010</label></th><td class="right_border">pcp_attach_nodeコマンドでエラーが発生しました</td><td>pcp_attach_nodeの実行エラーです。pcp_detach_nodeが正常に実行できるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e1011</label></th><td class="right_border">ログファイルが見つかりません</td><td>pgpoolログファイルが設定メニューで指定した場所にあるか確認してください。また指定したログファイルに適切なアクセス権があるか確認してください。指定しない場合には、pgpool.confのlogdirで指定したディレクトリにpgpool.logというファイル名で作成されます。</td></tr>
+</table>
+
+<h3>ノードステータス</h3>
+<table>
+ <tr>
+ <th class="right_border"><label>エラーコード</label></th>
+ <th class="right_border"><label>エラーメッセージ</label></th>
+ <th><label>対策</label></th>
+ </tr>
+<tr><th class="right_border"><label>e8001</label></th><td class="right_border">詳細情報が取得できません</td><td>ノードにpsqlコマンドで接続できるか確認してください。</td></tr>
+</table>
+
+<h3>クエリキャッシュ</h3>
+<table>
+ <tr>
+ <th class="right_border"><label>エラーコード</label></th>
+ <th class="right_border"><label>エラーメッセージ</label></th>
+ <th><label>対策</label></th>
+ </tr>
+<tr><th class="right_border"><label>e2001</label></th><td class="right_border">データベースに接続できません</td><td>pgpool.confのシステムDBで指定したデータベースに接続できるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e2002</label></th><td class="right_border">レコード取得時にエラーが発生しました</td><td>クエリキャッシュテーブルのレコードが正常に取得できるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e2003</label></th><td class="right_border">pgpool.confが見つかりません</td><td>pcp.confが設定メニューで指定した場所にあるか確認してください。またpcp.confに適切なアクセス権があるか確認してください。</td></tr>
+</table>
+
+<h3>分散ルール</h3>
+<table>
+ <tr>
+ <th class="right_border"><label>エラーコード</label></th>
+ <th class="right_border"><label>エラーメッセージ</label></th>
+ <th><label>対策</label></th>
+ </tr>
+<tr><th class="right_border"><label>e3001</label></th><td class="right_border">データベースに接続できません</td><td>pgpool.confのシステムDBで指定したデータベースに接続できるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e3002</label></th><td class="right_border">レコード取得時にエラーが発生しました</td><td>システムDBテーブルのレコードが正常に取得できるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e3003</label></th><td class="right_border">レコード登録時にエラーが発生しました</td><td>システムDBテーブルにレコードが正常に挿入できるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e3004</label></th><td class="right_border">レコード更新時にエラーが発生しました</td><td>システムDBテーブルのレコードが正常に更新できるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e3005</label></th><td class="right_border">レコード削除時にエラーが発生しました</td><td>システムDBテーブルのレコードが正常に削除できるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e3006</label></th><td class="right_border">pgpool.confが見つかりません</td><td>pcp.confが設定メニューで指定した場所にあるか確認してください。またpcp.confに適切なアクセス権があるか確認してください。</td></tr>
+</table>
+
+<h3>pgpool.conf設定</h3>
+<table>
+ <tr>
+ <th class="right_border"><label>エラーコード</label></th>
+ <th class="right_border"><label>エラーメッセージ</label></th>
+ <th><label>対策</label></th>
+ </tr>
+<tr><th class="right_border"><label>e4001</label></th><td class="right_border">pgpool.confが見つかりません</td><td>pcp.confが設定メニューで指定した場所にあるか確認してください。またpcp.confに適切なアクセス権があるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e4002</label></th><td class="right_border">pgpool.confから読み込みができません</td><td>pgpool.confに読み込みアクセス権があるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e4003</label></th><td class="right_border">pgpool.confに書き込みができません</td><td>pgpool.confに書き込みアクセス権があるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e4004</label></th><td class="right_border">pgpool.confに必要なパラメータがありません</td><td>pgpool.confにパラメータがすべてあるか確認してください。</td></tr>
+</table>
+
+<h3>管理ツール設定</h3>
+<table>
+ <tr>
+ <th class="right_border"><label>エラーコード</label></th>
+ <th class="right_border"><label>エラーメッセージ</label></th>
+ <th><label>対策</label></th>
+ </tr>
+<tr><th class="right_border"><label>e5001</label></th><td class="right_border">pgmgt.conf.phpが見つかりません</td><td>pgmgt.conf.phpファイルがconfディレクトリにあるか確認してください。また、適切なアクセス権があるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e5002</label></th><td class="right_border">pgmgt.conf.phpから読み込みができません</td><td>pgmgt.conf.phpファイルに読み込みアクセス権があるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e5003</label></th><td class="right_border">pgmgt.conf.phpに書き込みができません</td><td>pgmgt.conf.phpファイルに書き込みアクセス権があるか確認してください。</td></tr>
+</table>
+
+<h3>パスワード変更</h3>
+<table>
+ <tr>
+ <th class="right_border"><label>エラーコード</label></th>
+ <th class="right_border"><label>エラーメッセージ</label></th>
+ <th><label>対策</label></th>
+ </tr>
+<tr><th class="right_border"><label>e6001</label></th><td class="right_border">pcp.confが見つかりません</td><td>pcp.confが設定メニューで指定した場所にあるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e6002</label></th><td class="right_border">pcp.confに読み込みができません</td><td>pcp.confファイルに読み込みアクセス権があるか確認してください。</td></tr>
+<tr><th class="right_border"><label>e6003</label></th><td class="right_border">pcp.confに書き込みができません</td><td>pcp.confファイルに書き込みアクセス権があるか確認してください。</td></tr>
+</table>
+
+<h3>ログアウト</h3>
+<table>
+ <tr>
+ <th class="right_border"><label>エラーコード</label></th>
+ <th class="right_border"><label>エラーメッセージ</label></th>
+ <th><label>対策</label></th>
+ </tr>
+<tr><th class="right_border"><label>e7001</label></th><td class="right_border">pcp.confが見つかりません</td><td>pcp.confが設定メニューで指定した場所にあるか確認してください。</td></tr>
+</table>
+
+
+</div>
+<div id="footer">
+<address>
+Version 1.0 Alpha<br />
+Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+</address>
+
+</div>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>pgpool管理ツールインストール方法</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="../index_ja.html">はじめに</a></li>
+ <li><a href="install.html">インストール</a></li>
+ <li><a href="login.html">ログイン</a></li>
+ <li><a href="status.html">pgpoolステータス</a></li>
+ <li><a href="nodeServerStatus.html">ノードステータス</a></li>
+ <li><a href="queryCache.html">クエリキャッシュ</a></li>
+ <li><a href="systemDb.html">分散ルール</a></li>
+ <li><a href="pgconfig.html">pgpool.conf設定</a></li>
+ <li><a href="config.html">管理ツール設定</a></li>
+ <li><a href="changePassword.html">パスワード変更</a></li>
+ <li><a href="logout.html">ログアウト</a></li>
+ <li><a href="errorCode.html">エラーコード</a></li>
+ </ul>
+</div>
+<div id="content">
+ <h2>pgpool管理ツールインストール方法</h2>
+ <h3>はじめに</h3>
+pgpool管理ツールのインストールを始める前に、pgpoolが正常にインストールでき、稼動することを確認してください。<p />
+pgpool管理ツールをインストールする場合、少なくとも以下のソフトウェアがpgpoolが稼動するサーバにインストールされていて、正常に動く必要があります。
+<ul>
+ <li>HTTPサーバ(Apache)</li>
+ <li>PHP4.4.2以上</li>
+ <li>pgpool</li>
+</ul>
+インストールを始める前に次の準備をしてください。
+
+<ul>
+ <li>HTTPサーバ、PHP、pgpoolを適切にセットアップする。</li>
+ <li>ブラウザのクッキーとJavaScriptを有効にする。</li>
+</ul>
+ <h3>前提条件</h3>
+ここでは以下のように設定してあることを前提として説明します。
+<p />
+<table>
+<tr>
+<th><label>Aapcheドキュメントルートディレクトリ</label></th>
+<td>/var/www/html</td>
+</tr>
+<tr>
+<th><label>Aapcheプロセスユーザ</label></th>
+<td>apache</td>
+</tr>
+<tr>
+<th><label>管理ツールインストールディレクトリ</label></th>
+<td>/var/www/html/admin-tool</td>
+</tr>
+<tr>
+<th><label>pgpoolコマンドパス</label></th>
+<td>/usr/local/bin/pgpool</td>
+</tr>
+<tr>
+<th><label>pcp_attach_nodeコマンドパス</label></th>
+<td>/usr/local/bin/pcp_attach_node</td>
+</tr>
+<tr>
+<th><label>pcp_detach_nodeコマンドパス</label></th>
+<td>/usr/local/bin/pcp_detach_node</td>
+</tr>
+<tr>
+<th><label>pcp_node_countコマンドパス</label></th>
+<td>/usr/local/bin/pcp_node_count</td>
+</tr>
+<tr>
+<th><label>pcp_node_infoコマンドパス</label></th>
+<td>/usr/local/bin/pcp_node_info</td>
+</tr>
+<tr>
+<th><label>pcp_proc_countコマンドパス</label></th>
+<td>/usr/local/bin/pcp_proc_count</td>
+</tr>
+<tr>
+<th><label>pcp_proc_infoコマンドパス</label></th>
+<td>/usr/local/bin/pcp_proc_info</td>
+</tr>
+<tr>
+<th><label>pcp_stop_pgpoolコマンドパス</label></th>
+<td>/usr/local/bin/pcp_stop_pgpool</td>
+</tr>
+<tr>
+<th><label>pcp_systemdb_infoコマンドパス</label></th>
+<td>/usr/local/bin/pcp_systemdb_info</td>
+</tr>
+<tr>
+<th><label>pg_md5コマンドパス</label></th>
+<td>/usr/local/bin/pg_md5</td>
+</tr>
+<tr>
+<th><label>pgpool.confファイルパス</label></th>
+<td>/usr/local/etc/pgpool.conf</td>
+</tr>
+<tr>
+<th><label>pcp.confファイルパス</label></th>
+<td>/usr/local/etc/pcp.conf</td>
+</tr>
+</table>
+ <h3>インストール</h3>
+以下に手順をおって、管理ツールのインストールを説明します。
+ <ol>
+ <li>セットアップしたpgpoolおよびpcpツールをApachユーザから実行できるようにアクセス権を設定します。</li>
+ <div id="cmd_window"><table>
+ <tr><td>cd /usr/local/bin</td></tr>
+ <tr><td>ls</td></tr>
+ </table>
+ </div>
+ 以下のファイルがあることを確認します。
+ <ul>
+ <li>pgpool</li>
+ <li>pcp_attach_node</li>
+ <li>pcp_detach_node</li>
+ <li>pcp_node_count</li>
+ <li>pcp_node_info</li>
+ <li>pcp_proc_count</li>
+ <li>pcp_proc_info</li>
+ <li>pcp_stop_pgpool</li>
+ <li>pcp_systemdb_info</li>
+ <li>pg_md5</li>
+ </ul>
+ <div id="cmd_window"><table>
+ <tr><td>chmod 755 /usr/local/bin/pgpool</td></tr>
+ <tr><td>chmod 755 /usr/local/bin/pcp_*</td></tr>
+ </table>
+ </div>
+ <li>
+pcp.confファイルにログインユーザの登録を行います。最初にパスワードをmd5化した文字列を取得します。
+<div id="cmd_window"><table>
+<tr><td class="cmd_window">pg_md5 パスワード文字列</td></tr>
+</table>
+</div>
+次に、取得した文字列をpcp.confに
+<p>ユーザ名:md5化したパスワード</p>
+の行を追加します。
+ </li>
+ <li>
+管理ツールプログラムadmin-tool.tar.gzをApacheのhtmlディレクトリ以下に展開します。<br />
+<div id="cmd_window"><table>
+<tr><td class="cmd_window">mv admin-tool.tar.gz /tmp</td></tr>
+<tr><td class="cmd_window">cd /tmp</td></tr>
+<tr><td class="cmd_window">tar xzf admin-tool.tar.gz</td></tr>
+<tr><td class="cmd_window">mv admin-tool /var/www/html</td></tr>
+<tr><td class="cmd_window">rm admin-tool.tar.gz</td></tr>
+</table>
+</div>
+ </li>
+ <li>
+ファイルを確認します。
+<div id="cmd_window"><table>
+<tr><td class="cmd_window">find /var/www/html/admin-tool -print</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/finish.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/defaultParameter.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/setLang.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/checkDirectory.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/images</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/images/Thumbs.db</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/images/ng.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/images/ok.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/index.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/checkParameter.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/lang</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/lang/ja.lang.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/install/lang/en.lang.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/Smarty.class.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.counter.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.escape.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.replace.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.count_characters.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/block.textformat.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.spacify.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.date_format.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.regex_replace.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.lower.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.debug_print_var.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.eval.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.html_image.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.nl2br.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.strip_tags.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/outputfilter.trimwhitespace.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.assign_debug_info.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.strip.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/shared.make_timestamp.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.html_select_date.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.truncate.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/compiler.assign.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.capitalize.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.wordwrap.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.indent.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.html_checkboxes.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/shared.escape_special_chars.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.cycle.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.math.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.cat.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.html_select_time.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.html_options.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.fetch.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.count_paragraphs.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.config_load.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.popup_init.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.string_format.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.count_sentences.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.count_words.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.default.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.popup.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/modifier.upper.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.html_table.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.debug.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.html_radios.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/plugins/function.mailto.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.write_cache_file.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.display_debug_console.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.load_resource_plugin.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.is_trusted.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.is_secure.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.assemble_plugin_filepath.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.get_microtime.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.load_plugins.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.rmdir.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.smarty_include_php.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.process_compiled_include.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.run_insert_handler.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.process_cached_inserts.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.write_file.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.write_compiled_include.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.rm_auto.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.get_include_path.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.write_compiled_resource.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.get_php_resource.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.read_cache_file.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.create_dir_structure.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/internals/core.assign_smarty_interface.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/Smarty_Compiler.class.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/debug.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/libs/Config_File.class.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/nodeServerStatus.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/login.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/innerSystemCatalog.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/definePgpoolConfParam.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/systemDb.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/setLang.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/queryCache.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/pgconfig.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/common.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/status.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/config.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/command.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/pgmgtNotFound.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/changePassword.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/systemDb.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/pleaseInstall.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/nodeStatus.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/login.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/queryCache.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/procInfo.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/status.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/innerSystemCatalog.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/pgconfig.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/ja</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/ja/changePassword.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/ja/systemDb.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/ja/login.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/ja/queryCache.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/ja/status.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/ja/pgconfig.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/ja/config.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/ja/nodeServerStatus.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/en</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/en/changePassword.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/en/systemDb.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/en/login.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/en/queryCache.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/en/status.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/en/pgconfig.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/en/config.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/help/en/nodeServerStatus.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/footer.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/innerError.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/innerNodeServerStatus.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/menu.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/config.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/nodeServerStatus.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates/error.tpl</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/screen.css</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/conf</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/conf/pgmgt.conf.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/innerNodeServerStatus.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/changePassword.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/question.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/background.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/descending.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/ascending.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/elephant.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/Thumbs.db</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/spacer.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/logo.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/back.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/marker.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/sea.jpg</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/images/turtle.gif</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/index.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/templates_c</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/lang</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/lang/ja.lang.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/lang/en.lang.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/procInfo.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/nodeStatus.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/help.php</td></tr>
+<tr><td class="cmd_window">/var/www/html/admin-tool/logout.php</td></tr>
+</table>
+</li>
+<li>
+Webブラウザからinstall/phpinfo.phpにアクセスします。php_mstringとphp_pgsqlの機能が有効であることを確認します。
+<ul>
+<li>「Multibyte Support」が「enabled」になっている。</li>
+<li>「PostgreSQL Support」が「enabled」になっている。</li>
+</ul>
+<p>これらの項目が「enabled」になっていない場合には、PHPの設定を再度確認してください。</p>
+</li>
+<li>
+展開したディレクトリ内にある「templates_c」ディレクトリ、「conf/pgmgt.conf.php」ファイルに書き込みアクセス権を設定します。
+<div id="cmd_window"><table>
+<tr><td class="cmd_window">cd /var/www/html/admin-tool</td></tr>
+<tr><td class="cmd_window">chmod 777 templates_c</td></tr>
+</table>
+</div>
+ </li>
+ <li>
+管理ツール設定ファイルにApacheプロセスのユーザに書き込み権限を与えます。
+<div id="cmd_window"><table>
+<tr><td class="cmd_window">cd /var/www/html/admin-tool/conf</td></tr>
+<tr><td class="cmd_window">chown apache pgmgt.conf.php</td></tr>
+<tr><td class="cmd_window">chmod 644 pgmgt.conf.php</td></tr>
+</table>
+</div>
+ </li>
+ <li>
+pgpoolの設定ファイルであるpgpool.confファイルとpcp.confファイルにapacheプロセスユーザからの書き込み権限を設定します。
+<div id="cmd_window"><table>
+<tr><td class="cmd_window">cd /usr/local/etc</td></tr>
+<tr><td class="cmd_window">chown apache pgpool.conf</td></tr>
+<tr><td class="cmd_window">chmod 644 pgpool.conf</td></tr>
+<tr><td class="cmd_window">chown apache pcp.conf</td></tr>
+<tr><td class="cmd_window">chmod 644 pcp.conf</td></tr>
+</table>
+</div>
+ </li>
+ <li>
+ PHPのマルチバイトとPostgreSQLライブラリがインストールされているか確認します。ブラウザから
+ <p>http://インストールしたサーバ/admin-tool/install/phpinfo.php</p>
+ にアクセスします。PHPの設定情報が表示されるかどうか確認します。
+ それらの中にMultibyte SupportとPostgreSQL Supportがenabledになっているか確認します。なっていない場合には、PHPの設定を再度確認してください。
+ </li>
+ <li>
+インストーラにアクセスします。URLは
+<p>http://インストールしたサーバ/admin-tool/install/index.php</p>
+になります。
+ </li>
+ <li>
+表示言語を選択します。
+<p><img src="images/1.jpg"></p>
+ </li>
+ <li>
+ディレクトリのアクセス権の確認を行います。右側に<img src="images/ok.gif">が表示された場合には、適切に設定されています。「次へ」ボタンをクリックしてください。<img src="images/ng.gif">が表示された場合には適切に設定されてませんので、エラーメッセージを確認し修正して「チェック」ボタンを押してください。
+<p><img src="images/2.jpg"></p>
+ </li>
+ <li>
+管理ツールの設定を行います。右側に<img src="images/ok.gif">が表示された場合には、適切に設定されています。「次へ」ボタンをクリックしてください。<img src="images/ng.gif">が表示された場合には適切に設定されてませんので、エラーメッセージを確認し修正して「チェック」ボタンを押してください。
+<p>
+ <dl>
+ <dt>pgpool.conf</dt>
+ <dd>pgpool.confファイルのパスをフルパスで指定します。</dd>
+ <dt>パスワードファイル</dt>
+ <dd>pcp.confファイルのパスをフルパスで指定します。</dd>
+ <dt>pgpoolコマンド</dt>
+ <dd>pgpoolファイルのパスをフルパスで指定します。</dd>
+ <dt>PCPディレクトリ</dt>
+ <dd>PCPコマンド群がインストールしてあるディレクトリをフルパスで指定します。</dd>
+ <dt>PCPホスト名</dt>
+ <dd>PCPコマンドがインストールしてあるホスト名を指定します。</dd>
+ <dt>更新間隔</dt>
+ <dd>pgpoolのステータスを自動更新する間隔を秒単位で設定します。0の場合には自動更新しません。</dd>
+ </dl>
+</p>
+<p><img src="images/3.jpg"></p>
+ </li>
+ <li>
+これで管理ツールのインストールは終了しました。最後に「install」ディレクトリを削除して終了です。
+<p><img src="images/4.jpg"></p>
+<div id="cmd_window"><table>
+<tr><td class="cmd_window">rm -Rf /var/www/html/admin-tool/install</td></tr>
+</table>
+</div>
+ </li>
+ </ol>
+<h3>ログイン画面の表示</h3>
+インストール完了画面で「トップ画面へ移動」をクリックすると管理ツールのログイン画面が表示されます。インストール手順2で設定したユーザ名とパスワードを入力してログインします。
+</div>
+<div id="footer">
+<address>
+Version 1.0 Alpha<br />
+Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+</address>
+</div>
+</body>
+</html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>ログイン</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="../index_ja.html">はじめに</a></li>
+ <li><a href="install.html">インストール</a></li>
+ <li><a href="login.html">ログイン</a></li>
+ <li><a href="status.html">pgpoolステータス</a></li>
+ <li><a href="nodeServerStatus.html">ノードステータス</a></li>
+ <li><a href="queryCache.html">クエリキャッシュ</a></li>
+ <li><a href="systemDb.html">分散ルール</a></li>
+ <li><a href="pgconfig.html">pgpool.conf設定</a></li>
+ <li><a href="config.html">管理ツール設定</a></li>
+ <li><a href="changePassword.html">パスワード変更</a></li>
+ <li><a href="logout.html">ログアウト</a></li>
+ <li><a href="errorCode.html">エラーコード</a></li>
+ </ul>
+</div>
+<div id="content">
+
+ <h2>ログイン</h2>
+ <h3>概要</h3>
+ <p>ログインページです。pcp.confに設定したユーザ名およびパスワードを入力してください。<br />
+ 認証が成功すると、ステータス画面が表示されます。失敗した場合には、再度ログイン画面が表示されます。
+ <h3>機能</h3>
+ <table>
+ <tbody>
+ <tr>
+ <th><label>ログイン名</label></th>
+ <td><input id="username" name="username" type="text" size="25" />
+ ここにユーザ名を入力してください。</td>
+ </tr>
+ <tr>
+ <th><label>パスワード</label></th>
+ <td><input id="password" name="password" type="password" size="25" />
+ ここにパスワードを入力してください。</td>
+ </tr>
+ </tbody>
+ <tfoot>
+ <tr>
+ <td colspan="2"><input type="button" name="Button2" value="ログイン" />
+ ユーザ名とパスワードを入力したらボタンを押してください。</td>
+ </tr>
+ </tfoot>
+ </table>
+</div>
+<div id="footer">
+ <address>
+ Version 1.0 Alpha<br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+ </address>
+</div>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>ログアウト</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="../index_ja.html">はじめに</a></li>
+ <li><a href="install.html">インストール</a></li>
+ <li><a href="login.html">ログイン</a></li>
+ <li><a href="status.html">pgpoolステータス</a></li>
+ <li><a href="nodeServerStatus.html">ノードステータス</a></li>
+ <li><a href="queryCache.html">クエリキャッシュ</a></li>
+ <li><a href="systemDb.html">分散ルール</a></li>
+ <li><a href="pgconfig.html">pgpool.conf設定</a></li>
+ <li><a href="config.html">管理ツール設定</a></li>
+ <li><a href="changePassword.html">パスワード変更</a></li>
+ <li><a href="logout.html">ログアウト</a></li>
+ <li><a href="errorCode.html">エラーコード</a></li>
+ </ul>
+</div>
+<div id="content">
+
+ <h2>ログアウト</h2>
+ <h3>概要</h3>
+ <p>ログインに成功すると、メニューに表示されます。
+ <h3>機能</h3>
+ クリックすると、ログアウトしてログイン画面が表示されます。
+</div>
+<div id="footer">
+ <address>
+ Version 1.0 Alpha<br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+ </address>
+</div>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>ノードステータス</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+
+</head>
+<body>
+<div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="../index_ja.html">はじめに</a></li>
+ <li><a href="install.html">インストール</a></li>
+ <li><a href="login.html">ログイン</a></li>
+ <li><a href="status.html">pgpoolステータス</a></li>
+ <li><a href="nodeServerStatus.html">ノードステータス</a></li>
+ <li><a href="queryCache.html">クエリキャッシュ</a></li>
+ <li><a href="systemDb.html">分散ルール</a></li>
+ <li><a href="pgconfig.html">pgpool.conf設定</a></li>
+ <li><a href="config.html">管理ツール設定</a></li>
+ <li><a href="changePassword.html">パスワード変更</a></li>
+ <li><a href="logout.html">ログアウト</a></li>
+ <li><a href="errorCode.html">エラーコード</a></li>
+ </ul>
+</div>
+<div id="content">
+
+<h2>ノードステータス</h2>
+<h3>概要</h3>
+ノードステータスでは、各ノードについて
+<ul><li>IPアドレス</li>
+ <li>ポート</li>
+ <li>ステータス</li>
+ <li>詳細情報</li>
+ </ul>
+<p>を取得することができます。</p>
+<p><img src="images/nodestatus.jpg" /></p>
+<h3>機能</h3>
+<table>
+ <tr>
+ <th class="right_border"><label>IPアドレス</label></th>
+ <td>ノードのIPアドレス</td>
+ </tr>
+ <tr>
+ <th class="right_border"><label>ポート</label></th>
+ <td>Postmasterが稼働しているポート番号</td>
+ </tr>
+ <tr>
+ <th class="right_border"><label>ステータス</label></th>
+ <td>Postmasterが稼働状態であるかどうかを表示します。</td>
+ </tr>
+ <tr>
+ <th class="right_border"><label>詳細</label></th>
+ <td>Postmasterが稼働状態の場合にのみ表示されます。<br />
+PostgreSQLの場合にはpg_settings情報、pgpoolの場合にはpool_statusを取得します。
+ </td>
+ </tr>
+</table>
+</div>
+<div id="footer">
+ <address>
+ Version 1.0 Alpha<br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+ </address>
+</div>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>pgpool.conf設定</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="../index_ja.html">はじめに</a></li>
+ <li><a href="install.html">インストール</a></li>
+ <li><a href="login.html">ログイン</a></li>
+ <li><a href="status.html">pgpoolステータス</a></li>
+ <li><a href="nodeServerStatus.html">ノードステータス</a></li>
+ <li><a href="queryCache.html">クエリキャッシュ</a></li>
+ <li><a href="systemDb.html">分散ルール</a></li>
+ <li><a href="pgconfig.html">pgpool.conf設定</a></li>
+ <li><a href="config.html">管理ツール設定</a></li>
+ <li><a href="changePassword.html">パスワード変更</a></li>
+ <li><a href="logout.html">ログアウト</a></li>
+ <li><a href="errorCode.html">エラーコード</a></li>
+ </ul>
+</div>
+<div id="content">
+ <h2>pgpool.conf設定</h2>
+ <h3>概要</h3>
+
+ pgpoolの設定ファイルであるpgpool.confの設定内容を表示・変更することができます。
+ <h3>機能</h3>
+ 変更したい値を入力して更新ボタンを押してください。
+ <h3>バックエンドホストの追加</h3>
+ 新しいバックエンドホストを追加したい場合には、追加ボタンを押してください。<br />
+ バックエンドホストの項目に新しい入力欄ができますので、そこに新しいバックエンドホストの情報を入力してください。<br />
+ 入力が終わりましたら、更新ボタンを押してください。
+ <h3>バックエンドホストの削除</h3>
+
+ 登録してあるバックエンドホストを削除したい場合には、そのホスト設定の右側にある削除ボタンを押してください。<br />
+ <div id="submenu">
+ <h3>Table of Contents</h3>
+ <ul>
+ <li><a href="#connections">Connections</a></li>
+ <li><a href="#backends">Backends</a></li>
+ <li><a href="#pcp">PCP</a></li>
+
+ <li><a href="#logging">Logging</a></li>
+ <li><a href="#replication">Replication</a></li>
+ <li><a href="#health-check">Health Check</a></li>
+ <li><a href="#system-database">System Database</a></li>
+ <li><a href="#others">Others</a></li>
+ </ul>
+
+ </div>
+ <h3><a name="connections">Connections</a></h3>
+ <table>
+ <thead>
+ <tr>
+ <th>項目</th>
+ <th>詳細</th>
+
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <th><label>TCP/IPコネクションを受け付けるアドレス</label>
+ <br>listen_addresses (string)</th>
+ <td>
+TCP/IPコネクションを受け付けるアドレスをホスト名またはIPアドレスで指定します。「*」を指定するとすべてのIPインタフェースからのコネクションを受け付けます。「''」を指定するとTCP/IPコネクションを受け付けま
+せん。デフォルト値は「localhost」です。<br />UNIXドメインソケット経由のコネクションは常に受け付けます。
+ </td>
+
+ </tr>
+ <tr>
+ <th><label>pgpoolがコネクションを受け付けるポート番号</label>
+ <br>port (integer)</th>
+ <td>pgpoolがコネクションを受け付けるポート番号です。デフォルト値は9999です</td>
+ </tr>
+ <tr>
+
+ <th><label>pgpoolがコネクションを受け付けるUnix domain socketディレクトリ</label>
+ <br>socket_dir (string)</th>
+ <td>PostgreSQLサーバのUnix domain socketのディレクトリです。デフォルト値は'/tmp'です。</td>
+ </tr>
+ <tr>
+ <th><label>preforkするpgpoolのサーバプロセス数</label>
+ <br>num_init_children (integer)</th>
+
+ <td>preforkするpgpoolのサーバプロセスの数です。デフォルト値は32になっています。<br />
+なお、問い合わせのキャンセルを行うと通常のコネクションとは別に新たなコネクションが張られます。したがって、すべてのコネクションが使用中の場合は問い合わせのキャンセルができなくってしまうので、ご注意下
+ さい。問い合わせのキャンセルを必ず保証したい場合は、想定されるコネクション数の倍の値を設定することをおすすめします。</td>
+ </tr>
+ <tr>
+ <th><label>pgpoolの各サーバプロセスがキープするPostgreSQLへの最大コネクション数</label>
+ <br>max_pool (integer)</th>
+ <td>pgpoolの各サーバプロセスがキープするPostgreSQLへの最大コネクション数です。pgpoolは、ユーザ名、データベースが同じならばコネクションを再利用しますが、そうでなければ新たにPostgreSQLへのコネクションを確立しようとします。したがって、ここでは想定される[ユーザ名:データベース名]のペアの種類の数だけをmax_poolに指定しておく必要があります。もしmax_poolを使いきってしまった場合は一番古いコネクションを切断し、そのスロットが再利用されます。<br />max_poolのデフォルト値は4です。<br />なお、pgpool全体としては、num_init_children*max_pool 分だけPostgreSQLへのコネクションが張られる点に注意してください</td>
+
+ </tr>
+ <tr>
+ <th><label>pgpoolの子プロセスの寿命</label>
+ <br>child_life_time (integer)</th>
+ <td>pgpoolの子プロセスの寿命です。アイドル状態になってからchild_life_time秒経過すると、一旦終了して新しいプロセスを起動します。メモリーリークその他の障害に備えた予防措置です。child_life_timeのデフォルト値は300秒、すなわち5分です。0を指定するとこの機能は働きません(すなわち起動しっ放し)。なお、まだ一度もコネクションを受け付けていないプロセスにはchild_life_timeは適用されません。</td>
+ </tr>
+ <tr>
+
+ <th><label>コネクションプール中のコネクションの有効期間(秒)</label>
+ <br>connection_life_time (integer)</th>
+ <td>コネクションプール中のコネクションの有効期間を秒単位で指定します。0を指定すると有効期間は無限になります。connection_life_timeのデフォルト値は0です。</td>
+ <tr>
+ <th><label>各pgpool子プロセスが終了するまでの接続回数</label>
+ <br>child_max_connections (integer)</th>
+
+ <td>各pgpool子プロセスへの接続回数がこの設定値を超えると、その子プロセスを終了します。child_life_timeやconnection_life_timeが効かないくらい忙しいサーバで、PostgreSQLバックエンドが肥大化するのを防ぐのに有効です。</td>
+ </tr>
+ <tr>
+ <th><label>コネクションをキャッシュ</label>
+ <br>connection_cache</th>
+ <td>trueならコネクションをキャッシュします。デフォルトはtrueです。</td>
+ </tr>
+
+ <tr>
+ <th><label>pgpool2 が動作しているホスト名</label>
+ <br>pgpool2_hostname (string)</th>
+ <td>pgpool2が稼働しているホスト名を指定します。</td>
+ </tr>
+ </tbody>
+ <tfoot>
+ <tr>
+
+ <td colspan="2"></td>
+ </tr>
+ </tfoot>
+ </table>
+ <h3><a name="backends">Backends</a></h3>
+ <table>
+ <thead>
+ <tr>
+
+ <th>項目</th>
+ <th>詳細</th>
+ <td></td>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <th><label>PostgreSQLサーバのUnix domain socketのディレクトリ</label>
+
+ <br>backend_socket_dir (string)</th>
+ <td>PostgreSQLサーバのUnix domain socketのディレクトリです。デフォルト値は'/tmp'です。</td>
+ </tr>
+ <tr>
+ <th><label>pgpoolが接続するPostgreSQLサーバ(postmaster)が動いているホスト名</label><br />backend_hostname (string)</th>
+ <td>postmasterが稼働しているホスト名を指定します。指定しない場合にはUnix domain socketで接続します。</td>
+ </tr>
+
+ <tr>
+ <th><label>PostgreSQLサーバのポート番号</label><br />backend_port (integer)</th>
+ <td>postmasterが稼働しているポート番号です。</td>
+ </tr>
+ <tr>
+ <th><label>ロードバランスモード時のSELECTを振り分ける「重み」の定義</label><br />backend_weight (integer)</th>
+ <td>ロードバランスモード時に振り分ける重みを0から1の値で設定します。すべてのバックエンドサーバで指定した値から相対的な重みを計算して振り分けます。</td>
+
+ </tr>
+ </tbody>
+ </table>
+ <h3><a name="pcp">PCP (pgpool Control Port)</a></h3>
+ <table>
+ <thead>
+ <tr>
+ <th>項目</th>
+
+ <th>詳細</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <th><label>pgpool-IIが受け付けているポート番号</label>
+ <br>pcp_port (integer)</th>
+
+ <td>PCPに接続するためのポート番号です。デフォルトは9898です。</td>
+ </tr>
+ <tr>
+ <th><label>pcpがコネクションを受け付けるUnix domain socketディレクトリ</label>
+ <br>pcp_socket_dir (string)</th>
+ <td>PCPのUnix domain socketのディレクトリです。デフォルト値は'/tmp'です。</td>
+ </tr>
+ <tr>
+
+ <th><label>この時間内にクライアントから応答がない場合はコネクションを切断して終了</label>
+ <br>pcp_timeout (integer)</th>
+ <td>PCPコマンドのタイムアウトを設定します。この時間の間に応答がない場合にはコネクションを切断します。</td>
+ </tr>
+ </tbody>
+ <tfoot>
+ <tr>
+ <td colspan="2"></td>
+
+ </tr>
+ </tfoot>
+ </table>
+ <h3><a name="logging">Logging</a></h3>
+ <table>
+ <thead>
+ <tr>
+ <th>項目</th>
+
+ <th>詳細</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <th><label>pgpoolの各種ログファイルを格納するディレクトリ</label>
+ <br>logdir (string)</th>
+
+ <td>pgpoolの各種ログファイルを格納するディレクトリです。現在のところ、pgpool.pidというプロセスIDを格納するファイルだけが作られるようになっています。logdirのデフォルト値は'/tmp'です。</td>
+ </tr>
+ <tr>
+ <th><label>pgpoolのログにタイムスタンプを追加</label>
+ <br>print_timestamp</th>
+ <td>trueならばpgpoolのログにタイムスタンプを追加します。デフォルトはtrueです。</td>
+ </tr>
+
+ </tbody>
+ <tfoot>
+ <tr>
+ <td colspan="2"></td>
+ </tr>
+ </tfoot>
+ </table>
+ <h3><a name="replication">Replication</a></h3>
+
+ <table>
+ <thead>
+ <tr>
+ <th>項目</th>
+ <th>詳細</th>
+ </tr>
+ </thead>
+ <tbody>
+
+ <tr>
+ <th><label>レプリケーションモードの有効化</label>
+ <br>replication_mode</th>
+ <td>レプリケーションモードで動作させる場合はtrueを指定してください。デフォルト値はfalseです。</td>
+ </tr>
+ <tr>
+ <th><label>masterの問い合わせ処理の完了を待ってからsecondaryの処理</label>
+
+ <br>replication_strict</th>
+ <td>このオプションをtrueにすると、masterの問い合わせ処理の完了を待ってからsecondaryの処理に移ります。デッドロックの危険性はなくなりますが、masterとsecondaryの間で問い合わせの並列処理を行わなくなるので性能が低下する場合もあります。<br />なお、すべての問い合わせではなくて、SQLのコメントを使って一部の問い合わせのみstrict動作させることもできます。<br />このオプションのデフォルト値はtrueです</td>
+ </tr>
+ <tr>
+ <th><label>replication_strictがfalseのときにデッドロックを監視するためのタイムアウト時間</label>
+ <br>replication_timeout (integer)</th>
+
+ <td>replication_strictがfalseのときにデッドロックを監視するためのタイムアウト時間をミリ秒単位で指定します。デフォルト値は5000、すなわち5秒です。0を指定するとタイムアウトしなくなります。</td>
+ </tr>
+ <tr>
+ <th><label>trueを指定するとマスタとセカンダリの間でデータの不一致があった場合に強制的に縮退運転</label>
+ <br>replication_stop_on_mismatch</th>
+ <td>trueを指定するとマスタとセカンダリの間でデータの不一致があった場合に強制的に縮退運転に入ります。このオプションがfalseの場合は、該当の問い合わせを強制的に終了するだけに留めます。デフォルト値はfalseです。</td>
+ </tr>
+
+ <tr>
+ <th><label>セッションが終了するときにコネクションを初期化するためのSQLコマンド</label>
+ <br>reset_query_list (string)</th>
+ <td>セッションが終了するときにコネクションを初期化するためのSQLコマンドを「;」で区切って列挙します。デフォルトは以下のようになっていますが、任意のSQL文を追加しても構いません。
+ <p>reset_query_list = 'ABORT; RESET ALL; SET SESSION AUTHORIZATION DEFAULT'</p>
+PostgreSQLのバージョンによって使用できるSQLコマンドが違うので、PostgreSQL 7.3以前では注意してください(「4. pgpoolの稼働環境」参照)。<br />なお、「ABORT」は、PostgreSQL 7.4以上ではトランザクションブロックの中にいない場合には発行されません。
+ </td>
+ </tr>
+
+ </tbody>
+ <tfoot>
+ <tr>
+ <td colspan="2"></td>
+ </tr>
+ </tfoot>
+ </table>
+ <h3><a name="health-check">Health Check</a></h3>
+
+ <table>
+ <thead>
+ <tr>
+ <th>項目</th>
+ <th>詳細</th>
+ </tr>
+ </thead>
+ <tbody>
+
+ <tr>
+ <th><label>ヘルスチェックが長時間待たされるのを防ぐためのタイムアウト値(秒)</label>
+ <br>health_check_timeout (integer)</th>
+ <td> pgpoolはサーバ障害やネットワーク障害を検知するために、定期的にバックエンドに接続を試みます。これを「ヘルスチェック」と言います。障害が検知されると、フェイルオーバや縮退運転を試みます。<br />この パラメータは、ネットワークケーブルが抜けた際などにヘルスチェックが長時間待たされるのを防ぐためのタイムアウト値を秒単位で指定します。デフォルトは20秒です。0を指定するとタイムアウト処理をしません。<br />なお、ヘルスチェックを有効にすると、ヘルスチェックのための余分の接続が1つ必要になりますので、PostgreSQLのpostgresql.confの設定項目のmax_connectionsを少くとも1増やすようにしてください</td>
+ </tr>
+ <tr>
+
+ <th><label>ヘルスチェックを行う間隔(秒)</label>
+ <br>health_check_period (integer)</th>
+ <td>ヘルスチェックを行う間隔を秒単位で指定します。0を指定するとヘルスチェックを行いません。デフォルトは0です(つまりヘルスチェックを行いません)。
+ </td>
+ </tr>
+ <tr>
+ <th><label>ヘルスチェックを行うためのPostgreSQLユーザ名</label>
+ <br>health_check_user (string)</th>
+
+ <td>ヘルスチェックを行うためのPostgreSQLユーザ名です。</td>
+ </tr>
+ </tbody>
+ <tfoot>
+ <tr>
+ <td colspan="2"></td>
+ </tr>
+ </tfoot>
+
+ </table>
+ <h3><a name="system-database">System Database</a></h3>
+ <table>
+ <thead>
+ <tr>
+ <th>項目</th>
+ <th>詳細</th>
+
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <th><label>System DBが動いているホスト名</label>
+ <br>system_db_hostname (string)</th>
+ <td>システムDBが稼働しているホスト名を指定します。指定しない場合にはUnix domain socketで接続します。</td>
+ </tr>
+
+ <tr>
+ <th><label>System DBに接続するためのポート番号</label>
+ <br>system_db_port (integer)</th>
+ <td>システムDBがあるPostgreSQLに接続するためのポート番号を指定します。</td>
+ </tr>
+ <tr>
+ <th><label>System DBのデータベース名</label>
+
+ <br>system_db_dbname (string)</th>
+ <td>システムDBのデータベース名を指定します。</td>
+ </tr>
+ <tr>
+ <th><label>System DBのスキーマ</label>
+ <br>system_db_schema (string)</th>
+ <td>システムDBのスキーマを指定します。</td>
+
+ </tr>
+ <tr>
+ <th><label>System DBに接続するときのユーザ名</label>
+ <br>system_db_user (string)</th>
+ <td>システムDBに接続するユーザ名を指定します。</td>
+ </tr>
+ <tr>
+ <th><label>System DBに接続するユーザのパスワード</label>
+
+ <br>system_db_password (string)</th>
+ <td>システムDBに接続するユーザのパスワードを指定します。</td>
+ </tr>
+ </tbody>
+ <tfoot>
+ <tr>
+ <td colspan="2"></td>
+ </tr>
+
+ </tfoot>
+ </table>
+ <h3><a name="others">Others</a></h3>
+ <table>
+ <thead>
+ <tr>
+ <th>項目</th>
+ <th>詳細</th>
+
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <th><label>レプリケーションモード時にSELECT文を各ノードにロードバランス</label>
+ <br>load_balance_mode</th>
+ <td>trueを指定するとレプリケーションモードの際に、SELECT文をマスタとセカンダリの間でロードバランスします。デフォルト値はfalseです</td>
+
+ </tr>
+ <tr>
+ <th><label>マスタ/スレーブモードでpgpoolを運転</label>
+ <br>master_slave_mode</th>
+ <td> trueならばマスタ/スレーブモードでpgpoolを運転します。デフォルトはfalseです。このモードはreplication_modeとは両立しません。</td>
+ </tr>
+ <tr>
+
+ <th><label>自動的にトランザクションの開始,テーブルロック,トランザクションの終了</label>
+ <br>insert_lock</th>
+ <td>
+SERIAL型を使っているテーブルをレプリケーションすると、SERIAL型の列の値がマスタとセカンダリで一致しなくなることがあります。この問題は、該当テーブルを明示的にロックすることで回避できます(もちろんトランザ
+クションの並列実行性は犠牲になりますが)。しかし、そのためには、
+<p>
+INSERT INTO ...
+</p>
+<p>
+を
+</p>
+<p>
+BEGIN;<br />
+
+LOCK TABLE ...<br />
+INSERT INTO ...<br />
+COMMIT;
+</p>
+<p>
+ に書き換えなければなりません。insert_lockをtrueにすると自動的にトランザクションの開始、テーブルロック、トランザクションの終了を行ってくれるので、こうした手間を省くことができます(すでにトランザクションが開始されている場合はLOCK TABLE...だけが実行されます)。
+
+ </td>
+ </tr>
+ <tr>
+ <th><label>trueならば、load balanceの際にSQL文行頭の空白を無視</label>
+
+ <br>ignore_leading_white_space</th>
+ <td>trueならば、load balanceの際にSQL文行頭の空白を無視します(全角スペースは無視されません)。これは、DBI/DBD:Pgのように、勝手に行頭にホワイトスペースを追加するようなAPIを使い、ロードバランスしたいときに有効です</td>
+ </tr>
+ <tr>
+ <th><label>パラレルモードでpgpoolを運転</label>
+ <br>parallel_mode</th>
+ <td>pgpoolをパラレルモードで稼働させる場合にはtrueを指定します。この場合には分散ルールを指定する必要があります。</td>
+
+ </tr>
+ <tr>
+ <th><label>trueならばSQL文をログ出力</label>
+ <br>log_statement</th>
+ <td>trueならばSQL文をログ出力します。この役目はPostgreSQLのlog_statementオプションと似ていて、デバッグオプションがないときでも問い合わせをログ出力して調べることができるので便利です。</td>
+ </tr>
+ <tr>
+
+ <th><label>クエリキャッシュ機能の有効化</label>
+ <br>enable_query_cache</th>
+ <td>SELECTの結果をキャッシュする場合にはtrueにします。</td>
+ </tr>
+ </tbody>
+ <tfoot>
+ <tr>
+ <td colspan="2"></td>
+
+ </tr>
+ </tfoot>
+ </table>
+</div><hr class="hidden" />
+<div id="footer">
+ <address>
+ Version 1.0 Alpha<br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+ </address>
+</div>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>クエリキャッシュ</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="../index_ja.html">はじめに</a></li>
+ <li><a href="install.html">インストール</a></li>
+ <li><a href="login.html">ログイン</a></li>
+ <li><a href="status.html">pgpoolステータス</a></li>
+ <li><a href="nodeServerStatus.html">ノードステータス</a></li>
+ <li><a href="#">クエリキャッシュ</a></li>
+ <li><a href="systemDb.html">分散ルール</a></li>
+ <li><a href="pgconfig.html">pgpool.conf設定</a></li>
+ <li><a href="config.html">管理ツール設定</a></li>
+ <li><a href="changePassword.html">パスワード変更</a></li>
+ <li><a href="logout.html">ログアウト</a></li>
+ <li><a href="errorCode.html">エラーコード</a></li>
+ </ul>
+</div>
+<div id="content">
+
+ <h2>クエリキャッシュ</h2>
+ <h3>概要</h3>
+ <p>enable_query_cache = true の場合に、SELECT 文の結果をキャッシュさせます。</p>
+ <h3>機能</h3>
+ <p>クエリキャッシュのデータを検索することができます。検索対象は、クエリ文字列とデータベース名で、部分一致検索を行うことができます。クエリ文字列とデータベース名はAND検索になります。</p>
+ <table>
+ <tbody>
+ <tr>
+ <td nowrap="nowrap" class="column">クエリ文字列</td>
+ <td><input name="qQueryStr" type="text" id="qQueryStr" size="50" value=""/>
+ </td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap" class="column">データベース名</td>
+ <td><input name="qDb" type="text" id="qDb" size="50" value=""/></td>
+ </tr>
+ </tbody>
+ <tfoot>
+ <tr><td colspan="2">
+ <input type="submit" name="search" value="検索" />
+ <input type="submit" name="clear" value="クリア" />
+ </td></tr>
+ </table>
+ <h3>クエリキャッシュリスト</h3>
+ <p>現在キャッシュされているクエリ文字列、データベース名、作成時刻が表示されます。「クエリ文字列」、「データベース名」および「作成時刻」をクリックすると、並べ替えが行われます。クリックするたびに、昇順または降順で並べ替えが行われます。</p>
+ <p>削除したいデータの左にあるチェックボックスにチェックを入れて、削除ボタンを押すと削除されます。一番上のチェックボックスにチェックするとすべてのレコードが選択されます。</p>
+ <table>
+ <tbody>
+ <tr>
+ <th><input type="checkbox" name="all" value="" /></th>
+ <th>クエリ文字列</th>
+ <th>データベース名</th>
+ <th>作成時刻</th>
+ </tr>
+ </tbody>
+ <tfoot>
+ <tr><td colspan="4">
+ <input type="button" name="ButtonName" value="削除"/>
+ </td></tr>
+ </table>
+</div>
+<div id="footer">
+ <address>
+ Version 1.0 Alpha<br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+ </address>
+</div>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>pgpoolステータス</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="../index_ja.html">はじめに</a></li>
+ <li><a href="install.html">インストール</a></li>
+ <li><a href="login.html">ログイン</a></li>
+ <li><a href="status.html">pgpoolステータス</a></li>
+ <li><a href="nodeServerStatus.html">ノードステータス</a></li>
+ <li><a href="queryCache.html">クエリキャッシュ</a></li>
+ <li><a href="systemDb.html">分散ルール</a></li>
+ <li><a href="pgconfig.html">pgpool.conf設定</a></li>
+ <li><a href="config.html">管理ツール設定</a></li>
+ <li><a href="changePassword.html">パスワード変更</a></li>
+ <li><a href="logout.html">ログアウト</a></li>
+ <li><a href="errorCode.html">エラーコード</a></li>
+ </ul>
+</div>
+<div id="content">
+
+<h2>pgpoolステータス</h2>
+<h3>概要</h3>
+ステータスでは、pgpoolについて
+<ul>
+ <li>サマリー</li>
+ <li>プロセス情報</li>
+ <li>ノード情報</li>
+ <li>ログ</li>
+</ul>
+の表示とpgpoolの
+<ul>
+ <li>起動</li>
+ <li>停止</li>
+ <li>再起動</li>
+</ul>
+を行うことができます。
+<h3>説明</h3>
+<p><img src="images/status.jpg" /></p>
+<table>
+ <tr>
+ <th class="right_border"><label>サマリー</label></th>
+ <td>pgpool.confの内容を表示します。</td>
+ </tr>
+ <tr>
+ <th class="right_border"><label>プロセス情報</label></th>
+ <td><p>pgppolの各プロセスについて</p>
+ <ul>
+ <li>プロセスID</li>
+ <li>データベース名</li>
+ <li>接続ユーザ名</li>
+ <li>プロセススタート時刻</li>
+ <li>コネクション作成時刻</li>
+ <li>プロトコルメジャーバージョン</li>
+ <li>プロトコルマイナーバージョン</li>
+ <li>コネクション使用回数</li>
+ </ul>
+ <p>が表示されます。<br />
+ 各プロセスについて、最大でpgpool.confのmax_pool分だけ表示されます。
+ </p></td>
+ </tr>
+ <tr>
+ <th class="right_border"><label>ノード情報</label></th>
+ <td><p>各ノードについて</p>
+ <ul>
+ <li>IPアドレス</li>
+ <li>ボート番号</li>
+ <li>ステータス</li>
+ <li>負荷分散ウェイト</li>
+ <li>切断ボタン</li>
+ </ul>
+ <p>が表示されます。ただし、pgpoolがパラレルモードで動いているときは、切断ボタンは表示されません。</p>
+ <p>ステータスには</p>
+ <ul>
+ <li>ノード稼働中。接続無し</li>
+ <li>ノード稼働中。接続中</li>
+ <li>ノードダウン</li>
+ </ul>
+ <p>の3つの状態が表示されます。</p></td>
+ </tr>
+ <tr>
+ <th class="right_border"><label>ログ</label></th>
+ <td>pgpool非デーモンモード(-n)で起動されているときに、pgpoolのログを表示することができます。</td>
+ </tr>
+ <tr>
+ <th class="right_border"><label>起動</label></th>
+ <td>pgpoolの停止時には、pgpoolを起動することができます。起動オプションとして
+ <ul>
+ <li>クエリキャッシュクリア</li>
+ <li>非デーモンモード</li>
+ <li>デバッグモード</li>
+ <li>pgpool.conf</li>
+ <li>pcp.conf</li>
+ </ul>
+ を指定することかできます。
+ <p><img src="images/start.jpg" /></p>
+ </td>
+ </tr>
+ <tr>
+ <th class="right_border"><label>停止</label></th>
+ <td>pgpoolのすべてのプロセスを終了します。pgpool停止ボタンを押すと、終了オプションが表示されます。停止モードとして
+ <ul>
+ <li>smart</li>
+ <li>fast</li>
+ <li>immediate</li>
+ </ul>
+ を選択することができます。終了すると、pgpoolステータスが「pgpool停止」となり、起動用画面が表示されます。
+<p><img src="images/stop.jpg" /></p>
+ </td>
+ </tr>
+ <tr>
+ <th class="right_border"><label>再起動</label></th>
+ <td>pgpoolのすべてのプロセスを終了し続けて起動処理をします。上記の起動と停止の両方の項目を指定することができます。
+<p><img src="images/restart.jpg" /></p>
+</td>
+ </tr>
+</table>
+</div>
+<div id="footer">
+ <address>
+ Version 1.0 Alpha<br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+ </address>
+</div>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>分散ルール</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+</div>
+<div id="menu">
+ <ul>
+ <li><a href="../index_ja.html">はじめに</a></li>
+ <li><a href="install.html">インストール</a></li>
+ <li><a href="login.html">ログイン</a></li>
+ <li><a href="status.html">pgpoolステータス</a></li>
+ <li><a href="nodeServerStatus.html">ノードステータス</a></li>
+ <li><a href="queryCache.html">クエリキャッシュ</a></li>
+ <li><a href="systemDb.html">分散ルール</a></li>
+ <li><a href="pgconfig.html">pgpool.conf設定</a></li>
+ <li><a href="config.html">管理ツール設定</a></li>
+ <li><a href="changePassword.html">パスワード変更</a></li>
+ <li><a href="logout.html">ログアウト</a></li>
+ <li><a href="errorCode.html">エラーコード</a></li>
+ </ul>
+</div>
+<div id="content">
+
+ <h2>分散ルール</h2>
+ <h3>概要</h3>
+
+pgpool.confのparallel_mode=trueの場合に並列問い合わせの設定を定義します。
+ <h3>機能</h3>
+各カラムのデータ型は以下のとおりです。<p />
+<table>
+ <tr>
+ <th class="right_border"><label>カラム名</label></th>
+ <th class="right_border"><label>データ型</label></th>
+ <th><label>説明</label></th>
+
+ </tr>
+ <tr>
+ <th class="right_border"><label>データベース名</label></th>
+ <td class="right_border">TEXT</td>
+ <td>分散を行うデータベース名</td>
+ </tr>
+ <tr>
+
+ <th class="right_border"><label>スキーマ名</label></th>
+ <td class="right_border">TEXT</td>
+ <td>データベースのスキーマ名</td>
+ </tr>
+ <tr>
+ <th class="right_border"><label>テーブル名</label></th>
+ <td class="right_border">TEXT</td>
+ <td>分散を行うテープル</td>
+ </tr>
+
+ <tr>
+ <th class="right_border"><label>分散キー列名</label></th>
+ <td class="right_border">TEXT</td>
+ <td>分散キーとなる列名</td>
+ </tr>
+
+ <tr>
+ <th class="right_border"><label>列名リスト</label></th>
+ <td class="right_border">TEXT[]</td>
+ <td>データを分散させるテーブルの列名リスト</td>
+ </tr>
+ <tr>
+ <th class="right_border"><label>列データ型リスト</label></th>
+
+ <td class="right_border">TEXT[]</td>
+ <td>列名に対する型のリスト</td>
+ </tr>
+ <tr>
+ <th class="right_border"><label>分散関数名</label></th>
+ <td class="right_border">TEXT</td>
+ <td>分散ルールを定義した関数名</td>
+
+ </tr>
+</table>
+<p />
+<h3>追加</h3>
+すべてのカラムに値を入力して「追加」ボタンを押します。<br />
+列名リストと列データ型リストについては、各要素をシングルクォーテーションで囲み、各要素をカンマで区切ってください。
+<h3>更新</h3>
+更新したい定義のデータベース名をクリックしてください。入力フィールドに値が表示されますので修正して「更新」ボタンを押してください。ただし、データベース名、スキーマ名、テーブル名は変更できません。
+<h3>削除</h3>
+削除したい定義のデータベース名をクリックしてください。「削除」ボタンを押してください。確認ダイアログが表示されますので「OK」ボタンを押してください。
+</div><div id="footer">
+ <address>
+ Version 1.0 Alpha<br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.
+ </address>
+</div>
+</body>
+</html>
--- /dev/null
+body {
+ margin: 0;
+ font: x-small Verdana, Arial, Helvetica, sans-serif;
+}
+h1 {
+ margin: 0;
+}
+h2 {
+ padding-bottom: 4px;
+ border-bottom: 1px solid red;
+ color: red;
+ font-size: small;
+}
+h3 {
+ color: red;
+ font-size: x-small;
+}
+ul {
+ list-style: square;
+}
+table {
+ border-top: 1px solid lightsteelblue;
+ border-collapse: collapse;
+}
+th, td {
+ padding: 4px 8px;
+ border-bottom: 1px solid lightsteelblue;
+}
+thead th, thead td, tfoot th, tfoot td {
+ background: ghostwhite;
+}
+tbody th {
+ font-weight: normal;
+ text-align: left;
+}
+a:link {
+ color: red;
+ text-decoration: none;
+}
+a:visited {
+ color: maroon;
+ text-decoration: none;
+}
+a:link:hover, a:visited:hover {
+ color: orangered;
+ text-decoration: underline;
+}
+a img {
+ border: none;
+}
+input {
+ font: x-small Verdana, Arial, Helvetica, sans-serif;
+}
+label {
+ font-weight: bold;
+}
+#header {
+ padding: 8px;
+ border-bottom: 8px solid white;
+ background: steelblue url("images/sea.jpg") no-repeat bottom right;
+}
+#menu {
+ padding-bottom: 40px;
+ border-top: 1px solid lightsteelblue;
+ border-right: 1px solid lightsteelblue;
+ float: left;
+ width: 176px;
+ overflow: hidden;
+ background: ghostwhite;
+}
+#menu ul {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+#menu li {
+ border-bottom: 1px solid lightsteelblue;
+}
+#menu a:link, #menu a:visited {
+ padding: 8px 0;
+ display: block;
+ color: black;
+ background: url("images/marker.gif") no-repeat 8px;
+ text-indent: 16px;
+ text-decoration: none;
+}
+#menu a:hover {
+ background: antiquewhite url("images/marker.gif") no-repeat 8px;
+}
+#content {
+ padding: 8px 8px 40px 185px;
+ border-top: 1px solid lightsteelblue;
+ background: white url("images/background.gif") repeat-y left;
+}
+#submenu {
+ border: 1px solid lightsteelblue;
+ float: right;
+ background: ghostwhite;
+}
+#submenu h3 {
+ margin: 0;
+ padding: 4px 8px;
+ border-bottom: 4px solid white;
+ color: white;
+ background: steelblue;
+ text-align: center;
+}
+#submenu ul {
+ margin: 0;
+ padding: 8px;
+ border-top: 1px solid lightsteelblue;
+ list-style: square inside;
+}
+#footer {
+ padding: 8px 8px 20px;
+ clear: left;
+ color: white;
+ background: lightsteelblue;
+}
+#footer address {
+ font-style: normal;
+}
+#footer p {
+ margin: 0;
+ float: right;
+}
+#footer a:link, #footer a:visited {
+ color: white;
+ font-weight: bold;
+}
+.hidden {
+ display: none;
+}
+.odd {
+}
+.even {
+ background: azure;
+}
+.error {
+ font-weight: normal;
+ text-align: left;
+ background: red;
+}
+.right_border {
+ border-right: 1px solid lightsteelblue;
+ border-collapse: collapse;
+}
+
+#help {
+ float: right;
+}
+
+#cmd_window {
+ margin-top : 20px ;
+ margin-bottom : 20px ;
+}
+#cmd_window table {
+ border-top: 1px solid black;
+ border-collapse: collapse;
+ width: 70%;
+}
+
+#cmd_window tr td {
+ border-bottom: 1px solid black;
+ background: black;
+ color: white;
+ font-size: x-small;
+ padding-left: 10px;
+ padding-right: 100px;
+}
--- /dev/null
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Call of help of displayed screen
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby
+ * granted, provided that the above copyright notice appear in all
+ * copies and that both that copyright notice and this permission
+ * notice appear in supporting documentation, and that the name of the
+ * author not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. The author makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * @copyright 2003-2006 PgPool Global Development Group
+ * @version CVS: $Id$
+ */
+
+require_once('common.php');
+$tpl->assign('help', basename( __FILE__, '.php'));
+
+$lang = $_SESSION[SESSION_LANG];
+
+$help = $_GET['help'];
+$tpl->assign('help', $help);
+
+$tempFile = SMARTY_TEMPLATE_DIR . "/help/$lang/$help" . '.tpl';
+
+if( ! file_exists($tempFile)) {
+ $errorCode = 'e6';
+ $tpl->assign('errorCode', $errorCode);
+ $tpl->display('error.tpl');
+ exit();
+}
+
+$tpl->assign('isHelp', true);
+$tpl->display($tempFile);
+
+?>
--- /dev/null
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Index page of PgpoolAdmin
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby
+ * granted, provided that the above copyright notice appear in all
+ * copies and that both that copyright notice and this permission
+ * notice appear in supporting documentation, and that the name of the
+ * author not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. The author makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * @copyright 2003-2006 PgPool Global Development Group
+ * @version CVS: $Id$
+ */
+
+require_once('common.php');
+$tpl->assign('help', basename( __FILE__, '.php'));
+
+if(!isset($_SESSION[SESSION_LOGIN_USER])) {
+ header('Location: login.php');
+ exit();
+} else {
+ header('Location: status.php');
+ exit();
+}
+
+?>
\ No newline at end of file
--- /dev/null
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Log view of Pgpool in status view
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby
+ * granted, provided that the above copyright notice appear in all
+ * copies and that both that copyright notice and this permission
+ * notice appear in supporting documentation, and that the name of the
+ * author not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. The author makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * @copyright 2003-2006 PgPool Global Development Group
+ * @version CVS: $Id$
+ */
+
+require_once('common.php');
+
+if(!isset($_SESSION[SESSION_LOGIN_USER])) {
+ exit();
+}
+
+$pgpoolLog = _PGPOOL2_LOG_FILE;
+if($pgpoolLog == '') {
+ $logDir = readLogDir();
+ $pgpoolLog = "$logDir/pgpool.log";
+}
+
+$logFile = @file($pgpoolLog);
+if($logFile == false) {
+ $errorCode = 'e8001';
+ $tpl->assign('errorCode', $errorCode);
+ $tpl->display('innerError.tpl');
+ exit();
+}
+
+$logSplitFile = array();
+for($i=0; $i<count($logFile); $i++) {
+ $logFile[$i] = split(' +', $logFile[$i], 6);
+}
+
+$tpl->assign('logFile', $logFile);
+$tpl->display('innerLog.tpl');
+
+?>
--- /dev/null
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * View of servers status registered in pgpool.conf
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby
+ * granted, provided that the above copyright notice appear in all
+ * copies and that both that copyright notice and this permission
+ * notice appear in supporting documentation, and that the name of the
+ * author not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. The author makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * @copyright 2003-2006 PgPool Global Development Group
+ * @version CVS: $Id$
+ */
+
+require_once('common.php');
+
+if(!isset($_SESSION[SESSION_LOGIN_USER])) {
+ exit();
+}
+
+$healthCheckDb = 'template1';
+
+$params = readHealthCheckParam();
+
+$healthCheckUser = $params['health_check_user'];
+
+if(isset($params['backend_hostname'])) {
+ $backendHostName = $params['backend_hostname'];
+ $backendPort = $params['backend_port'];
+} else {
+ $backendHostName = array();
+}
+
+$result = array();
+foreach($backendHostName as $num => $hostname) {
+ $result[$num]['hostname'] = $backendHostName[$num];
+ $result[$num]['port'] = $backendPort[$num];
+
+ if(NodeActive($num)) {
+ $result[$num]['status'] = TRUE;
+ } else {
+ $result[$num]['status'] = FALSE;
+ }
+}
+
+$tpl->assign('nodeServerStatus', $result);
+$tpl->assign('nodeCount', count($result));
+$tpl->display('innerNodeServerStatus.tpl');
+
+?>
--- /dev/null
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Infomation of the pgpool summary
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby
+ * granted, provided that the above copyright notice appear in all
+ * copies and that both that copyright notice and this permission
+ * notice appear in supporting documentation, and that the name of the
+ * author not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. The author makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * @copyright 2003-2006 PgPool Global Development Group
+ * @version CVS: $Id$
+ */
+
+require_once('common.php');
+
+if(!isset($_SESSION[SESSION_LOGIN_USER])) {
+ exit();
+}
+
+$params = readConfigParams(array('parallel_mode',
+ 'enable_query_cache',
+ 'replication_mode',
+ 'load_balance_mode',
+ 'health_check_period'));
+
+$tpl->assign('params', $params);
+$tpl->display('innerSummary.tpl');
+
+?>
--- /dev/null
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * View of the system catalog selected postgresql server
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby
+ * granted, provided that the above copyright notice appear in all
+ * copies and that both that copyright notice and this permission
+ * notice appear in supporting documentation, and that the name of the
+ * author not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. The author makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * @copyright 2003-2006 PgPool Global Development Group
+ * @version CVS: $Id$
+ */
+
+require_once('common.php');
+
+if(!isset($_SESSION[SESSION_LOGIN_USER])) {
+ exit();
+}
+
+$pgCatalog = pg_escape_string($_GET['catalog']);
+$nodeNum = $_GET['num'];
+
+if($pgCatalog == '') {
+ return;
+}
+
+$params =readHealthCheckParam();
+
+$dbParams['hostname'] = $params['backend_hostname'][$nodeNum];
+$dbParams['port'] = $params['backend_port'][$nodeNum];
+$dbParams['dbname'] = 'template1';
+$dbParams['user'] = $params['health_check_user'];
+$dbParams['password'] ='';
+
+$tpl->assign('hostname', $dbParams['hostname'] );
+$tpl->assign('port', $dbParams['port'] );
+
+$conn = openDBConnection($dbParams);
+
+$sql = 'show pool_status';
+
+$rs = execQuery($conn, $sql);
+
+if(!pg_result_status($rs) == PGSQL_TUPLES_OK) {
+ $sql = "SELECT * FROM $pgCatalog";
+ $rs = execQuery($conn, $sql);
+ $tpl->assign('catalog', $pgCatalog);
+} else {
+ $tpl->assign('catalog', 'pool_status');
+}
+
+if(!pg_result_status($rs) == PGSQL_TUPLES_OK) {
+ $errorCode = 'e8001';
+ $tpl->assign('errorCode', $errorCode);
+ $tpl->display('innerError.tpl');
+ exit();
+}
+
+$results = pg_fetch_all($rs);
+
+closeDBConnection($conn);
+
+$tpl->assign('results', $results);
+$tpl->display('innerSystemCatalog.tpl');
+
+?>
--- /dev/null
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Check directory used in PgpoolAdmin
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby
+ * granted, provided that the above copyright notice appear in all
+ * copies and that both that copyright notice and this permission
+ * notice appear in supporting documentation, and that the name of the
+ * author not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. The author makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * @copyright 2003-2006 PgPool Global Development Group
+ * @version CVS: $Id$
+ */
+
+require_once('../version.php');
+
+session_start();
+
+require_once('setLang.php');
+
+$error = false;
+
+$action = '';
+if(isset($_POST['action'])) {
+ $action = $_POST['action'];
+}
+
+$templates_c = dirname(dirname(__FILE__) . '/') . '/templates_c';
+if(!is_writable($templates_c)) {
+ $templates_c = $templates_c . ' write denied';
+ $error = true;
+} else {
+ unset($templates_c);
+}
+$conf = dirname(dirname(__FILE__) . '/') . '/conf/pgmgt.conf.php';
+if(!is_writable($conf)) {
+ $conf = $conf . ' write denied';
+ $error = true;
+} else {
+ unset($conf);
+}
+
+if(!$error && $action == 'next') {
+ header("Location: checkParameter.php");
+}
+
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title><? echo $message['strDirectoryCheck'] ?></title>
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+</head>
+ <body>
+ <div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+ </div>
+ <div id="content">
+ <h2>Welcome to pgpool-II Administration Tool</h2>
+ <h3><? echo $message['strDirectoryCheck'] ?></h3>
+ <form action="checkDirectory.php" method="post" name="CheckPath" id="CheckPath">
+ <?php
+ if($error) {
+ echo '<input type="hidden" name="action" value="check">';
+ } else {
+ echo '<input type="hidden" name="action" value="next">';
+ }
+ ?>
+<table>
+ <tbody>
+ <tr>
+ <th><label><?php echo $message['strTempDir'] ?></label></th>
+ <td>
+ <?php
+ if(isset($templates_c))
+ echo "<img src='images/ng.gif' alt='ng' /> " . $templates_c;
+ else
+ echo "<img src='images/ok.gif' alt='ok' />";
+ ?>
+ </td>
+ </tr>
+ <tr>
+ <th><label><?php echo $message['strPgmgtFile'] ?></label></th>
+ <td>
+ <?php
+ if(isset($conf))
+ echo "<img src='images/ng.gif' alt='ng' /> " . $conf;
+ else
+ echo "<img src='images/ok.gif' alt='ok' />";
+ ?>
+ </td>
+ </tr>
+ </tbody>
+</table>
+<p>
+<?php
+if($error)
+ echo '<input type="submit" value="' . $message['strCheck'] . '" />';
+else
+ echo '<input type="submit" value="' . $message['strNext'] . '" />';
+?>
+</p>
+</form>
+</div>
+ <div id="footer">
+ <address>Version <?php echo $version;?><br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.</address>
+ </div>
+ </body>
+</html>
--- /dev/null
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Check parameters used in PgpoolAdmin
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby
+ * granted, provided that the above copyright notice appear in all
+ * copies and that both that copyright notice and this permission
+ * notice appear in supporting documentation, and that the name of the
+ * author not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. The author makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * @copyright 2003-2006 PgPool Global Development Group
+ * @version CVS: $Id$
+ */
+
+require_once('../version.php');
+
+session_start();
+
+require("defaultParameter.php");
+require_once('setLang.php');
+
+$error = false;
+
+$action = '';
+if(isset($_POST['action'])) {
+ $action = $_POST['action'];
+}
+
+$pgpool2_config_file = $_POST['pgpool2_config_file'];
+if( !$pgpool2_config_file) {
+ $pgpool2_config_file = _PGPOOL2_CONFIG_FILE;
+}
+if(!@is_file($pgpool2_config_file)) {
+ $msgPgpoolConfigFile = 'No file found';
+ $error = true;
+}
+else {
+ if(!is_readable($pgpool2_config_file)) {
+ $msgPgpoolConfigFile = 'Read access denied';
+ $error = true;
+ }
+ if(!is_writable($pgpool2_config_file)) {
+ $msgPgpoolConfigFile = 'Write access denied';
+ $error = true;
+ }
+}
+
+$password_file = $_POST['password_file'];
+if( !$password_file) {
+ $password_file = _PGPOOL2_PASSWORD_FILE;
+}
+if(!@is_file($password_file)) {
+ $msgPasswordFile = 'No file found';
+ $error = true;
+}
+else {
+ if(!is_readable($password_file)) {
+ $msgPasswordFile = 'Read access denied';
+ $error = true;
+ }
+ if(!is_writable($password_file)) {
+ $msgPasswordFile = 'Write access denied';
+ $error = true;
+ }
+}
+
+$pgpool_command = $_POST['pgpool_command'];
+if( !$pgpool_command) {
+ $pgpool_command = _PGPOOL2_COMMAND;
+}
+if(!@is_file($pgpool_command)) {
+ $msgPgpoolCommand = 'Pgpool not found';
+ $error = true;
+}
+if(!is_executable($pgpool_command)) {
+ $msgPgpoolCommand = 'Pgppol command can\'t excutable';
+ $error = true;
+}
+
+$pgpool_logfile = $_POST['pgpool_logfile'];
+if( !$pgpool_logfile) {
+ $pgpool_logfile = _PGPOOL2_LOG_FILE;
+}
+if(!is_dir(dirname($pgpool_logfile))) {
+ $msgPgpoolLogFile = 'No Directory found';
+ $error = true;
+}
+else {
+ if(!is_writable(dirname($pgpool_logfile))) {
+ $msgPgpoolLogFile = 'Write access denied';
+ $error = true;
+ }
+}
+
+$pcp_client_dir = $_POST['pcp_client_dir'];
+if( !$pcp_client_dir) {
+ $pcp_client_dir = _PGPOOL2_PCP_DIR;
+}
+if(!is_dir($pcp_client_dir)) {
+ $msgPcpClientDir = 'Directory not found';
+ $error = true;
+}
+else {
+ $command = array('pcp_attach_node',
+ 'pcp_detach_node',
+ 'pcp_node_count',
+ 'pcp_node_info',
+ 'pcp_proc_count',
+ 'pcp_proc_info',
+ 'pcp_stop_pgpool',
+ 'pcp_systemdb_info');
+
+ for($i=0; $i<count($command); $i++) {
+ if(!is_executable($pcp_client_dir . "/" . $command[$i] )) {
+ $msgPcpClientDir = $command[$i] . ' can\'t excutable';
+ $error = true;
+ }
+ }
+}
+
+$pcp_hostname = $_POST['pcp_hostname'];
+if(!$pcp_hostname) {
+ $pcp_hostname = _PGPOOL2_PCP_HOSTNAME;
+ $msgPcpHostname = '';
+}
+
+$pcp_refreshTime = $_POST['pcp_refreshTime'];
+if(!$pcp_refreshTime) {
+ $pcp_refreshTime = _PGPOOL2_STATUS_REFRESH_TIME;
+ $msgPcpRefreshTime = '';
+}
+
+if($error || $_POST['submitBack'] != null) {
+}
+else {
+
+ $params['lang'] = $_SESSION['lang'];
+ $params['pgpool2_config_file'] = $pgpool2_config_file;
+ $params['password_file'] = $password_file;
+ $params['pcp_client_dir'] = $pcp_client_dir;
+ $params['pcp_hostname'] = $pcp_hostname;
+ $params['pcp_refreshTime'] = $pcp_refreshTime;
+
+ $_SESSION['params'] = $params;
+}
+
+if(!$error && $action == 'next') {
+
+ $fp = fopen( "../conf/pgmgt.conf.php", "w");
+
+ fputs($fp, "<?php"."\n");
+
+ $str = 'define(\'_PGPOOL2_LANG\', \'' . $_SESSION['lang'] . '\');' . "\n";
+ fputs($fp, $str);
+
+ $str = 'define(\'_PGPOOL2_CONFIG_FILE\', \'' . $_POST['pgpool2_config_file'] . '\');' . "\n";
+ fputs($fp, $str);
+
+ $str = 'define(\'_PGPOOL2_PASSWORD_FILE\', \'' . $_POST['password_file'] . '\');' . "\n";
+ fputs($fp, $str);
+
+ $str = 'define(\'_PGPOOL2_COMMAND\', \'' . $_POST['pgpool_command'] . '\');' . "\n";
+ fputs($fp, $str);
+
+ if(isset($_POST['c'])) {
+ $c = 1;
+ } else {
+ $c = 0;
+ }
+
+ if(isset($_POST['d'])) {
+ $d = 1;
+ } else {
+ $d = 0;
+ }
+
+ if(isset($_POST['n'])) {
+ $n = 1;
+ } else {
+ $n = 0;
+ }
+
+ $str = 'define(\'_PGPOOL2_CMD_OPTION_C\', \'' . $c . '\');' . "\n";
+ fputs($fp, $str);
+
+ $str = 'define(\'_PGPOOL2_CMD_OPTION_D\', \'' . $d . '\');' . "\n";
+ fputs($fp, $str);
+
+ $str = 'define(\'_PGPOOL2_CMD_OPTION_M\', \'' . $_POST['m'] . '\');' . "\n";
+ fputs($fp, $str);
+
+ $str = 'define(\'_PGPOOL2_CMD_OPTION_N\', \'' . $n . '\');' . "\n";
+ fputs($fp, $str);
+
+ $str = 'define(\'_PGPOOL2_LOG_FILE\', \'' . $_POST['pgpool_logfile'] . '\');' . "\n";
+ fputs($fp, $str);
+
+ $str = 'define(\'_PGPOOL2_PCP_DIR\', \'' . $_POST['pcp_client_dir'] . '\');' . "\n";
+ fputs($fp, $str);
+
+ $str = 'define(\'_PGPOOL2_PCP_HOSTNAME\', \'' . $_POST['pcp_hostname'] . '\');' . "\n";
+ fputs($fp, $str);
+
+ $str = 'define(\'_PGPOOL2_PCP_TIMEOUT\', \'' . $_POST['pcp_timeout'] . '\');' . "\n";
+ fputs($fp, $str);
+
+ $str = 'define(\'_PGPOOL2_STATUS_REFRESH_TIME\', \'' . $_POST['pcp_refreshTime'] . '\');' . "\n";
+ fputs($fp, $str);
+
+ fputs($fp, "?>"."\n");
+
+ fclose($fp);
+
+ header("Location: finish.php");
+}
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title><?php echo $message['strParameterCheck']; ?></title>
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+</head>
+ <body>
+ <div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+ </div>
+ <div id="content">
+ <h2>Welcome to pgpool-II Administration Tool</h2>
+ <h3><?php echo $message['strParameterCheck']; ?></h3>
+ <form action="checkParameter.php" method="post" name="CheckPath" id="CheckPath">
+ <?php
+ if($error) {
+ echo '<input type="hidden" name="action" value="check">';
+ } else {
+ echo '<input type="hidden" name="action" value="next">';
+ }
+ ?>
+<table>
+ <tbody>
+ <tr>
+ <th><label><?php echo $message['strPgConfFile'] ?></label></th>
+ <td><input name="pgpool2_config_file" type="text" value="<?php echo $pgpool2_config_file?>" size="50" />
+ <?php
+ if($msgPgpoolConfigFile != '') {
+ echo '<br />' . $msgPgpoolConfigFile;
+ echo '</td><td><img src="images/ng.gif" alt="ng" />';
+ } else {
+ echo '</td><td><img src="images/ok.gif" alt="ok" />';
+ }
+ ?>
+ </td>
+ </tr>
+ <tr>
+ <th><label><?php echo $message['strPasswordFile'] ?></label></th>
+ <td><input name="password_file" type="text" value="<?php echo $password_file ?>" size="50" />
+ <?php
+ if($msgPasswordFile != '') {
+ echo '<br />' . $msgPasswordFile;
+ echo '</td><td><img src="images/ng.gif" alt="ng" />';
+ } else {
+ echo '</td><td><img src="images/ok.gif" alt="ok" />';
+ }
+ ?>
+ </td>
+ </tr>
+ <tr>
+ <th><label><?php echo $message['strPgpoolCommand'] ?></label></th>
+ <td><input name="pgpool_command" type="text" value="<?php echo $pgpool_command ?>" size="50" />
+ <?php
+ if($msgPgpoolCommand != '') {
+ echo '<br />' . $msgPgpoolCommand;
+ echo '</td><td><img src="images/ng.gif" alt="ng" />';
+ } else {
+ echo '</td><td><img src="images/ok.gif" alt="ok" />';
+ }
+ ?>
+ </td>
+ </tr>
+ <tr>
+ <th colspan="3"><label><?php echo $message['strPgpoolCommandOption'] ?></label></th>
+ </tr>
+ <tr>
+ <th><label><?php echo $message['strCmdC'] ?></label></th>
+ <td><input type="checkbox" name="c" /></td>
+ <?php
+ if($msgCmdC != '') {
+ echo '<br />' . $msgCmdC;
+ echo '</td><td><img src="images/ng.gif" alt="ng" />';
+ } else {
+ echo '</td><td><img src="images/ok.gif" alt="ok" />';
+ }
+ ?>
+ </td>
+ </tr>
+ <tr>
+ <th><label><?php echo $message['strCmdN'] ?></label></th>
+ <td><input type="checkbox" name="n" /></td>
+ <?php
+ if($msgCmdN != '') {
+ echo '<br />' . $msgCmdN;
+ echo '</td><td><img src="images/ng.gif" alt="ng" />';
+ } else {
+ echo '</td><td><img src="images/ok.gif" alt="ok" />';
+ }
+ ?>
+ </td>
+ </tr>
+ <tr>
+ <th><label><?php echo $message['strCmdD'] ?></label></th>
+ <td><input type="checkbox" name="d" /></td>
+ <?php
+ if($msgCmdD != '') {
+ echo '<br />' . $msgCmdD;
+ echo '</td><td><img src="images/ng.gif" alt="ng" />';
+ } else {
+ echo '</td><td><img src="images/ok.gif" alt="ok" />';
+ }
+ ?>
+ </td>
+ </tr>
+ <tr>
+ <th><label><?php echo $message['strCmdM'] ?></label></th>
+ <td><select name="m" />
+ <option value="s" selected="selected">smart</optgroup>
+ <option value="f">fast</optgroup>
+ <option value="i">immediate</optgroup>
+ </select>
+ </td>
+ <?php
+ if($msgCmdM != '') {
+ echo '<br />' . $msgCmdM;
+ echo '</td><td><img src="images/ng.gif" alt="ng" />';
+ } else {
+ echo '</td><td><img src="images/ok.gif" alt="ok" />';
+ }
+ ?>
+ </td>
+ </tr>
+ <tr>
+ <th><label><?php echo $message['strPgpoolLogFile'] ?></label></th>
+ <td><input name="pgpool_logfile" type="text" value="<?php echo $pgpool_logfile ?>" size="50" />
+ <?php
+ if($msgPgpoolLogFile != '') {
+ echo '<br />' . $msgPgpoolLogFile;
+ echo '</td><td><img src="images/ng.gif" alt="ng" />';
+ } else {
+ echo '</td><td><img src="images/ok.gif" alt="ok" />';
+ }
+ ?>
+ </td>
+ </tr>
+
+ <tr>
+ <th><label><?php echo $message['strPcpDir'] ?></label></th>
+ <td><input name="pcp_client_dir" type="text" value="<?php echo $pcp_client_dir ?>" size="50" />
+ <?php
+ if($msgPcpClientDir != '') {
+ echo '<br />' . $msgPcpClientDir;
+ echo '</td><td><img src="images/ng.gif" alt="ng" />';
+ } else {
+ echo '</td><td><img src="images/ok.gif" alt="ok" />';
+ }
+ ?>
+ </td>
+ </tr>
+ <tr>
+ <th><label><?php echo $message['strPcpHostName'] ?></label></th>
+ <td><input name="pcp_hostname" type="text" value="<?php echo $pcp_hostname ?>" size="50" />
+ <?php
+ if($msgPcpHostname != '') {
+ echo '<br />' . $msgPcpHostname;
+ echo '</td><td><img src="images/ng.gif" alt="ng" />';
+ } else {
+ echo '</td><td><img src="images/ok.gif" alt="ok" />';
+ }
+ ?>
+ </td>
+ </tr>
+ <tr>
+ <th><label><?php echo $message['strPcpRefreshTime'] ?></label></th>
+ <td><input name="pcp_refreshTime" type="text" value="<?php echo $pcp_refreshTime ?>" size="50" />
+ <?php
+ if($msgPcpRefreshTime != '') {
+ echo '<br />' . $msgPcpRefreshTime;
+ echo '</td><td><img src="images/ng.gif" alt="ng" />';
+ } else {
+ echo '</td><td><img src="images/ok.gif" alt="ok" />';
+ }
+ ?>
+ </td>
+ </tr>
+ </tbody>
+</table>
+<p>
+<?php
+if($error) {
+echo '<input type="submit" value="' . $message['strCheck'] . '" />';
+}
+else {
+echo '<input type="submit" value="' . $message['strNext'] . '" />';
+}
+?>
+</p>
+</form>
+</div>
+ <div id="footer">
+ <address>Version <?php echo $version;?><br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.</address>
+ </div>
+ </body>
+</html>
--- /dev/null
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Default parameters of PgpoolAdmin
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby
+ * granted, provided that the above copyright notice appear in all
+ * copies and that both that copyright notice and this permission
+ * notice appear in supporting documentation, and that the name of the
+ * author not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. The author makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * @copyright 2003-2006 PgPool Global Development Group
+ * @version CVS: $Id$
+ */
+
+define("_PGPOOL2_CONFIG_FILE", "/usr/local/etc/pgpool.conf");
+define("_PGPOOL2_PASSWORD_FILE", "/usr/local/etc/pcp.conf");
+define("_PGPOOL2_COMMAND", "/usr/local/bin/pgpool");
+define("_PGPOOL2_CMD_OPTION_C", "0");
+define("_PGPOOL2_CMD_OPTION_D", "0");
+define("_PGPOOL2_CMD_OPTION_M", "s");
+define("_PGPOOL2_CMD_OPTION_N", "0");
+define("_PGPOOL2_LOG_FILE", "/tmp/pgpool.log");
+define("_PGPOOL2_PCP_DIR", "/usr/local/bin");
+define("_PGPOOL2_PCP_HOSTNAME", "localhost");
+define("_PGPOOL2_PCP_TIMEOUT", "10");
+define("_PGPOOL2_STATUS_REFRESH_TIME", "0");
+
+?>
\ No newline at end of file
--- /dev/null
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Write pgmgt.conf.php, then finish
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby
+ * granted, provided that the above copyright notice appear in all
+ * copies and that both that copyright notice and this permission
+ * notice appear in supporting documentation, and that the name of the
+ * author not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. The author makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * @copyright 2003-2006 PgPool Global Development Group
+ * @version CVS: $Id$
+ */
+
+require_once('../version.php');
+
+session_start();
+
+require_once('setLang.php');
+
+$installDir = dirname(__FILE__);
+
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title><?php echo $message['msgCongratulations']; ?></title>
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+</head>
+ <body>
+ <div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+ </div>
+ <div id="content">
+ <h2>Welcome to pgpool-II Administration Tool</h2>
+ <h3><?php echo $message['msgCongratulations'] ?></h3>
+ <?php echo $installDir . $message['msgDeleteInstallDir'] ?>
+ <p><a href='../index.php'><?php echo $message['msgToTop'] ?></a></p>
+</div>
+ <div id="footer">
+ <address>Version <?php echo $version;?><br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.</address>
+ </div>
+ </body>
+</html>
+
--- /dev/null
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * First access in install process
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby
+ * granted, provided that the above copyright notice appear in all
+ * copies and that both that copyright notice and this permission
+ * notice appear in supporting documentation, and that the name of the
+ * author not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. The author makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * @copyright 2003-2006 PgPool Global Development Group
+ * @version CVS: $Id$
+ */
+
+require_once('../version.php');
+
+$messageList = array();
+$res_dir = opendir('lang/');
+while($file_name = readdir( $res_dir )) {
+ if(ereg('^[^\.]', $file_name)) {
+ include('lang/' . $file_name);
+ $messageList[$message['lang']] = $message['strLang'];
+ }
+}
+
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>Welcome to pgpool-II Administration Tool</title>
+<link href="../screen.css" rel="stylesheet" type="text/css" />
+</head>
+ <body>
+ <div id="header">
+ <h1><img src="../images/logo.gif" alt="pgpoolAdmin" /></h1>
+ </div>
+ <div id="content">
+ <h2>Welcome to pgpool-II Administration Tool</h2>
+<form action="checkDirectory.php" method="post" name="CheckPath" id="CheckPath">
+<table>
+ <tbody>
+ <tr>
+ <th><label>Language</label></th>
+ <td>
+ <select name="lang">
+ <?php
+ foreach ($messageList as $key => $str) {
+ echo "<option value='$key' >$str</option>\n";
+ }
+ ?>
+ </select>
+ </td>
+ </tr>
+ </tbody>
+</table>
+<p><input type="submit" value="Next" /></p>
+</form>
+</div>
+ <div id="footer">
+ <address>Version <?php echo $version;?><br />
+ Copyright © 2006 <a href="http://pgpool.projects.postgresql.org/">pgpool Global Development Group</a>. All rights reserved.</address>
+ </div>
+ </body>
+</html>
--- /dev/null
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Message catalog in English
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby
+ * granted, provided that the above copyright notice appear in all
+ * copies and that both that copyright notice and this permission
+ * notice appear in supporting documentation, and that the name of the
+ * author not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. The author makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * @copyright 2003-2006 PgPool Global Development Group
+ * @version CVS: $Id$
+ */
+
+$message = array(
+ 'lang' => 'en',
+ 'strLang' => 'English',
+ 'strNext' => 'Next',
+ 'strCheck' => 'Check',
+ 'strDirectoryCheck' => 'Directory Cehck',
+ 'strParameterCheck' => 'Parameter Setting',
+ 'strFinish' => 'Finish',
+ 'strPgConfFile' => 'pgpool.conf File',
+ 'strPasswordFile' => 'Password file',
+ 'strPgmgtFile' => 'pgpoolAdmin Setting File',
+ 'strTempDir' => 'Template Directory',
+ 'strPgpoolCommand' => 'Pgpool Command',
+ 'strPgpoolCommandOption' => 'Pgpool Command Option',
+ 'strCmdC' => 'Clears query cache',
+ 'strCmdD' => 'debug mode',
+ 'strCmdM' => 'stop mode',
+ 'strCmdN' => 'don\'t run in daemon mode',
+ 'strCmdPgpoolFile' => 'pgpool.conf',
+ 'strCmdPcpFile' => 'pcp.conf',
+ 'strCmdDesc' => 'If it is a blank, this option is ignored.',
+ 'strPgpoolLogFile' => 'Pgpool Logfile',
+ 'strPcpDir' => 'PCP directory',
+ 'strPcpTimeout' => 'PCP Timeout',
+ 'strPcpHostName' => 'PCP Hostname',
+ 'strPcpRefreshTime' => 'Refresh Time',
+ 'msgCongratulations' => 'Congratulations. Pgpool Administration Tool was installed!',
+ 'msgDeleteInstallDir' => ' : Please remove this directory',
+ 'msgToTop' => 'top'
+);
+
+?>
--- /dev/null
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Message catalog in Japanese
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby
+ * granted, provided that the above copyright notice appear in all
+ * copies and that both that copyright notice and this permission
+ * notice appear in supporting documentation, and that the name of the
+ * author not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. The author makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * @copyright 2003-2006 PgPool Global Development Group
+ * @version CVS: $Id$
+ */
+
+$message = array(
+ 'lang' => 'ja',
+ 'strLang' => '日本語',
+ 'strNext' => '次へ',
+ 'strCheck' => 'チェック',
+ 'strDirectoryCheck' => 'ディレクトリ確認',
+ 'strParameterCheck' => '管理ツールパラメータ設定',
+ 'strFinish' => '完了',
+ 'strPgConfFile' => 'pgpool.confファイル',
+ 'strPasswordFile' => 'パスワードファイル',
+ 'strPgmgtFile' => '管理ツール設定ファイル',
+ 'strTempDir' => 'テンプレートディレクトリ',
+ 'strPgpoolCommand' => 'Pgpoolコマンド',
+ 'strPgpoolCommandOption' => 'pgpoolコマンドオプション',
+ 'strCmdC' => 'クエリキャッシュクリア',
+ 'strCmdD' => 'デバッグモード',
+ 'strCmdM' => '停止モード',
+ 'strCmdN' => '非デーモンモード',
+ 'strCmdPgpoolFile' => 'pgpool.conf',
+ 'strCmdPcpFile' => 'pcp.conf',
+ 'strCmdDesc' => '空白の場合には無視',
+ 'strPgpoolLogFile' => 'Pgpoolログファイル',
+ 'strPcpDir' => 'PCPディレクトリ',
+ 'strPcpTimeout' => 'PCPタイムアウト',
+ 'strPcpHostName' => 'PCPホスト名',
+ 'strPcpRefreshTime' => '更新間隔(0で自動更新しない)',
+ 'msgCongratulations' => 'おめでとうございます。インストールは終了しました。',
+ 'msgDeleteInstallDir' => 'を削除してください',
+ 'msgToTop' => 'トップ画面へ移動'
+);
+
+?>
--- /dev/null
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Set to language
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby
+ * granted, provided that the above copyright notice appear in all
+ * copies and that both that copyright notice and this permission
+ * notice appear in supporting documentation, and that the name of the
+ * author not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. The author makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * @copyright 2003-2006 PgPool Global Development Group
+ * @version CVS: $Id$
+ */
+
+require_once('../version.php');
+
+if(!isset($_POST['lang']) && !isset($_SESSION['lang'])) {
+ $lang = 'en';
+}
+else {
+ if(isset($_POST['lang'])) {
+ $lang = $_POST['lang'];
+ $_SESSION['lang'] = $lang;
+ }
+ else {
+ $lang = $_SESSION['lang'];
+ }
+}
+
+include('lang/'. $lang . '.lang.php');
+
+?>
--- /dev/null
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Message catalog in English
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby
+ * granted, provided that the above copyright notice appear in all
+ * copies and that both that copyright notice and this permission
+ * notice appear in supporting documentation, and that the name of the
+ * author not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. The author makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * @copyright 2003-2006 PgPool Global Development Group
+ * @version CVS: $Id$
+ */
+
+$message = array(
+ 'lang' => 'en',
+ 'strLang' => 'English',
+ 'descBackend_hostname' => 'The real PostgreSQL server name pgpool could connect',
+ 'descBackend_port' => 'The port number where real PostgreSQL server is running on',
+ 'descBackend_socket_dir' => 'The socket directory PostgreSQL could connect',
+ 'descBackend_weight' => 'Load balance weight when pgpool is running in the state of load balance mode',
+ 'descChild_life_time' => 'Life of a idle child process in seconds',
+ 'descChild_max_connections' => 'If child_max_connections connections were received, child exits',
+ 'descConnection_cache' => 'If true, cache connections to PostgreSQL',
+ 'descConnection_life_time' => 'Life time for each idle connection in seconds',
+ 'descEnable_query_cache' => 'Perform query cache',
+ 'descHealth_check_period' => 'Specifies the interval for next health checking. 0 means no health checking',
+ 'descHealth_check_timeout' => 'Pgpool does "health check" periodically to detect PostgreSQL servers down, network communication problems or as such',
+ 'descHealth_check_user' => 'PostgreSQL user name for the health checking',
+ 'descIgnore_leading_white_space' => 'If true, ignore leading white spaces of each query while pgpool judges if the query is a SELECT so that it can be load balanced',
+ 'descInsert_lock' => ' If you replicate a table having SERIAL data type column, sometimes the serial value does not match between servers',
+ 'descListen_addresses' => 'Specifies the addresses to listen on for TCP/IP connections',
+ 'descLoad_balance_mode' => 'Perform load balancing for SELECT',
+ 'descLog_statement' => 'If true, print all statements to the log',
+ 'descLogdir' => 'The directory name to store pgpool\'s log files',
+ 'descMaster_slave_mode' => 'Run in master/slave mode',
+ 'descMax_pool' => 'Number of connection pools each pgpool server process are keeping',
+ 'descNum_init_children' => 'Number of pgpool process initially forked',
+ 'descParallel_mode' => 'Run in parallel mode',
+ 'descPcp_port' => 'The port number where pcp is running on',
+ 'descPcp_socket_dir' => 'The socket directory pcp could connect',
+ 'descPcp_timeout' => 'When there is no response in this time from client, it disconnect and stop',
+ 'descPgpool2_hostname' => 'Pgpool2 server name where running on',
+ 'descPort' => 'The port number where pgpool is running on',
+ 'descPrint_timestamp' => 'If true timestamp is added to each log line',
+ 'descReplication_mode' => 'Set this true if you are going to use replication functionality',
+ 'descReplication_stop_on_mismatch' => 'Stop replication mode on data mismatch between master and secondary',
+ 'descReplication_strict' => 'If true, pgpool will wait for the completion of the master query before sending a query to the secondary server',
+ 'descReplication_timeout' => 'In non strict replication mode, there will be a chance of deadlock',
+ 'descReset_query_list' => 'Semicolon separated SQL commands to be issued at the end of session',
+ 'descSocket_dir' => 'The socket directory pgpool could connect',
+ 'descSystem_db_dbname' => 'The database name of system database',
+ 'descSystem_db_hostname' => 'The server name system database running on',
+ 'descSystem_db_password' => 'The password of system database who connects system database',
+ 'descSystem_db_port' => 'The port number system database could connect',
+ 'descSystem_db_schema' => 'The schema name of system database',
+ 'descSystem_db_user' => 'The username when connection system database',
+ 'errAlreadyExist' => 'It is already exist.',
+ 'errFileNotExecutable' => 'File can\'t executable',
+ 'errFileNotFound' => 'File not found',
+ 'errFileNotWritable' => 'File can\'t write',
+ 'errIllegalHostname' => 'Illegal Hostname',
+ 'errInputEverything' => 'Please input all items',
+ 'errNoDefined' => 'No defined Parameter',
+ 'errNotSameLength' => 'The array length of col_list is not corresponding to that of type_list. It should be the same number of elements.',
+ 'errPasswordMismatch' => 'The password is a mismatch',
+ 'errRequired' => 'This is reqired',
+ 'errShouldBeInteger' => 'This should be an integer',
+ 'errShouldBeZeroOrMore' => 'This should be 0 or more',
+ 'errSingleQuotation' => 'Please enclose the array element with a single quotation.',
+ 'msgDeleteConfirm' => 'May I really delete it?',
+ 'msgMasterDbConnectionError' => 'Mater DB connection failed',
+ 'msgPgpoolConfNotFound' => 'pgpool.conf not found',
+ 'msgPleaseSetup' => 'No found configuration file. Please execute the setup.',
+ 'msgRestart' => 'Please Restart to reflect the change',
+ 'msgRestartPgpool' => 'May I really restart pgpool?',
+ 'msgSameAsPasswordFile' => 'The value is the same as item Password File',
+ 'msgSameAsPgpoolFile' => 'The value is the same as item pgpool.conf File',
+ 'msgStopPgpool' => 'May I really stop pgpool?',
+ 'msgUpdateComplete' => 'Update complete',
+ 'msgUpdateFailed' => 'Update failed',
+ 'strAdd' => 'Add',
+ 'strAdminPassword' => 'Password',
+ 'strBack' => 'Back',
+ 'strCancel' => 'Cancel',
+ 'strChangePassword' => 'Change Password',
+ 'strClear' => 'Clear',
+ 'strClearQueryCache' => 'Clear Query Cache',
+ 'strCmdC' => 'Clears query cache',
+ 'strCmdD' => 'Debug mode',
+ 'strCmdDesc' => 'If it is a blank, this option is ignored.',
+ 'strCmdM' => 'Stop mode',
+ 'strCmdN' => 'Don\'t run in daemon mode',
+ 'strCmdPcpFile' => 'pcp.conf',
+ 'strCmdPgpoolFile' => 'pgpool.conf',
+ 'strColList' => 'Column List',
+ 'strColName' => 'Column Name of Distributed key',
+ 'strCommon' => 'Common',
+ 'strConnectionError' => 'Connection Error',
+ 'strConnTime' => 'Connection Create Time',
+ 'strConnUsed' => 'Use of Connection',
+ 'strConnUser' => 'Username',
+ 'strCreateTime' => 'Create Time',
+ 'strDataError' => 'Data Error',
+ 'strDateFormat' => 'M j G:i:s T Y',
+ 'strDb' => 'Database',
+ 'strDbName' => 'Database Name',
+ 'strDebug' => 'Debug Mode',
+ 'strDelete' => 'Delete',
+ 'strDeleted' => 'lines were deleted',
+ 'strDetail' => 'Detail',
+ 'strDetailInfo' => 'Detail Infomation',
+ 'strDisconnect' => 'Disconnect',
+ 'strDistDefFunc'=> 'Distributed Function Name',
+ 'strDown' => 'Down',
+ 'strError' => 'Error',
+ 'strErrorCode' => 'Error Code',
+ 'strErrorMessage' => 'Error Message',
+ 'strExecute' => 'Execute',
+ 'strFeature' => 'Feature',
+ 'strHealthCheck' => 'Health Check',
+ 'strHelp' => 'Help',
+ 'strInvalidation' => 'Invalidation',
+ 'strIPaddress' => 'IP Address',
+ 'strLanguage' => 'Language',
+ 'strLoadBalanceMode' => 'Load Balance Mode',
+ 'strLog' => 'Log',
+ 'strLogin' => 'Login',
+ 'strLoginName' => 'Login Name',
+ 'strLogout' => 'Logout',
+ 'strMasterServer' => 'Master Server',
+ 'strMeasures' => 'Measures',
+ 'strNodeInfo' => 'Node Info.',
+ 'strNodeStatus' => 'Node Status',
+ 'strNodeStatus1' => 'Up. Disconnect',
+ 'strNodeStatus2' => 'Up. Connected',
+ 'strNodeStatus3' => 'Down',
+ 'strNoNode' => 'There is no node',
+ 'strOff' => 'Off',
+ 'strOn' => 'On',
+ 'strParallelMode' => 'Parallel Mode',
+ 'strParameter' => 'Parameter',
+ 'strPassword' => 'Password',
+ 'strPasswordConfirmation' => 'Password Confirmation',
+ 'strPasswordFile' => 'Password File',
+ 'strPcpConfFile' => 'pcp.conf File',
+ 'strPcpDir' => 'PCP Directory',
+ 'strPcpHostName' => 'PCP Hostname',
+ 'strPcpRefreshTime' => 'Refresh Time',
+ 'strPcpTimeout' => 'PCP Timeout',
+ 'strPgConfFile' => 'pgpool.conf File',
+ 'strPgConfSetting' => 'pgpool.conf Setting',
+ 'strPgpool' => 'pgpool',
+ 'strPgpool1' => 'pgpool-I',
+ 'strPgpool2' => 'pgpool-II',
+ 'strPgpoolCommand' => 'pgpool Command',
+ 'strPgpoolCommandOption' => 'pgpool Command Option',
+ 'strPgpoolLogFile' => 'pgpool Logfile',
+ 'strPgpoolManagementSystem' => 'pgpool-II Management System',
+ 'strPgpoolServer' => 'pgpool-II Server',
+ 'strPgpoolStatus' => 'pgpool Status',
+ 'strPgpoolSummary' => 'Summary',
+ 'strPleaseWait' => 'Please wait...',
+ 'strPort' => 'Port',
+ 'strProcId' => 'Process ID',
+ 'strProcInfo' => 'Process Info.',
+ 'strProcTime' => 'Process Start Time',
+ 'strProtocolMajorVersion' => 'Protocol Major Version',
+ 'strProtocolNinorVersion' => 'Protocol Minor Version',
+ 'strQueryCache' => 'Query Cache',
+ 'strQueryStr' => 'Query',
+ 'strReplicationMode' => 'Replication Mode',
+ 'strReset' => 'Reset',
+ 'strRestart' => 'Restart',
+ 'strRestartOption' => 'pgpool Restart Option',
+ 'strRestartPgpool' => 'Restart pgpool',
+ 'strReturn' => 'Return',
+ 'strSchemaName' => 'Schema Name',
+ 'strSearch' => 'Search',
+ 'strSecondaryServer' => 'Secondary Server',
+ 'strSetting' => 'pgpoolAdmin Setting',
+ 'strSetup' => 'Setup',
+ 'strStartOption' => 'Start Option',
+ 'strStartPgpool' => 'Start pgpool',
+ 'strStatus' => 'Status',
+ 'strStopOption' => 'pgpool Stop Option',
+ 'strStopPgpool' => 'Stop pgpool',
+ 'strSummary' => 'Summary',
+ 'strSystemDb' => 'Partitioning Rule',
+ 'strTable' => 'Table',
+ 'strTypeList' => 'Type List of Column',
+ 'strUp' => 'Up',
+ 'strUpdate' => 'Update',
+ 'strValue' => 'Value',
+ 'strWeight' => 'Weight',
+ 'e1' => 'No found pgmgt.conf.php.',
+ 'e2' => 'No found message catalog.',
+ 'e3' => 'PCP command error occurred.',
+ 'e4' => 'No found pgpool.conf.',
+ 'e5' => 'No found Smarty template file.',
+ 'e6' => 'No found help.',
+ 'e8' => 'No found pcp_timeout in pgpool.conf',
+ 'e9' => 'No found pcp_timeout in pgpool.conf',
+ 'e7' => 'No found Parameter in pgpmgt.conf.php',
+ 'e1001' => 'PCP command error occurred.',
+ 'e1002' => 'pcp_node_count command error occurred.',
+ 'e1003' => 'pcp_node_info command error occurred.',
+ 'e1004' => 'pcp_proc_count command error occurred.',
+ 'e1005' => 'pcp_proc_info command error occurred.',
+ 'e1006' => 'pcp_stop_pgpool command error occurred.',
+ 'e1007' => 'pcp_detach_node command error occurred.',
+ 'e1008' => 'No found pgpool.conf.',
+ 'e1009' => 'No found pcp.conf.',
+ 'e1010' => 'pcp_attach_node command error occurred.',
+ 'e1011' => 'No found log ifle.',
+ 'e2001' => 'Database connection error occurred.',
+ 'e2002' => 'The error occurred when SELECT was executed',
+ 'e2003' => 'No found pgpool.conf.',
+ 'e3001' => 'Database connection error occurred.',
+ 'e3002' => 'The SQL error occurred when SELECT was executed',
+ 'e3003' => 'The SQL error occurred when INSERT was executed',
+ 'e3004' => 'The SQL error occurred when UPDATE was executed',
+ 'e3005' => 'The SQL error occurred when DELETE was executed',
+ 'e3006' => 'No found pgpool.conf.',
+ 'e4001' => 'No found pgpool.conf.',
+ 'e4002' => 'It is not possible to read to pgpool.conf. ',
+ 'e4003' => 'It is not possible to write to pgpool.conf. ',
+ 'e5001' => 'No found pgmgt.conf.php.',
+ 'e5002' => 'It is not possible to read to pgmgt.conf.php.',
+ 'e5003' => 'It is not possible to write to pgmgt.conf.php.',
+ 'e6001' => 'No found pcp.conf',
+ 'e6002' => 'It is not possible to read to pcp.conf. ',
+ 'e6003' => 'It is not possible to write to pcp.conf. ',
+ 'e7001' => 'No found pcp.conf.',
+ 'e8001' => 'Detailed information cannot be acquired.',
+
+);
+
+?>
--- /dev/null
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Message catalog in Japanese
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby
+ * granted, provided that the above copyright notice appear in all
+ * copies and that both that copyright notice and this permission
+ * notice appear in supporting documentation, and that the name of the
+ * author not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. The author makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * @copyright 2003-2006 PgPool Global Development Group
+ * @version CVS: $Id$
+ */
+
+$message = array(
+ 'lang' => 'ja',
+ 'strLang' => '日本語',
+ 'descBackend_hostname' => 'pgpoolが接続するPostgreSQLサーバ(postmaster)が動いているホスト名',
+ 'descBackend_port' => 'PostgreSQLサーバのポート番号',
+ 'descBackend_socket_dir' => 'PostgreSQLサーバのUnix domain socketのディレクトリ',
+ 'descBackend_weight' => 'ロードバランスモード時のSELECTを振り分ける「重み」の定義',
+ 'descChild_life_time' => 'pgpoolの子プロセスの寿命',
+ 'descChild_max_connections' => '各pgpool子プロセスが終了するまでの接続回数',
+ 'descConnection_cache' => 'コネクションをキャッシュ',
+ 'descConnection_life_time' => 'コネクションプール中のコネクションの有効期間(秒)',
+ 'descEnable_query_cache' => 'クエリキャッシュ機能の有効化',
+ 'descHealth_check_period' => 'ヘルスチェックを行う間隔(秒)',
+ 'descHealth_check_timeout' => 'ヘルスチェックが長時間待たされるのを防ぐためのタイムアウト値(秒)',
+ 'descHealth_check_user' => 'ヘルスチェックを行うためのPostgreSQLユーザ名',
+ 'descIgnore_leading_white_space' => 'trueならば、load balanceの際にSQL文行頭の空白を無視',
+ 'descInsert_lock' => '自動的にトランザクションの開始,テーブルロック,トランザクションの終了',
+ 'descListen_addresses' => 'TCP/IPコネクションを受け付けるアドレス',
+ 'descLoad_balance_mode' => 'レプリケーションモード時にSELECT文を各ノードにロードバランス',
+ 'descLog_statement' => 'trueならばSQL文をログ出力',
+ 'descLogdir' => 'pgpoolの各種ログファイルを格納するディレクトリ',
+ 'descMaster_slave_mode' => 'マスタ/スレーブモードでpgpoolを運転',
+ 'descMax_pool' => 'pgpoolの各サーバプロセスがキープするPostgreSQLへの最大コネクション数',
+ 'descNum_init_children' => 'preforkするpgpoolのサーバプロセス数',
+ 'descParallel_mode' => 'パラレルモードでpgpoolを運転',
+ 'descPcp_port' => 'pgpool-IIが受け付けているポート番号',
+ 'descPcp_socket_dir' => 'pcpがコネクションを受け付けるUnix domain socketディレクトリ',
+ 'descPcp_timeout' => 'この時間内にクライアントから応答がない場合はコネクションを切断して終了',
+ 'descPgpool2_hostname' => 'pgpool2 が動作しているホスト名',
+ 'descPort' => 'pgpoolがコネクションを受け付けるポート番号',
+ 'descPrint_timestamp' => 'pgpoolのログにタイムスタンプを追加',
+ 'descReplication_mode' => 'レプリケーションモードの有効化',
+ 'descReplication_stop_on_mismatch' => 'trueを指定するとマスタとセカンダリの間でデータの不一致があった場合に強制的に縮退運転',
+ 'descReplication_strict' => 'masterの問い合わせ処理の完了を待ってからsecondaryの処理',
+ 'descReplication_timeout' => 'replication_strictがfalseのときにデッドロックを監視するためのタイムアウト時間',
+ 'descReset_query_list' => 'セッションが終了するときにコネクションを初期化するためのSQLコマンド',
+ 'descSocket_dir' => 'pgpoolがコネクションを受け付けるUnix domain socketディレクトリ',
+ 'descSystem_db_dbname' => 'System DBのデータベース名',
+ 'descSystem_db_hostname' => 'System DBが動いているホスト名',
+ 'descSystem_db_password' => 'System DBに接続するユーザのパスワード',
+ 'descSystem_db_port' => 'System DBに接続するためのポート番号',
+ 'descSystem_db_schema' => 'System DBのスキーマ',
+ 'descSystem_db_user' => 'System DBに接続するときのユーザ名',
+ 'errAlreadyExist' => 'すでに登録されています',
+ 'errFileNotExecutable' => 'コマンドを実行できません',
+ 'errFileNotFound' => 'ファイルが見つかりません',
+ 'errFileNotWritable' => 'ファイルの書き込みができません',
+ 'errIllegalHostname' => '不正なホスト名です',
+ 'errInputEverything' => 'すべてを入力してください',
+ 'errNoDefined' => 'パラメータが設定されていません',
+ 'errNotSameLength' => '列名リストと列データ型リストの配列の長さが一致しません。同じ要素数である必要があります。',
+ 'errPasswordMismatch' => 'パスワードが一致しません',
+ 'errRequired' => 'これは必須項目です',
+ 'errShouldBeInteger' => '0以上の整数を入力してください',
+ 'errShouldBeZeroOrMore' => '0以上である必要があります',
+ 'errSingleQuotation' => '配列要素をシングルクォーテーションで囲んでください。',
+ 'msgDeleteConfirm' => '本当に削除してよいですか?',
+ 'msgMasterDbConnectionError' => 'マスターDBに接続できません',
+ 'msgPgpoolConfNotFound' => 'pgpool.confが見つかりません',
+ 'msgPleaseSetup' => '設定ファイルが見つかりません。セットアップを実行してください。',
+ 'msgRestart' => '変更を反映するには再起動してください',
+ 'msgRestartPgpool' => 'pgpoolを再起動してよいですか?',
+ 'msgSameAsPasswordFile' => '値はパスワードファイルの設定値となります',
+ 'msgSameAsPgpoolFile' => '値はpgpool.confファイルの設定値となります',
+ 'msgStopPgpool' => 'pgpoolを停止してよいですか?',
+ 'msgUpdateComplete' => '更新は正常に終了しました',
+ 'msgUpdateFailed' => '更新に失敗しました',
+ 'strAdd' => '追加',
+ 'strAdminPassword' => '管理者パスワード',
+ 'strBack' => '戻る',
+ 'strCancel' => 'キャンセル',
+ 'strChangePassword' => 'パスワード変更',
+ 'strClear' => 'クリア',
+ 'strClearQueryCache' => 'クエリキャッシュ削除',
+ 'strCmdC' => 'クエリキャッシュクリア',
+ 'strCmdD' => 'デバッグモード',
+ 'strCmdDesc' => '空白の場合には無視',
+ 'strCmdM' => '停止モード',
+ 'strCmdN' => '非デーモンモード',
+ 'strCmdPcpFile' => 'pcp.conf',
+ 'strCmdPgpoolFile' => 'pgpool.conf',
+ 'strColList' => '列名リスト',
+ 'strColName' => '分散キー列名',
+ 'strCommon' => '共通',
+ 'strConnectionError' => 'コネクションエラー',
+ 'strConnTime' => 'コネクション作成時刻',
+ 'strConnUsed' => 'コネクション使用回数',
+ 'strConnUser' => '接続ユーザ名',
+ 'strCreateTime' => '作成時刻',
+ 'strDataError' => 'データエラー',
+ 'strDateFormat' => 'Y年m月d日 H時i分s秒',
+ 'strDb' => 'データベース名',
+ 'strDbName' => 'データベース名',
+ 'strDebug' => 'デバッグモード',
+ 'strDelete' => '削除',
+ 'strDeleted' => 'レコードが削除されました',
+ 'strDetail' => '詳細',
+ 'strDetailInfo' => '詳細情報',
+ 'strDisconnect' => '切断',
+ 'strDistDefFunc'=> '分散関数名',
+ 'strDown' => 'ダウン',
+ 'strError' => 'エラー',
+ 'strErrorCode' => 'エラーコード',
+ 'strErrorMessage' => 'エラーメッセージ',
+ 'strExecute' => '実行',
+ 'strFeature' => '機能',
+ 'strHealthCheck' => 'ヘルスチェック',
+ 'strHelp' => 'ヘルプ',
+ 'strInvalidation' => '無効',
+ 'strIPaddress' => 'IPアドレス',
+ 'strLanguage' => '言語',
+ 'strLoadBalanceMode' => 'ロードバランスモード',
+ 'strLog' => 'ログ',
+ 'strLogin' => 'ログイン',
+ 'strLoginName' => 'ログイン名',
+ 'strLogout' => 'ログアウト',
+ 'strMasterServer' => 'マスターサーバ',
+ 'strMeasures' => '対策',
+ 'strNodeInfo' => 'ノード情報',
+ 'strNodeStatus' => 'ノードステータス',
+ 'strNodeStatus1' => 'ノード稼働中。接続無し',
+ 'strNodeStatus2' => 'ノード稼働中。接続有り',
+ 'strNodeStatus3' => 'ノードダウン',
+ 'strNoNode' => 'ノードがありません',
+ 'strOff' => 'オフ',
+ 'strOn' => 'オン',
+ 'strParallelMode' => 'パラレルモード',
+ 'strParameter' => '項目',
+ 'strPassword' => 'パスワード',
+ 'strPasswordConfirmation' => 'パスワード(確認)',
+ 'strPasswordFile' => 'パスワードファイル',
+ 'strPcpConfFile' => 'pcp.confファイル',
+ 'strPcpDir' => 'PCPディレクトリ',
+ 'strPcpHostName' => 'PCPホスト名',
+ 'strPcpRefreshTime' => '更新間隔(0で自動更新しない)',
+ 'strPcpTimeout' => 'PCPタイムアウト',
+ 'strPgConfFile' => 'pgpool.confファイル',
+ 'strPgConfSetting' => 'pgpool.conf設定',
+ 'strPgpool' => 'pgpool',
+ 'strPgpool1' => 'pgpool-I',
+ 'strPgpool2' => 'pgpool-II',
+ 'strPgpoolCommand' => 'pgpoolコマンド',
+ 'strPgpoolCommandOption' => 'pgpoolコマンドオプション',
+ 'strPgpoolLogFile' => 'pgpoolログファイル',
+ 'strPgpoolManagementSystem' => 'pgpool-II管理システム',
+ 'strPgpoolServer' => 'pgpool-IIサーバ',
+ 'strPgpoolStatus' => 'pgpoolステータス',
+ 'strPgpoolSummary' => 'サマリー',
+ 'strPleaseWait' => 'しばらくお待ちください・・・',
+ 'strPort' => 'ポート',
+ 'strProcId' => 'プロセスID',
+ 'strProcInfo' => 'プロセス情報',
+ 'strProcTime' => 'プロセススタート時刻',
+ 'strProtocolMajorVersion' => 'プロトコルメジャーバージョン',
+ 'strProtocolNinorVersion' => 'プロトコルマイナーバージョン',
+ 'strQueryCache' => 'クエリキャッシュ',
+ 'strQueryStr' => 'クエリ文字列',
+ 'strReplicationMode' => 'レプリケーションモード',
+ 'strReset' => 'リセット',
+ 'strRestart' => '再起動',
+ 'strRestartOption' => 'pgpool再起動オプション',
+ 'strRestartPgpool' => 'pgpool再起動',
+ 'strReturn' => '復帰',
+ 'strSchemaName' => 'スキーマ名',
+ 'strSearch' => '検索',
+ 'strSecondaryServer' => 'セカンダリサーバ',
+ 'strSetting' => '管理ツール設定',
+ 'strSetup' => 'セットアップ',
+ 'strStartOption' => '起動オプション',
+ 'strStartPgpool' => 'pgpool起動',
+ 'strStatus' => 'ステータス',
+ 'strStopOption' => 'pgpool停止オプション',
+ 'strStopPgpool' => 'pgpool停止',
+ 'strSummary' => '概要',
+ 'strSystemDb' => '分散ルール',
+ 'strTable' => 'テーブル名',
+ 'strTypeList' => '列データ型リスト',
+ 'strUp' => 'アップ',
+ 'strUpdate' => '更新',
+ 'strValue' => '値',
+ 'strWeight' => 'ウェイト',
+ 'e1' => 'pgmgt.conf.phpが見つかりません',
+ 'e2' => 'メッセージカタログが見つかりません',
+ 'e3' => 'pcpコマンドエラーが発生しました',
+ 'e1' => 'pgmgt.conf.phpが見つかりません',
+ 'e2' => 'メッセージカタログが見つかりません',
+ 'e3' => 'pcpコマンドエラーが発生しました',
+ 'e4' => 'pgpool.confが見つかりません',
+ 'e5' => 'テンプレートファイルが見つかりません',
+ 'e6' => 'ヘルプが見つかりません',
+ 'e7' => 'pgmgt.conf.phpのパラメータが足りません',
+ 'e8' => 'pcp_timeoutがpgpool.confで見つかりません',
+ 'e9' => 'pcp_portがpgpool.confで見つかりません',
+ 'e1001' => 'pcpコマンドエラーが発生しました',
+ 'e1002' => 'pcp_node_countコマンドでエラーが発生しました',
+ 'e1003' => 'pcp_node_infoコマンドでエラーが発生しました',
+ 'e1004' => 'pcp_proc_countコマンドでエラーが発生しました',
+ 'e1005' => 'pcp_proc_infoコマンドでエラーが発生しました',
+ 'e1006' => 'pcp_stop_pgpoolコマンドでエラーが発生しました',
+ 'e1007' => 'pcp_detach_nodeコマンドでエラーが発生しました',
+ 'e1008' => '指定したpgpool.confが見つかりません',
+ 'e1009' => '指定したpcp.confが見つかりません',
+ 'e1010' => 'pcp_attach_nodeコマンドでエラーが発生しました',
+ 'e1011' => 'ログファイルが見つかりません',
+ 'e2001' => 'データベースに接続できません',
+ 'e2002' => 'レコード取得時にエラーが発生しました',
+ 'e2003' => 'pgpool.confが見つかりません',
+ 'e3001' => 'データベースに接続できません',
+ 'e3002' => 'レコード取得時にエラーが発生しました',
+ 'e3003' => 'レコード登録時にエラーが発生しました',
+ 'e3004' => 'レコード更新時にエラーが発生しました',
+ 'e3005' => 'レコード削除時にエラーが発生しました',
+ 'e3006' => 'pgpool.confが見つかりません',
+ 'e4001' => 'pgpool.confが見つかりません',
+ 'e4002' => 'pgpool.confから読み込みができません',
+ 'e4003' => 'pgpool.confiに書き込みができません',
+ 'e5001' => 'pgmgt.conf.phpが見つかりません',
+ 'e5002' => 'pgmgt.conf.phpから読み込みができません',
+ 'e5003' => 'pgmgt.conf.phpに書き込みができません',
+ 'e6001' => 'pcp.confが見つかりません',
+ 'e6002' => 'pcp.confに読み込みができません',
+ 'e6003' => 'pcp.confに書き込みができません',
+ 'e7001' => 'pcp.confが見つかりません',
+ 'e8001' => '詳細情報が取得できません',
+
+);
+
+?>
--- /dev/null
+<?php
+
+/**
+ * Config_File class.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * @link http://smarty.php.net/
+ * @version 2.6.13
+ * @copyright Copyright: 2001-2005 New Digital Group, Inc.
+ * @access public
+ * @package Smarty
+ */
+
+/* $Id$ */
+
+/**
+ * Config file reading class
+ * @package Smarty
+ */
+class Config_File {
+ /**#@+
+ * Options
+ * @var boolean
+ */
+ /**
+ * Controls whether variables with the same name overwrite each other.
+ */
+ var $overwrite = true;
+
+ /**
+ * Controls whether config values of on/true/yes and off/false/no get
+ * converted to boolean values automatically.
+ */
+ var $booleanize = true;
+
+ /**
+ * Controls whether hidden config sections/vars are read from the file.
+ */
+ var $read_hidden = true;
+
+ /**
+ * Controls whether or not to fix mac or dos formatted newlines.
+ * If set to true, \r or \r\n will be changed to \n.
+ */
+ var $fix_newlines = true;
+ /**#@-*/
+
+ /** @access private */
+ var $_config_path = "";
+ var $_config_data = array();
+ /**#@-*/
+
+ /**
+ * Constructs a new config file class.
+ *
+ * @param string $config_path (optional) path to the config files
+ */
+ function Config_File($config_path = NULL)
+ {
+ if (isset($config_path))
+ $this->set_path($config_path);
+ }
+
+
+ /**
+ * Set the path where configuration files can be found.
+ *
+ * @param string $config_path path to the config files
+ */
+ function set_path($config_path)
+ {
+ if (!empty($config_path)) {
+ if (!is_string($config_path) || !file_exists($config_path) || !is_dir($config_path)) {
+ $this->_trigger_error_msg("Bad config file path '$config_path'");
+ return;
+ }
+ if(substr($config_path, -1) != DIRECTORY_SEPARATOR) {
+ $config_path .= DIRECTORY_SEPARATOR;
+ }
+
+ $this->_config_path = $config_path;
+ }
+ }
+
+
+ /**
+ * Retrieves config info based on the file, section, and variable name.
+ *
+ * @param string $file_name config file to get info for
+ * @param string $section_name (optional) section to get info for
+ * @param string $var_name (optional) variable to get info for
+ * @return string|array a value or array of values
+ */
+ function get($file_name, $section_name = NULL, $var_name = NULL)
+ {
+ if (empty($file_name)) {
+ $this->_trigger_error_msg('Empty config file name');
+ return;
+ } else {
+ $file_name = $this->_config_path . $file_name;
+ if (!isset($this->_config_data[$file_name]))
+ $this->load_file($file_name, false);
+ }
+
+ if (!empty($var_name)) {
+ if (empty($section_name)) {
+ return $this->_config_data[$file_name]["vars"][$var_name];
+ } else {
+ if(isset($this->_config_data[$file_name]["sections"][$section_name]["vars"][$var_name]))
+ return $this->_config_data[$file_name]["sections"][$section_name]["vars"][$var_name];
+ else
+ return array();
+ }
+ } else {
+ if (empty($section_name)) {
+ return (array)$this->_config_data[$file_name]["vars"];
+ } else {
+ if(isset($this->_config_data[$file_name]["sections"][$section_name]["vars"]))
+ return (array)$this->_config_data[$file_name]["sections"][$section_name]["vars"];
+ else
+ return array();
+ }
+ }
+ }
+
+
+ /**
+ * Retrieves config info based on the key.
+ *
+ * @param $file_name string config key (filename/section/var)
+ * @return string|array same as get()
+ * @uses get() retrieves information from config file and returns it
+ */
+ function &get_key($config_key)
+ {
+ list($file_name, $section_name, $var_name) = explode('/', $config_key, 3);
+ $result = &$this->get($file_name, $section_name, $var_name);
+ return $result;
+ }
+
+ /**
+ * Get all loaded config file names.
+ *
+ * @return array an array of loaded config file names
+ */
+ function get_file_names()
+ {
+ return array_keys($this->_config_data);
+ }
+
+
+ /**
+ * Get all section names from a loaded file.
+ *
+ * @param string $file_name config file to get section names from
+ * @return array an array of section names from the specified file
+ */
+ function get_section_names($file_name)
+ {
+ $file_name = $this->_config_path . $file_name;
+ if (!isset($this->_config_data[$file_name])) {
+ $this->_trigger_error_msg("Unknown config file '$file_name'");
+ return;
+ }
+
+ return array_keys($this->_config_data[$file_name]["sections"]);
+ }
+
+
+ /**
+ * Get all global or section variable names.
+ *
+ * @param string $file_name config file to get info for
+ * @param string $section_name (optional) section to get info for
+ * @return array an array of variables names from the specified file/section
+ */
+ function get_var_names($file_name, $section = NULL)
+ {
+ if (empty($file_name)) {
+ $this->_trigger_error_msg('Empty config file name');
+ return;
+ } else if (!isset($this->_config_data[$file_name])) {
+ $this->_trigger_error_msg("Unknown config file '$file_name'");
+ return;
+ }
+
+ if (empty($section))
+ return array_keys($this->_config_data[$file_name]["vars"]);
+ else
+ return array_keys($this->_config_data[$file_name]["sections"][$section]["vars"]);
+ }
+
+
+ /**
+ * Clear loaded config data for a certain file or all files.
+ *
+ * @param string $file_name file to clear config data for
+ */
+ function clear($file_name = NULL)
+ {
+ if ($file_name === NULL)
+ $this->_config_data = array();
+ else if (isset($this->_config_data[$file_name]))
+ $this->_config_data[$file_name] = array();
+ }
+
+
+ /**
+ * Load a configuration file manually.
+ *
+ * @param string $file_name file name to load
+ * @param boolean $prepend_path whether current config path should be
+ * prepended to the filename
+ */
+ function load_file($file_name, $prepend_path = true)
+ {
+ if ($prepend_path && $this->_config_path != "")
+ $config_file = $this->_config_path . $file_name;
+ else
+ $config_file = $file_name;
+
+ ini_set('track_errors', true);
+ $fp = @fopen($config_file, "r");
+ if (!is_resource($fp)) {
+ $this->_trigger_error_msg("Could not open config file '$config_file'");
+ return false;
+ }
+
+ $contents = ($size = filesize($config_file)) ? fread($fp, $size) : '';
+ fclose($fp);
+
+ $this->_config_data[$config_file] = $this->parse_contents($contents);
+ return true;
+ }
+
+ /**
+ * Store the contents of a file manually.
+ *
+ * @param string $config_file file name of the related contents
+ * @param string $contents the file-contents to parse
+ */
+ function set_file_contents($config_file, $contents)
+ {
+ $this->_config_data[$config_file] = $this->parse_contents($contents);
+ return true;
+ }
+
+ /**
+ * parse the source of a configuration file manually.
+ *
+ * @param string $contents the file-contents to parse
+ */
+ function parse_contents($contents)
+ {
+ if($this->fix_newlines) {
+ // fix mac/dos formatted newlines
+ $contents = preg_replace('!\r\n?!', "\n", $contents);
+ }
+
+ $config_data = array();
+ $config_data['sections'] = array();
+ $config_data['vars'] = array();
+
+ /* reference to fill with data */
+ $vars =& $config_data['vars'];
+
+ /* parse file line by line */
+ preg_match_all('!^.*\r?\n?!m', $contents, $match);
+ $lines = $match[0];
+ for ($i=0, $count=count($lines); $i<$count; $i++) {
+ $line = $lines[$i];
+ if (empty($line)) continue;
+
+ if ( substr($line, 0, 1) == '[' && preg_match('!^\[(.*?)\]!', $line, $match) ) {
+ /* section found */
+ if (substr($match[1], 0, 1) == '.') {
+ /* hidden section */
+ if ($this->read_hidden) {
+ $section_name = substr($match[1], 1);
+ } else {
+ /* break reference to $vars to ignore hidden section */
+ unset($vars);
+ $vars = array();
+ continue;
+ }
+ } else {
+ $section_name = $match[1];
+ }
+ if (!isset($config_data['sections'][$section_name]))
+ $config_data['sections'][$section_name] = array('vars' => array());
+ $vars =& $config_data['sections'][$section_name]['vars'];
+ continue;
+ }
+
+ if (preg_match('/^\s*(\.?\w+)\s*=\s*(.*)/s', $line, $match)) {
+ /* variable found */
+ $var_name = rtrim($match[1]);
+ if (strpos($match[2], '"""') === 0) {
+ /* handle multiline-value */
+ $lines[$i] = substr($match[2], 3);
+ $var_value = '';
+ while ($i<$count) {
+ if (($pos = strpos($lines[$i], '"""')) === false) {
+ $var_value .= $lines[$i++];
+ } else {
+ /* end of multiline-value */
+ $var_value .= substr($lines[$i], 0, $pos);
+ break;
+ }
+ }
+ $booleanize = false;
+
+ } else {
+ /* handle simple value */
+ $var_value = preg_replace('/^([\'"])(.*)\1$/', '\2', rtrim($match[2]));
+ $booleanize = $this->booleanize;
+
+ }
+ $this->_set_config_var($vars, $var_name, $var_value, $booleanize);
+ }
+ /* else unparsable line / means it is a comment / means ignore it */
+ }
+ return $config_data;
+ }
+
+ /**#@+ @access private */
+ /**
+ * @param array &$container
+ * @param string $var_name
+ * @param mixed $var_value
+ * @param boolean $booleanize determines whether $var_value is converted to
+ * to true/false
+ */
+ function _set_config_var(&$container, $var_name, $var_value, $booleanize)
+ {
+ if (substr($var_name, 0, 1) == '.') {
+ if (!$this->read_hidden)
+ return;
+ else
+ $var_name = substr($var_name, 1);
+ }
+
+ if (!preg_match("/^[a-zA-Z_]\w*$/", $var_name)) {
+ $this->_trigger_error_msg("Bad variable name '$var_name'");
+ return;
+ }
+
+ if ($booleanize) {
+ if (preg_match("/^(on|true|yes)$/i", $var_value))
+ $var_value = true;
+ else if (preg_match("/^(off|false|no)$/i", $var_value))
+ $var_value = false;
+ }
+
+ if (!isset($container[$var_name]) || $this->overwrite)
+ $container[$var_name] = $var_value;
+ else {
+ settype($container[$var_name], 'array');
+ $container[$var_name][] = $var_value;
+ }
+ }
+
+ /**
+ * @uses trigger_error() creates a PHP warning/error
+ * @param string $error_msg
+ * @param integer $error_type one of
+ */
+ function _trigger_error_msg($error_msg, $error_type = E_USER_WARNING)
+ {
+ trigger_error("Config_File error: $error_msg", $error_type);
+ }
+ /**#@-*/
+}
+
+?>
--- /dev/null
+<?php
+
+/**
+ * Project: Smarty: the PHP compiling template engine
+ * File: Smarty.class.php
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For questions, help, comments, discussion, etc., please join the
+ * Smarty mailing list. Send a blank e-mail to
+ *
+ * @link http://smarty.php.net/
+ * @copyright 2001-2005 New Digital Group, Inc.
+ * @author Monte Ohrt <monte at ohrt dot com>
+ * @package Smarty
+ * @version 2.6.13
+ */
+
+/* $Id$ */
+
+/**
+ * DIR_SEP isn't used anymore, but third party apps might
+ */
+if(!defined('DIR_SEP')) {
+ define('DIR_SEP', DIRECTORY_SEPARATOR);
+}
+
+/**
+ * set SMARTY_DIR to absolute path to Smarty library files.
+ * if not defined, include_path will be used. Sets SMARTY_DIR only if user
+ * application has not already defined it.
+ */
+
+if (!defined('SMARTY_DIR')) {
+ define('SMARTY_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR);
+}
+
+if (!defined('SMARTY_CORE_DIR')) {
+ define('SMARTY_CORE_DIR', SMARTY_DIR . 'internals' . DIRECTORY_SEPARATOR);
+}
+
+define('SMARTY_PHP_PASSTHRU', 0);
+define('SMARTY_PHP_QUOTE', 1);
+define('SMARTY_PHP_REMOVE', 2);
+define('SMARTY_PHP_ALLOW', 3);
+
+/**
+ * @package Smarty
+ */
+class Smarty
+{
+ /**#@+
+ * Smarty Configuration Section
+ */
+
+ /**
+ * The name of the directory where templates are located.
+ *
+ * @var string
+ */
+ var $template_dir = 'templates';
+
+ /**
+ * The directory where compiled templates are located.
+ *
+ * @var string
+ */
+ var $compile_dir = 'templates_c';
+
+ /**
+ * The directory where config files are located.
+ *
+ * @var string
+ */
+ var $config_dir = 'configs';
+
+ /**
+ * An array of directories searched for plugins.
+ *
+ * @var array
+ */
+ var $plugins_dir = array('plugins');
+
+ /**
+ * If debugging is enabled, a debug console window will display
+ * when the page loads (make sure your browser allows unrequested
+ * popup windows)
+ *
+ * @var boolean
+ */
+ var $debugging = false;
+
+ /**
+ * When set, smarty does uses this value as error_reporting-level.
+ *
+ * @var boolean
+ */
+ var $error_reporting = null;
+
+ /**
+ * This is the path to the debug console template. If not set,
+ * the default one will be used.
+ *
+ * @var string
+ */
+ var $debug_tpl = '';
+
+ /**
+ * This determines if debugging is enable-able from the browser.
+ * <ul>
+ * <li>NONE => no debugging control allowed</li>
+ * <li>URL => enable debugging when SMARTY_DEBUG is found in the URL.</li>
+ * </ul>
+ * @link http://www.foo.dom/index.php?SMARTY_DEBUG
+ * @var string
+ */
+ var $debugging_ctrl = 'NONE';
+
+ /**
+ * This tells Smarty whether to check for recompiling or not. Recompiling
+ * does not need to happen unless a template or config file is changed.
+ * Typically you enable this during development, and disable for
+ * production.
+ *
+ * @var boolean
+ */
+ var $compile_check = true;
+
+ /**
+ * This forces templates to compile every time. Useful for development
+ * or debugging.
+ *
+ * @var boolean
+ */
+ var $force_compile = false;
+
+ /**
+ * This enables template caching.
+ * <ul>
+ * <li>0 = no caching</li>
+ * <li>1 = use class cache_lifetime value</li>
+ * <li>2 = use cache_lifetime in cache file</li>
+ * </ul>
+ * @var integer
+ */
+ var $caching = 0;
+
+ /**
+ * The name of the directory for cache files.
+ *
+ * @var string
+ */
+ var $cache_dir = 'cache';
+
+ /**
+ * This is the number of seconds cached content will persist.
+ * <ul>
+ * <li>0 = always regenerate cache</li>
+ * <li>-1 = never expires</li>
+ * </ul>
+ *
+ * @var integer
+ */
+ var $cache_lifetime = 3600;
+
+ /**
+ * Only used when $caching is enabled. If true, then If-Modified-Since headers
+ * are respected with cached content, and appropriate HTTP headers are sent.
+ * This way repeated hits to a cached page do not send the entire page to the
+ * client every time.
+ *
+ * @var boolean
+ */
+ var $cache_modified_check = false;
+
+ /**
+ * This determines how Smarty handles "<?php ... ?>" tags in templates.
+ * possible values:
+ * <ul>
+ * <li>SMARTY_PHP_PASSTHRU -> print tags as plain text</li>
+ * <li>SMARTY_PHP_QUOTE -> escape tags as entities</li>
+ * <li>SMARTY_PHP_REMOVE -> remove php tags</li>
+ * <li>SMARTY_PHP_ALLOW -> execute php tags</li>
+ * </ul>
+ *
+ * @var integer
+ */
+ var $php_handling = SMARTY_PHP_PASSTHRU;
+
+ /**
+ * This enables template security. When enabled, many things are restricted
+ * in the templates that normally would go unchecked. This is useful when
+ * untrusted parties are editing templates and you want a reasonable level
+ * of security. (no direct execution of PHP in templates for example)
+ *
+ * @var boolean
+ */
+ var $security = false;
+
+ /**
+ * This is the list of template directories that are considered secure. This
+ * is used only if {@link $security} is enabled. One directory per array
+ * element. {@link $template_dir} is in this list implicitly.
+ *
+ * @var array
+ */
+ var $secure_dir = array();
+
+ /**
+ * These are the security settings for Smarty. They are used only when
+ * {@link $security} is enabled.
+ *
+ * @var array
+ */
+ var $security_settings = array(
+ 'PHP_HANDLING' => false,
+ 'IF_FUNCS' => array('array', 'list',
+ 'isset', 'empty',
+ 'count', 'sizeof',
+ 'in_array', 'is_array',
+ 'true', 'false', 'null'),
+ 'INCLUDE_ANY' => false,
+ 'PHP_TAGS' => false,
+ 'MODIFIER_FUNCS' => array('count'),
+ 'ALLOW_CONSTANTS' => false
+ );
+
+ /**
+ * This is an array of directories where trusted php scripts reside.
+ * {@link $security} is disabled during their inclusion/execution.
+ *
+ * @var array
+ */
+ var $trusted_dir = array();
+
+ /**
+ * The left delimiter used for the template tags.
+ *
+ * @var string
+ */
+ var $left_delimiter = '{';
+
+ /**
+ * The right delimiter used for the template tags.
+ *
+ * @var string
+ */
+ var $right_delimiter = '}';
+
+ /**
+ * The order in which request variables are registered, similar to
+ * variables_order in php.ini E = Environment, G = GET, P = POST,
+ * C = Cookies, S = Server
+ *
+ * @var string
+ */
+ var $request_vars_order = 'EGPCS';
+
+ /**
+ * Indicates wether $HTTP_*_VARS[] (request_use_auto_globals=false)
+ * are uses as request-vars or $_*[]-vars. note: if
+ * request_use_auto_globals is true, then $request_vars_order has
+ * no effect, but the php-ini-value "gpc_order"
+ *
+ * @var boolean
+ */
+ var $request_use_auto_globals = true;
+
+ /**
+ * Set this if you want different sets of compiled files for the same
+ * templates. This is useful for things like different languages.
+ * Instead of creating separate sets of templates per language, you
+ * set different compile_ids like 'en' and 'de'.
+ *
+ * @var string
+ */
+ var $compile_id = null;
+
+ /**
+ * This tells Smarty whether or not to use sub dirs in the cache/ and
+ * templates_c/ directories. sub directories better organized, but
+ * may not work well with PHP safe mode enabled.
+ *
+ * @var boolean
+ *
+ */
+ var $use_sub_dirs = false;
+
+ /**
+ * This is a list of the modifiers to apply to all template variables.
+ * Put each modifier in a separate array element in the order you want
+ * them applied. example: <code>array('escape:"htmlall"');</code>
+ *
+ * @var array
+ */
+ var $default_modifiers = array();
+
+ /**
+ * This is the resource type to be used when not specified
+ * at the beginning of the resource path. examples:
+ * $smarty->display('file:index.tpl');
+ * $smarty->display('db:index.tpl');
+ * $smarty->display('index.tpl'); // will use default resource type
+ * {include file="file:index.tpl"}
+ * {include file="db:index.tpl"}
+ * {include file="index.tpl"} {* will use default resource type *}
+ *
+ * @var array
+ */
+ var $default_resource_type = 'file';
+
+ /**
+ * The function used for cache file handling. If not set, built-in caching is used.
+ *
+ * @var null|string function name
+ */
+ var $cache_handler_func = null;
+
+ /**
+ * This indicates which filters are automatically loaded into Smarty.
+ *
+ * @var array array of filter names
+ */
+ var $autoload_filters = array();
+
+ /**#@+
+ * @var boolean
+ */
+ /**
+ * This tells if config file vars of the same name overwrite each other or not.
+ * if disabled, same name variables are accumulated in an array.
+ */
+ var $config_overwrite = true;
+
+ /**
+ * This tells whether or not to automatically booleanize config file variables.
+ * If enabled, then the strings "on", "true", and "yes" are treated as boolean
+ * true, and "off", "false" and "no" are treated as boolean false.
+ */
+ var $config_booleanize = true;
+
+ /**
+ * This tells whether hidden sections [.foobar] are readable from the
+ * tempalates or not. Normally you would never allow this since that is
+ * the point behind hidden sections: the application can access them, but
+ * the templates cannot.
+ */
+ var $config_read_hidden = false;
+
+ /**
+ * This tells whether or not automatically fix newlines in config files.
+ * It basically converts \r (mac) or \r\n (dos) to \n
+ */
+ var $config_fix_newlines = true;
+ /**#@-*/
+
+ /**
+ * If a template cannot be found, this PHP function will be executed.
+ * Useful for creating templates on-the-fly or other special action.
+ *
+ * @var string function name
+ */
+ var $default_template_handler_func = '';
+
+ /**
+ * The file that contains the compiler class. This can a full
+ * pathname, or relative to the php_include path.
+ *
+ * @var string
+ */
+ var $compiler_file = 'Smarty_Compiler.class.php';
+
+ /**
+ * The class used for compiling templates.
+ *
+ * @var string
+ */
+ var $compiler_class = 'Smarty_Compiler';
+
+ /**
+ * The class used to load config vars.
+ *
+ * @var string
+ */
+ var $config_class = 'Config_File';
+
+/**#@+
+ * END Smarty Configuration Section
+ * There should be no need to touch anything below this line.
+ * @access private
+ */
+ /**
+ * where assigned template vars are kept
+ *
+ * @var array
+ */
+ var $_tpl_vars = array();
+
+ /**
+ * stores run-time $smarty.* vars
+ *
+ * @var null|array
+ */
+ var $_smarty_vars = null;
+
+ /**
+ * keeps track of sections
+ *
+ * @var array
+ */
+ var $_sections = array();
+
+ /**
+ * keeps track of foreach blocks
+ *
+ * @var array
+ */
+ var $_foreach = array();
+
+ /**
+ * keeps track of tag hierarchy
+ *
+ * @var array
+ */
+ var $_tag_stack = array();
+
+ /**
+ * configuration object
+ *
+ * @var Config_file
+ */
+ var $_conf_obj = null;
+
+ /**
+ * loaded configuration settings
+ *
+ * @var array
+ */
+ var $_config = array(array('vars' => array(), 'files' => array()));
+
+ /**
+ * md5 checksum of the string 'Smarty'
+ *
+ * @var string
+ */
+ var $_smarty_md5 = 'f8d698aea36fcbead2b9d5359ffca76f';
+
+ /**
+ * Smarty version number
+ *
+ * @var string
+ */
+ var $_version = '2.6.13';
+
+ /**
+ * current template inclusion depth
+ *
+ * @var integer
+ */
+ var $_inclusion_depth = 0;
+
+ /**
+ * for different compiled templates
+ *
+ * @var string
+ */
+ var $_compile_id = null;
+
+ /**
+ * text in URL to enable debug mode
+ *
+ * @var string
+ */
+ var $_smarty_debug_id = 'SMARTY_DEBUG';
+
+ /**
+ * debugging information for debug console
+ *
+ * @var array
+ */
+ var $_smarty_debug_info = array();
+
+ /**
+ * info that makes up a cache file
+ *
+ * @var array
+ */
+ var $_cache_info = array();
+
+ /**
+ * default file permissions
+ *
+ * @var integer
+ */
+ var $_file_perms = 0644;
+
+ /**
+ * default dir permissions
+ *
+ * @var integer
+ */
+ var $_dir_perms = 0771;
+
+ /**
+ * registered objects
+ *
+ * @var array
+ */
+ var $_reg_objects = array();
+
+ /**
+ * table keeping track of plugins
+ *
+ * @var array
+ */
+ var $_plugins = array(
+ 'modifier' => array(),
+ 'function' => array(),
+ 'block' => array(),
+ 'compiler' => array(),
+ 'prefilter' => array(),
+ 'postfilter' => array(),
+ 'outputfilter' => array(),
+ 'resource' => array(),
+ 'insert' => array());
+
+
+ /**
+ * cache serials
+ *
+ * @var array
+ */
+ var $_cache_serials = array();
+
+ /**
+ * name of optional cache include file
+ *
+ * @var string
+ */
+ var $_cache_include = null;
+
+ /**
+ * indicate if the current code is used in a compiled
+ * include
+ *
+ * @var string
+ */
+ var $_cache_including = false;
+
+ /**#@-*/
+ /**
+ * The class constructor.
+ */
+ function Smarty()
+ {
+ $this->assign('SCRIPT_NAME', isset($_SERVER['SCRIPT_NAME']) ? $_SERVER['SCRIPT_NAME']
+ : @$GLOBALS['HTTP_SERVER_VARS']['SCRIPT_NAME']);
+ }
+
+ /**
+ * assigns values to template variables
+ *
+ * @param array|string $tpl_var the template variable name(s)
+ * @param mixed $value the value to assign
+ */
+ function assign($tpl_var, $value = null)
+ {
+ if (is_array($tpl_var)){
+ foreach ($tpl_var as $key => $val) {
+ if ($key != '') {
+ $this->_tpl_vars[$key] = $val;
+ }
+ }
+ } else {
+ if ($tpl_var != '')
+ $this->_tpl_vars[$tpl_var] = $value;
+ }
+ }
+
+ /**
+ * assigns values to template variables by reference
+ *
+ * @param string $tpl_var the template variable name
+ * @param mixed $value the referenced value to assign
+ */
+ function assign_by_ref($tpl_var, &$value)
+ {
+ if ($tpl_var != '')
+ $this->_tpl_vars[$tpl_var] = &$value;
+ }
+
+ /**
+ * appends values to template variables
+ *
+ * @param array|string $tpl_var the template variable name(s)
+ * @param mixed $value the value to append
+ */
+ function append($tpl_var, $value=null, $merge=false)
+ {
+ if (is_array($tpl_var)) {
+ // $tpl_var is an array, ignore $value
+ foreach ($tpl_var as $_key => $_val) {
+ if ($_key != '') {
+ if(!@is_array($this->_tpl_vars[$_key])) {
+ settype($this->_tpl_vars[$_key],'array');
+ }
+ if($merge && is_array($_val)) {
+ foreach($_val as $_mkey => $_mval) {
+ $this->_tpl_vars[$_key][$_mkey] = $_mval;
+ }
+ } else {
+ $this->_tpl_vars[$_key][] = $_val;
+ }
+