> Michael,
> Thanks very much for your response. I actually didn't need it to solve
> the issue, but no doubt I will be using your suggested technique
> extensively as we move towards production-ready status. Thanks.
>
> Just to record the answer for future googlers!!! Here is how I got it
> to work ...
> Firstly - refer to my previous post that has the "nearly working" code snip.
> The issue was a missing password. The arguments that are passed to the
> pg_dump have plenty of information (username, host, port, etc), but no
> password. So when invoking the process I set a password into the
> PGPASSWORD environment variable as follows...
> <snip>
> ProcessBuilder pb = new ProcessBuilder(cmds);
> Map<String, String> env = pb.environment();
> env.put("PGPASSWORD", "my-pg-password-goes-here");
> Process process = pb.start();
> </snip>
>
> Obviously the above solution is brutal and not-production-ready, but
> it did confirm the issue.
> Setting PGPASSWORD environment variable is NOT the recommended
> technique (see http://www.postgresql.org/docs/8.1/interactive/libpq-envars.html).
>
> Many thanks,
> -Damian
>
Damian,
Congratulations on figuring it out. The code snippet I sent may
have caught the error, had you used it. I think you would have
gotten a "password for user pgsuperuser:" in the output stream, just
as if you had run that pg_dump command inside windows cmd.exe or a
Linux shell without setting PGPASSWORD.
-Mike