Thread: pg_start_backup question

pg_start_backup question

From
db de
Date:
How to execute "SELECT pg_start_backup('label');" from java as a SQL statement? I tries to use:
Statement.execute("SELECT pg_start_backup('label')")

But it does not work.

Thanks.

Jack

Re: pg_start_backup question

From
Guillaume Lelarge
Date:
Le vendredi 30 octobre 2009 à 23:41:54, db de a écrit :
> How to execute "SELECT pg_start_backup('label');" from java as a SQL
> statement? I tries to use:
> Statement.execute("SELECT pg_start_backup('label')")
>
> But it does not work.
>

You should have an error message in your PostgreSQL logs. Without this, I
don't think we can help you.


--
Guillaume.
 http://www.postgresqlfr.org
 http://dalibo.com

Re: pg_start_backup question

From
db de
Date:
Below is what I did:
I opened a super user connection to creat a super user statement. Then use the super user statement to execute "SELECT pg_start_backup('label')".

try
{
        superuserCont = java.sql.DriverManager.getConnection(URL, su, suPassword);
        suStatement = superuserCont.createStatement();
        boolean ret = suStatement.execute("SELECT pg_start_backup('label')");                                       //LINE1
}
catch(SQLException e)
{
         System.out.println("exception");                                                                                              //LINE2
}
finally
{
        System.out.println("ret:" + ret);                                                                                                //LINE3
}

After LINE1 is executed, LINE3 is run and the output is: ret:false. LINE2 is not executed.

Thanks.


Jack


On Fri, Oct 30, 2009 at 4:06 PM, Guillaume Lelarge <guillaume@lelarge.info> wrote:
Le vendredi 30 octobre 2009 à 23:41:54, db de a écrit :
> How to execute "SELECT pg_start_backup('label');" from java as a SQL
> statement? I tries to use:
> Statement.execute("SELECT pg_start_backup('label')")
>
> But it does not work.
>

You should have an error message in your PostgreSQL logs. Without this, I
don't think we can help you.


--
Guillaume.
 http://www.postgresqlfr.org
 http://dalibo.com

Re: pg_start_backup question

From
Guillaume Lelarge
Date:
Le samedi 31 octobre 2009 à 00:39:54, db de a écrit :
> Below is what I did:
> I opened a super user connection to creat a super user statement. Then use
> the super user statement to execute "SELECT pg_start_backup('label')".
>
> try
> {
>         superuserCont = java.sql.DriverManager.getConnection(URL, su,
> suPassword);
>         suStatement = superuserCont.createStatement();
>         boolean ret = suStatement.execute("SELECT
> pg_start_backup('label')");                                       //LINE1
> }
> catch(SQLException e)
> {
>          System.out.println("exception");
>
> //LINE2
> }
> finally
> {
>         System.out.println("ret:" +
> ret);
> //LINE3
> }
>
> After LINE1 is executed, LINE3 is run and the output is: ret:false. LINE2
>  is not executed.
>

Which PostgreSQL release do you use? did you activate archive_mode? what's in
your archive_command?


--
Guillaume.
 http://www.postgresqlfr.org
 http://dalibo.com

Re: pg_start_backup question

From
"Albe Laurenz"
Date:
db de wrote:
> Below is what I did:
> I opened a super user connection to creat a super user
> statement. Then use the super user statement to execute
> "SELECT pg_start_backup('label')".
>
> try
> {
>         superuserCont = java.sql.DriverManager.getConnection(URL, su, suPassword);
>         suStatement = superuserCont.createStatement();
>         boolean ret = suStatement.execute("SELECT pg_start_backup('label')");
>     //LINE1
> }
> catch(SQLException e)
> {
>          System.out.println("exception");
>
>            //LINE2
> }
> finally
> {
>         System.out.println("ret:" + ret);
>
>              //LINE3
> }
>
> After LINE1 is executed, LINE3 is run and the output is:
> ret:false. LINE2 is not executed.

Maybe something else than an SQLException was thrown, and maybe
by some statement before the last in the try/catch block.

You should debug this.

Possible starting points:
- Change "catch (SQLException" to "catch (Throwable" and see if you
  catch something.
- Execute it in a debugger or have status messages printed out after
  every line. See which flow the execution takes.
- Set "log_statements='all'" in postgresql.conf on the database server
  and see what you find in the log.
- See what you get when you issue that SQL statement with psql.

Yours,
Laurenz Albe