[Pgpool-general] pgpool master or slave goes down pgpool access error vie java

Tatsuo Ishii ishii at sraoss.co.jp
Mon Aug 15 02:12:49 UTC 2011


This is an expected behavior.  When one PostgreSQL servers goes down,
pgpool-II reset all session from clients to pgpool-II.  Subsequent
session works normally.
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese: http://www.sraoss.co.jp

> hi pgpool Expert
>  my architecture as follows: 
> Master/Slave with Streaming Replication and pgpool-II 
> version of pgpool-II is pgpool-II.3.0.4 
> version of PostgreSQL is 9.0.2 
>  I am using pgpool works as master/slave sub mode stream
>  and pgpool key configuration is:
> =====================================================================================================
>  num_init_children=100
> max_pool=4
> child_life_time=60
> connection_life_time=0
> child_max_connections=0
> client_idle_limit=0
> connection_cache=true
>  =====================================================================================================
>  and java jdbc connection test code as fllows:
>  =====================================================================================================
> import java.sql.Connection;
> import java.sql.DriverManager;
> import java.sql.ResultSet;
> import java.sql.SQLException;
> import java.sql.Statement;
>  public class TestPgpool {
>     public static void main(String[] args) { 
>          for(;;){ 
>            Thread th = new Thread(new TestThread()); 
>             th.start(); 
>            try { 
>                 Thread.sleep(10); 
>             } catch (InterruptedException e) { 
>                System.out.println("1--------------");
>                e.printStackTrace(); 
>                System.out.println("1--------------");
>            } 
>        } 
>    } 
>     static class TestThread implements Runnable{ 
>         public void run() { 
>             Connection con = null; 
>             Statement stmt = null; 
>            try { 
>                 Class.forName("org.postgresql.Driver"); 
>                 con = DriverManager.getConnection( 
>                      "jdbc:postgresql://192.168.1.116:9999/spring250_20100630_705", 
>                      "postgres","postgres"); 
>                 stmt = con.createStatement(); 
>                 String sql = "SELECT * FROM bb_member limit 1"; 
>                 ResultSet rs = stmt.executeQuery(sql); 
>                System.out.print("OK("); 
>                 while(rs.next()){ 
>                     System.out.print(rs.getInt(1) + "=" 
>                               + rs.getString(2) + " "); 
>                } 
>                 System.out.println(")"); 
>                stmt.close(); 
>                con.close(); 
>            } catch (SQLException e) { 
>                System.out.println("2--------------");
>                e.printStackTrace();
>                System.out.println("2--------------");
>             } catch (ClassNotFoundException e) { 
>                e.printStackTrace(); 
>            } 
>        } 
>    } 
> }
> =====================================================================================================
>  question:
>   I do some tests 
>  1)the test code run always connect pgpool,
>  2)test master or slave go down 
>   but when mster/slave go down ,java code throws exception :
>  
>  org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend
>  org.postgresql.util.PSQLException: The connection attempt failed.
>  
>  the error happened once for little time,then goes normal.
>  what should I do to solve this problem?
>  thanks for any help
>   
>  jeno
>   
>  2011-8-10


More information about the Pgpool-general mailing list